c80_news 0.1.0.7 → 0.1.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +14 -1
- data/app/assets/javascripts/c80_news/facts_ajax.js +10 -2
- data/app/assets/javascripts/c80_news.coffee +1 -0
- data/app/assets/stylesheets/c80_news/_mixins/style_photostudio.scss +127 -0
- data/app/assets/stylesheets/c80_news/news_block.scss +49 -0
- data/app/assets/stylesheets/{c80_news/application.scss → c80_news.scss} +1 -1
- data/app/controllers/c80_news/application_controller.rb +4 -0
- data/app/helpers/c80_news/application_helper.rb +44 -11
- data/app/models/c80_news/fact.rb +32 -0
- data/app/uploaders/c80_news/fphoto_uploader.rb +83 -30
- data/app/views/c80_news/application/guru.js.erb +10 -4
- data/app/views/shared/_fact_inverted.html.erb +20 -0
- data/app/views/shared/_news_block.html.erb +9 -2
- data/app/views/shared/_news_list.html.erb +3 -3
- data/c80_news.gemspec +1 -0
- data/db/migrate/20151214133030_create_news_props.rb +8 -0
- data/db/seeds/c80_news_01_fill_props.rb +19 -0
- data/db/seeds/c80_news_02_fill_facts.rb +24 -0
- data/db/seeds/c80_news_recreate_versions.rb +7 -0
- data/lib/c80_news/version.rb +1 -1
- metadata +24 -5
- data/app/assets/javascripts/c80_news/facts_wookmark.js +0 -10
- data/app/assets/stylesheets/c80_news/facts_wookmark.scss +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c7236cbf01606e5e6f0a3003beb3e610348a8d9e
|
4
|
+
data.tar.gz: edd2b9cb56bc7827883145b18c3ffa90b3247d7f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 20978ec66e5dc60bd22e75ce6a351aae177c36c23e9b3f59862d59caca2d667638028a863aab7ee0d2da4b4452d16ef38fb536ef2fb0ab37c3513b305c42f956
|
7
|
+
data.tar.gz: 53d60ef6cf83304d7fe88785068b34dcf8ba1c86f3b9902afa09f594e4c2be366c6eaed712dd88ae189d791a33d582495a992cc84d546d3a58c92e43cc8f07d9
|
data/README.md
CHANGED
@@ -40,13 +40,26 @@ mount C80News::Engine => '/'
|
|
40
40
|
```
|
41
41
|
6) Add this line to `application.scss`:
|
42
42
|
```
|
43
|
-
@import "c80_news
|
43
|
+
@import "c80_news";
|
44
44
|
```
|
45
45
|
7) Add this line to `application_controller.rb`:
|
46
46
|
```
|
47
47
|
helper C80News::Engine.helpers
|
48
48
|
```
|
49
49
|
|
50
|
+
20161009:
|
51
|
+
```
|
52
|
+
scout@scout-VirtualBox:~/git/bitbucket
|
53
|
+
$ grep c80_news . -r --include=Gemfile
|
54
|
+
./vape_store/Gemfile:gem 'c80_news'#, '0.1.0.4', :github => 'c80_news/c80_news', :branch => 'master'
|
55
|
+
./sass_seo/Gemfile:gem 'c80_news'#, '0.1.0.4', :github => 'c80_news/c80_news', :branch => 'master'
|
56
|
+
./techz/Gemfile:gem 'c80_news_tz', '0.1.1.26'#, :github => 'c80_news_tz/c80_news_tz', :branch => 'feature_list_companies'
|
57
|
+
./real_estate/Gemfile:gem 'c80_news', '0.1.0.6'
|
58
|
+
./photostudio/Gemfile:gem 'c80_news', '0.1.0.7', :github => 'c80_news/c80_news', :branch => 'master'
|
59
|
+
./patron/Gemfile:gem 'c80_news'#, '0.1.0.4', :github => 'c80_news/c80_news', :branch => 'master'
|
60
|
+
```
|
61
|
+
|
62
|
+
|
50
63
|
## Available helper methods
|
51
64
|
|
52
65
|
```
|
@@ -9,7 +9,7 @@ var fNewsStartWillPaginateAjax;
|
|
9
9
|
var fNewsProcessBlocks; // при клике по preview-картинке новости будет происходить переход на просмотр новости
|
10
10
|
|
11
11
|
$(function () {
|
12
|
-
if ($("
|
12
|
+
if ($(".news_block").length) {
|
13
13
|
|
14
14
|
fNewsBindHistoryAdapter = function () {
|
15
15
|
History.Adapter.bind(window,'statechange',function(){ // Note: We are using statechange instead of popstate
|
@@ -30,10 +30,18 @@ $(function () {
|
|
30
30
|
};
|
31
31
|
|
32
32
|
fNewsdoAjaxRequest = function (page/*integer*/,callback/*function*/) {
|
33
|
+
|
34
|
+
var $ajax_div = $('.ajax_div'); // к этому контейнеру изначально прикреплены кое-какие данные
|
35
|
+
|
33
36
|
$.ajax({
|
34
37
|
url: "/news_guru",
|
35
38
|
type: "POST",
|
36
|
-
data: {
|
39
|
+
data: {
|
40
|
+
page: page,
|
41
|
+
is_render_paginator: $ajax_div.data('is_render_paginator'), // эти переменные
|
42
|
+
partial_name: $ajax_div.data('partial_name'), // уходят транзитом
|
43
|
+
css_class_news_block: $ajax_div.data('css_class_news_block') // на render_news_block
|
44
|
+
},
|
37
45
|
dataType: "script"
|
38
46
|
}).done(callback);
|
39
47
|
};
|
@@ -0,0 +1 @@
|
|
1
|
+
#= require_tree ./c80_news
|
@@ -0,0 +1,127 @@
|
|
1
|
+
@mixin style_photostudio {
|
2
|
+
|
3
|
+
div.news_list {
|
4
|
+
|
5
|
+
div.fact {
|
6
|
+
height: 362px;
|
7
|
+
overflow: hidden;
|
8
|
+
|
9
|
+
a.h5 {
|
10
|
+
|
11
|
+
h5 {
|
12
|
+
padding-right: 14px;
|
13
|
+
font-size: 20px;
|
14
|
+
}
|
15
|
+
|
16
|
+
}
|
17
|
+
|
18
|
+
p.short {
|
19
|
+
padding-right: 14px;
|
20
|
+
color: #747474;
|
21
|
+
}
|
22
|
+
|
23
|
+
}
|
24
|
+
|
25
|
+
}
|
26
|
+
|
27
|
+
&.is_news_page {
|
28
|
+
|
29
|
+
div.fact {
|
30
|
+
height: 360px;
|
31
|
+
position: relative;
|
32
|
+
|
33
|
+
a.h5 {
|
34
|
+
position: relative;
|
35
|
+
display: block;
|
36
|
+
|
37
|
+
h5 {
|
38
|
+
/* разместим поверх картинки на полупрозрачном фоне */
|
39
|
+
color: #ffffff;
|
40
|
+
position: absolute;
|
41
|
+
top: -102px;
|
42
|
+
padding: 19px 6px 6px 15px;
|
43
|
+
background-color: rgba(0, 0, 0, 0.2);
|
44
|
+
height: 67px;
|
45
|
+
font-size: 18px;
|
46
|
+
text-shadow: 0 0 5px rgba(0, 0, 0, 0.4);
|
47
|
+
}
|
48
|
+
}
|
49
|
+
|
50
|
+
p {
|
51
|
+
font-size: 16px;
|
52
|
+
}
|
53
|
+
|
54
|
+
p.date {
|
55
|
+
position: absolute;
|
56
|
+
height: 25px;
|
57
|
+
margin: 0;
|
58
|
+
top: 192px;
|
59
|
+
padding: 3px 5px 6px 16px;
|
60
|
+
background-color: rgba(255, 255, 0, 0.31);
|
61
|
+
width: 89px !important;
|
62
|
+
/*border-bottom: 1px solid rgba(255,255,255,0.9);*/
|
63
|
+
}
|
64
|
+
|
65
|
+
p.short {
|
66
|
+
color: #212121;
|
67
|
+
}
|
68
|
+
}
|
69
|
+
|
70
|
+
}
|
71
|
+
|
72
|
+
div.div_will_paginate {
|
73
|
+
clear: both;
|
74
|
+
|
75
|
+
div.pagination {
|
76
|
+
|
77
|
+
span {
|
78
|
+
&.previous_page {
|
79
|
+
display: none;
|
80
|
+
}
|
81
|
+
&.next_page {
|
82
|
+
display: none;
|
83
|
+
}
|
84
|
+
&.disabled {
|
85
|
+
|
86
|
+
}
|
87
|
+
}
|
88
|
+
|
89
|
+
em {
|
90
|
+
|
91
|
+
display: inline-block;
|
92
|
+
background-color: #fafaff;
|
93
|
+
line-height: 29px;
|
94
|
+
width: 30px;
|
95
|
+
height: 30px;
|
96
|
+
text-align: center;
|
97
|
+
font-weight: bold !important;
|
98
|
+
|
99
|
+
&.current {
|
100
|
+
border: 1px solid #cbcbcf;
|
101
|
+
}
|
102
|
+
|
103
|
+
}
|
104
|
+
|
105
|
+
a {
|
106
|
+
display: inline-block;
|
107
|
+
border: 1px solid #cbcbcf;
|
108
|
+
background-color: #E4E4E9;
|
109
|
+
color: #292B3A;
|
110
|
+
line-height: 29px;
|
111
|
+
width: 30px;
|
112
|
+
height: 30px;
|
113
|
+
text-align: center;
|
114
|
+
font-family: arial, sans-serif;
|
115
|
+
text-decoration: none;
|
116
|
+
|
117
|
+
&.next_page {
|
118
|
+
display: none;
|
119
|
+
}
|
120
|
+
|
121
|
+
}
|
122
|
+
|
123
|
+
}
|
124
|
+
}
|
125
|
+
|
126
|
+
}
|
127
|
+
|
@@ -0,0 +1,49 @@
|
|
1
|
+
div.news_block {
|
2
|
+
|
3
|
+
div.news_list {
|
4
|
+
position: relative; /** Needed to ensure items are laid out relative to this container **/
|
5
|
+
padding: 0;
|
6
|
+
margin: 0;
|
7
|
+
|
8
|
+
div.fact {
|
9
|
+
display: block;
|
10
|
+
float: left;
|
11
|
+
/*width: 229px;*/
|
12
|
+
/*max-height: 350px;*/
|
13
|
+
overflow: hidden;
|
14
|
+
margin-bottom: 25px;
|
15
|
+
|
16
|
+
img {
|
17
|
+
margin-bottom: 15px;
|
18
|
+
max-width: 100%;
|
19
|
+
}
|
20
|
+
|
21
|
+
}
|
22
|
+
|
23
|
+
&.per_row_3 {
|
24
|
+
.fact {
|
25
|
+
width: 33.33333%;
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
&.per_row_4 {
|
30
|
+
.fact {
|
31
|
+
width: 25%;
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
35
|
+
&.is_news_page {
|
36
|
+
|
37
|
+
div.fact {
|
38
|
+
|
39
|
+
}
|
40
|
+
|
41
|
+
}
|
42
|
+
|
43
|
+
}
|
44
|
+
|
45
|
+
&.style_photostudio {
|
46
|
+
@include style_photostudio;
|
47
|
+
}
|
48
|
+
|
49
|
+
}
|
@@ -4,33 +4,66 @@ module C80News
|
|
4
4
|
|
5
5
|
include LocalTimeHelper
|
6
6
|
|
7
|
-
def render_news_block(is_news_page=false,page=1)
|
7
|
+
def render_news_block(is_news_page=false, page=1, options={})
|
8
8
|
|
9
|
+
# 1. на странице НОВОСТИ выводим per_page новостей, в виджете выводим per_widget новостей
|
10
|
+
# 2. на странице НОВОСТИ div.news_block имеет класс is_news_page
|
11
|
+
# 3. к div.news_block можно дописать стиль, типа style_photostudio
|
9
12
|
|
13
|
+
per_page = Prop.first.per_widget
|
14
|
+
css_class_news_block = ''
|
10
15
|
if is_news_page
|
11
|
-
|
12
|
-
|
13
|
-
else
|
14
|
-
per_widget = C80News::Prop.first.per_widget
|
15
|
-
news = Fact.limit(per_widget)
|
16
|
+
css_class_news_block = 'is_news_page'
|
17
|
+
per_page = Prop.first.per_page
|
16
18
|
end
|
19
|
+
per_block_row = Prop.first.per_widget
|
20
|
+
|
21
|
+
#
|
22
|
+
if options[:css_class_news_block].present?
|
23
|
+
css_class_news_block += " #{options[:css_class_news_block]}"
|
24
|
+
end
|
25
|
+
|
26
|
+
news = Fact.paginate(:page => page, :per_page => per_page)
|
17
27
|
|
18
28
|
render :partial => "shared/news_block",
|
19
29
|
:locals => {
|
20
30
|
:news_list => news,
|
21
|
-
:is_news_page => is_news_page
|
31
|
+
:is_news_page => is_news_page,
|
32
|
+
:per_block_row => per_block_row,
|
33
|
+
:partial_name => options[:partial_name],
|
34
|
+
:is_render_paginator => options[:is_render_paginator],
|
35
|
+
:thumb_size => options[:thumb_size],
|
36
|
+
:css_class_news_block => css_class_news_block
|
22
37
|
}
|
23
38
|
end
|
24
39
|
|
25
|
-
def render_one_fact(fact)
|
26
|
-
|
40
|
+
def render_one_fact(fact, partial_name='fact',thumb_size='thumb_md')
|
41
|
+
|
42
|
+
|
43
|
+
unless thumb_size.present?
|
44
|
+
thumb_size = 'thumb_md'
|
45
|
+
end
|
46
|
+
|
47
|
+
Rails.logger.debug "[TRACE] <render_one_fact> thumb_size: #{thumb_size}"
|
48
|
+
|
49
|
+
# свойства модуля
|
50
|
+
p = Prop.first
|
51
|
+
|
52
|
+
# чтобы вёрстка не прыгала - зафиксируем размер картинки
|
53
|
+
w = p.send("#{thumb_size}_width")
|
54
|
+
h = p.send("#{thumb_size}_width")
|
55
|
+
|
56
|
+
render :partial => "shared/#{partial_name}",
|
27
57
|
:locals => {
|
28
|
-
fact: fact
|
58
|
+
fact: fact,
|
59
|
+
css_common_width_height: "width:#{w}px;height:#{h}px",
|
60
|
+
css_common_width: "width:#{w}px;",
|
61
|
+
thumb_size:thumb_size
|
29
62
|
}
|
30
63
|
end
|
31
64
|
|
32
65
|
def url_for_fact(fact)
|
33
|
-
"news/#{fact.slug}"
|
66
|
+
"/news/#{fact.slug}"
|
34
67
|
end
|
35
68
|
|
36
69
|
end
|
data/app/models/c80_news/fact.rb
CHANGED
@@ -36,5 +36,37 @@ module C80News
|
|
36
36
|
|
37
37
|
end
|
38
38
|
|
39
|
+
def thumb_sm
|
40
|
+
s = ''
|
41
|
+
if fphotos.count > 0
|
42
|
+
s = fphotos.first.image.thumb_sm
|
43
|
+
end
|
44
|
+
s
|
45
|
+
end
|
46
|
+
|
47
|
+
def thumb_md
|
48
|
+
s = ''
|
49
|
+
if fphotos.count > 0
|
50
|
+
s = fphotos.first.image.thumb_md
|
51
|
+
end
|
52
|
+
s
|
53
|
+
end
|
54
|
+
|
55
|
+
def thumb_lg
|
56
|
+
s = ''
|
57
|
+
if fphotos.count > 0
|
58
|
+
s = fphotos.first.image.thumb_lg
|
59
|
+
end
|
60
|
+
s
|
61
|
+
end
|
62
|
+
|
63
|
+
def thumb_preview
|
64
|
+
s = ''
|
65
|
+
if fphotos.count > 0
|
66
|
+
s = fphotos.first.image.thumb_preview
|
67
|
+
end
|
68
|
+
s
|
69
|
+
end
|
70
|
+
|
39
71
|
end
|
40
72
|
end
|
@@ -1,53 +1,45 @@
|
|
1
1
|
module C80News
|
2
2
|
class FphotoUploader < BaseFileUploader
|
3
3
|
|
4
|
-
#
|
5
|
-
|
6
|
-
# NOTE:: т.к. не прокатило наследование
|
7
|
-
# NOTE:: от BaseArtUploader: не переопределяется def store_dir
|
4
|
+
# ограничение оригинальной картинки
|
5
|
+
process :resize_to_limit => [1600,1600]
|
8
6
|
|
9
|
-
|
10
|
-
|
11
|
-
|
7
|
+
def store_dir
|
8
|
+
"uploads/news/#{format("%02d", model.fact_id)}"
|
9
|
+
end
|
12
10
|
|
13
|
-
#
|
14
|
-
# - thumb_big (resize_to_limit),
|
15
|
-
# - thumb_small (resize_to_limit: w = page_content*1/3).
|
11
|
+
# ---[ идут в контент новости ]---[ размер зависит от SiteProps.page_content_width ]--------------------------------------------------------------------------------------------------------------------
|
16
12
|
|
17
13
|
version :thumb_big do
|
18
|
-
process :
|
14
|
+
process :resize_to_thumb_big
|
19
15
|
end
|
20
16
|
|
21
17
|
version :thumb_small do
|
22
|
-
process :
|
18
|
+
process :resize_to_thumb_small
|
23
19
|
end
|
24
20
|
|
25
|
-
|
26
|
-
process :resize_to_fill => [229, 152]
|
27
|
-
end
|
21
|
+
# ------------------------------------------------------------------------------------------------------------------------
|
28
22
|
|
29
|
-
|
30
|
-
|
23
|
+
version :thumb_preview do
|
24
|
+
p = C80News::Prop.first
|
25
|
+
process :resize_to_fill => [p.thumb_preview_width, p.thumb_preview_height]
|
31
26
|
end
|
32
27
|
|
33
|
-
|
34
|
-
|
28
|
+
version :thumb_lg do
|
29
|
+
process :resize_to_lg
|
35
30
|
end
|
36
31
|
|
37
|
-
|
38
|
-
|
39
|
-
"photo_#{secure_token(4)}.#{file.extension}"
|
40
|
-
end
|
32
|
+
version :thumb_md do
|
33
|
+
process :resize_to_md
|
41
34
|
end
|
42
35
|
|
43
|
-
|
44
|
-
|
45
|
-
var = :"@#{mounted_as}_secure_token"
|
46
|
-
model.instance_variable_get(var) or model.instance_variable_set(var, SecureRandom.hex(length/2))
|
36
|
+
version :thumb_sm do
|
37
|
+
process :resize_to_sm
|
47
38
|
end
|
48
39
|
|
40
|
+
# --[ идут в контент новости ]--------------------------------------------------------------------------------------
|
49
41
|
|
50
|
-
def
|
42
|
+
def resize_to_thumb_big
|
51
43
|
# puts "<PageArtUploader.resize_to_limit_big>"
|
52
44
|
manipulate! do |img|
|
53
45
|
|
@@ -61,11 +53,11 @@ module C80News
|
|
61
53
|
end
|
62
54
|
end
|
63
55
|
|
64
|
-
def
|
56
|
+
def resize_to_thumb_small
|
65
57
|
# puts "<PageArtUploader.resize_to_limit_small>"
|
66
58
|
manipulate! do |img|
|
67
59
|
|
68
|
-
w = SiteProp.first.page_content_width/
|
60
|
+
w = SiteProp.first.page_content_width/2
|
69
61
|
h = calc_height_of_image(w)
|
70
62
|
|
71
63
|
img.resize "#{w}x#{h}>"
|
@@ -75,6 +67,67 @@ module C80News
|
|
75
67
|
end
|
76
68
|
end
|
77
69
|
|
70
|
+
# ------------------------------------------------------------------------------------------------------------------------
|
71
|
+
|
72
|
+
def resize_to_lg
|
73
|
+
|
74
|
+
manipulate! do |img|
|
75
|
+
|
76
|
+
w = C80News::Prop.first.thumb_lg_width
|
77
|
+
h = C80News::Prop.first.thumb_lg_height
|
78
|
+
|
79
|
+
img.resize "#{w}x#{h}^"
|
80
|
+
img.gravity 'center'
|
81
|
+
img.extent "#{w}x#{h}"
|
82
|
+
img = yield(img) if block_given?
|
83
|
+
img
|
84
|
+
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
|
89
|
+
def resize_to_md
|
90
|
+
|
91
|
+
manipulate! do |img|
|
92
|
+
|
93
|
+
w = C80News::Prop.first.thumb_md_width
|
94
|
+
h = C80News::Prop.first.thumb_md_height
|
95
|
+
|
96
|
+
img.resize "#{w}x#{h}^"
|
97
|
+
img.gravity 'center'
|
98
|
+
img.extent "#{w}x#{h}"
|
99
|
+
img = yield(img) if block_given?
|
100
|
+
img
|
101
|
+
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
105
|
+
|
106
|
+
def resize_to_sm
|
107
|
+
|
108
|
+
manipulate! do |img|
|
109
|
+
|
110
|
+
w = C80News::Prop.first.thumb_sm_width
|
111
|
+
h = C80News::Prop.first.thumb_sm_height
|
112
|
+
|
113
|
+
img.resize "#{w}x#{h}^"
|
114
|
+
img.gravity 'center'
|
115
|
+
img.extent "#{w}x#{h}"
|
116
|
+
img = yield(img) if block_given?
|
117
|
+
img
|
118
|
+
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
122
|
+
|
123
|
+
# ------------------------------------------------------------------------------------------------------------------------
|
124
|
+
|
125
|
+
protected
|
126
|
+
def secure_token(length=16)
|
127
|
+
var = :"@#{mounted_as}_secure_token"
|
128
|
+
model.instance_variable_get(var) or model.instance_variable_set(var, SecureRandom.hex(length/2))
|
129
|
+
end
|
130
|
+
|
78
131
|
private
|
79
132
|
|
80
133
|
def calc_height_of_image(w)
|
@@ -1,10 +1,16 @@
|
|
1
|
-
var $cc = $(".ajax_div");
|
2
|
-
var html_str = "<%= j render_news_block(true,params[:page]
|
1
|
+
var $cc = $(".ajax_div").parent();
|
2
|
+
var html_str = "<%= j render_news_block(true,params[:page], {
|
3
|
+
:partial_name => params[:partial_name],
|
4
|
+
:is_render_paginator => params[:is_render_paginator],
|
5
|
+
:css_class_news_block => params[:css_class_news_block]
|
6
|
+
})
|
7
|
+
%>";
|
8
|
+
|
9
|
+
$('.ajax_div').remove();
|
10
|
+
$cc.append(html_str);
|
3
11
|
|
4
|
-
$cc.html(html_str);
|
5
12
|
Holder.run(".ajax_div img");
|
6
13
|
fLazyStart();
|
7
14
|
|
8
15
|
fNewsProccessPaginateLinks();
|
9
16
|
fNewsProcessBlocks();
|
10
|
-
$('.div_facts').wookmark({ align:"left", offset:20 });
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<div class="fact">
|
2
|
+
<%= render_image_link_lazy({
|
3
|
+
:alt_image => fact.title,
|
4
|
+
:image => fact.send(thumb_size),
|
5
|
+
:a_href => url_for_fact(fact),
|
6
|
+
:a_class => '',
|
7
|
+
:a_style => css_common_width_height,
|
8
|
+
:a_rel => 'nofollow'
|
9
|
+
}) %>
|
10
|
+
<%= link_to(url_for_fact(fact), class: 'h5') do %>
|
11
|
+
<h5 style="<%= css_common_width %>"><%= fact.title %></h5>
|
12
|
+
<% end %>
|
13
|
+
<p class="date" style="<%= css_common_width %>">
|
14
|
+
<%= local_time(fact[:created_at], format: '%e.%m.%Y') %>
|
15
|
+
</p>
|
16
|
+
<p class="short" style="<%= css_common_width %>">
|
17
|
+
<%= fact[:short].html_safe %>
|
18
|
+
</p>
|
19
|
+
<div class="white_shadow"></div>
|
20
|
+
</div>
|
@@ -1,8 +1,15 @@
|
|
1
|
-
<div class="ajax_div"
|
1
|
+
<div class="ajax_div news_block <%= css_class_news_block %>"
|
2
|
+
data-partial_name="<%= partial_name %>"
|
3
|
+
data-css_class_news_block="<%= css_class_news_block %>"
|
4
|
+
data-is_render_paginator="<%= is_render_paginator %>">
|
2
5
|
<%= render :partial => "shared/news_list",
|
3
6
|
:locals => {
|
4
7
|
:news_list => news_list,
|
5
|
-
:is_news_page => is_news_page
|
8
|
+
:is_news_page => is_news_page,
|
9
|
+
:per_row => per_block_row,
|
10
|
+
:partial_name => partial_name,
|
11
|
+
:is_render_paginator => is_render_paginator,
|
12
|
+
:thumb_size => thumb_size
|
6
13
|
}
|
7
14
|
%>
|
8
15
|
</div>
|
@@ -1,11 +1,11 @@
|
|
1
|
-
<div class="
|
1
|
+
<div class="news_list clearfix per_row_<%=per_row%>">
|
2
2
|
<% news_list.each do |fact| %>
|
3
3
|
|
4
|
-
<%=
|
4
|
+
<%= render_one_fact(fact, partial_name, thumb_size).to_s %>
|
5
5
|
|
6
6
|
<% end %>
|
7
7
|
</div>
|
8
|
-
<% if is_news_page %>
|
8
|
+
<% if is_news_page || is_render_paginator %>
|
9
9
|
<div class="div_will_paginate">
|
10
10
|
<%= will_paginate news_list %>
|
11
11
|
</div>
|
data/c80_news.gemspec
CHANGED
@@ -3,6 +3,14 @@ class CreateNewsProps < ActiveRecord::Migration
|
|
3
3
|
create_table :c80_news_props, :options => 'COLLATE=utf8_unicode_ci' do |t|
|
4
4
|
t.integer :per_page
|
5
5
|
t.integer :per_widget
|
6
|
+
t.integer :thumb_preview_width
|
7
|
+
t.integer :thumb_preview_height
|
8
|
+
t.integer :thumb_sm_width
|
9
|
+
t.integer :thumb_sm_height
|
10
|
+
t.integer :thumb_md_width
|
11
|
+
t.integer :thumb_md_height
|
12
|
+
t.integer :thumb_lg_width
|
13
|
+
t.integer :thumb_lg_height
|
6
14
|
t.timestamps
|
7
15
|
end
|
8
16
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# rake db:seed:c80_news_01_fill_props
|
2
|
+
|
3
|
+
C80News::Prop.delete_all
|
4
|
+
C80News::Prop.create!({
|
5
|
+
thumb_lg_width: 640,
|
6
|
+
thumb_lg_height: 400,
|
7
|
+
|
8
|
+
thumb_md_width: 320,
|
9
|
+
thumb_md_height: 200,
|
10
|
+
|
11
|
+
thumb_sm_width: 80,
|
12
|
+
thumb_sm_height: 50,
|
13
|
+
|
14
|
+
per_widget: 3,
|
15
|
+
per_page: 6,
|
16
|
+
preview_width: 250,
|
17
|
+
preview_height: 164
|
18
|
+
|
19
|
+
})
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# rake db:seed:c80_news_02_fill_facts
|
2
|
+
|
3
|
+
C80News::Fact.delete_all
|
4
|
+
C80News::Fact.create!([
|
5
|
+
{
|
6
|
+
title: "Постоянная акция, каждый 11й час в подарок",
|
7
|
+
short: "Это акция без срока и ограничений, набирите 10 часов и получите час в подарок в любом зале",
|
8
|
+
full: "<p>Это акция без срока и ограничений, набирите 10 часов и получите час в подарок в любом зале при следующем бронировании. Эта возможность есть у каждого клиента! С любовью, Фотостудия Life.</p>\r\n"
|
9
|
+
},
|
10
|
+
{
|
11
|
+
title: "Добро пожаловать на сайт фотостудии LIFE",
|
12
|
+
short: "Рады приветствовать Вас на сайте Авторской фото-студии LIFE",
|
13
|
+
full: "<p>[[1]] А Вы уже успели воспользоваться нашей осенней Акцией?!</p>\r\n\r\n<p>Напоминаем! До конца сентября в модельном зале фотостудии LIFE действует акция "Бархатный сентябрь".</p>\r\n\r\n<p>Цена на аренду зала с его разнообразными декорациями и профессинальным оборудованием всего 600р/час!</p>\r\n"
|
14
|
+
},
|
15
|
+
{
|
16
|
+
title: "Разыгрываем подарки!",
|
17
|
+
short: "ВНИМАНИЕ! ВНИМАНИЕ! Фотостудия LIFE проводит РОЗЫГРЫШ!",
|
18
|
+
full: "<p>[[1]] Вы можете стать счастливым обладателем крутых призов!</p>\r\n\r\n<p>Напоминаем! До конца сентября в модельном зале фотостудии LIFE действует акция "Бархатный сентябрь".</p>\r\n\r\n<p>Цена на аренду зала с его разнообразными декорациями и профессинальным оборудованием всего 600р/час!</p>\r\n"
|
19
|
+
},
|
20
|
+
{
|
21
|
+
title: "У нас открылся новый зал",
|
22
|
+
short: "Размер зала (55м2) и самой аквазоны (3 на 3 метра) позволяет снимать всё что вздумается",
|
23
|
+
full: "<p>[[1]] Размер зала (55м2) и самой аквазоны (3 на 3 метра) позволяет снимать всё что вздумается и с разным количеством людей. Уникальное матовое чёрное нескользящее покрытие, не видно в кадре, создаёт хорошую глубину воды и можно прыгать как угодно, не скользя. Несколько вариантов включения воды: передняя стенка, задняя и центральная улитка для активного дождя на модель, включаются в любых комбинациях и по отдельности. Специальный замораживающий свет для воды (капли не летят вверх как в других студиях), возможность повесить полотна и кольцо над водой (и свои полотна в наличии), пилон в аквазоне (сейчас устанавливается), ну и плюс мягкие черные фоны и вообще чёрный зал с пилоном без окон для любых съёмок, обращайтес 8(926)762-50-56</p>\r\n"}
|
24
|
+
])
|
data/lib/c80_news/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: c80_news
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.
|
4
|
+
version: 0.1.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- C80609A
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: c80_lazy_images
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
description: Gem adds news to site
|
84
98
|
email:
|
85
99
|
- c080609a@gmail.com
|
@@ -96,11 +110,12 @@ files:
|
|
96
110
|
- Rakefile
|
97
111
|
- app/admin/c80_news/facts.rb
|
98
112
|
- app/assets/images/c80_news/.keep
|
113
|
+
- app/assets/javascripts/c80_news.coffee
|
99
114
|
- app/assets/javascripts/c80_news/application.js.coffee
|
100
115
|
- app/assets/javascripts/c80_news/facts_ajax.js
|
101
|
-
- app/assets/
|
102
|
-
- app/assets/stylesheets/c80_news/
|
103
|
-
- app/assets/stylesheets/c80_news/
|
116
|
+
- app/assets/stylesheets/c80_news.scss
|
117
|
+
- app/assets/stylesheets/c80_news/_mixins/style_photostudio.scss
|
118
|
+
- app/assets/stylesheets/c80_news/news_block.scss
|
104
119
|
- app/controllers/c80_news/application_controller.rb
|
105
120
|
- app/helpers/c80_news/application_helper.rb
|
106
121
|
- app/models/c80_news/fact.rb
|
@@ -111,6 +126,7 @@ files:
|
|
111
126
|
- app/views/c80_news/application/guru.js.erb
|
112
127
|
- app/views/layouts/c80_news/application.html.erb
|
113
128
|
- app/views/shared/_fact.html.erb
|
129
|
+
- app/views/shared/_fact_inverted.html.erb
|
114
130
|
- app/views/shared/_news_block.html.erb
|
115
131
|
- app/views/shared/_news_list.html.erb
|
116
132
|
- bin/console
|
@@ -120,6 +136,9 @@ files:
|
|
120
136
|
- db/migrate/20151213202020_create_news_fact.rb
|
121
137
|
- db/migrate/20151213203030_create_news_fphotos.rb
|
122
138
|
- db/migrate/20151214133030_create_news_props.rb
|
139
|
+
- db/seeds/c80_news_01_fill_props.rb
|
140
|
+
- db/seeds/c80_news_02_fill_facts.rb
|
141
|
+
- db/seeds/c80_news_recreate_versions.rb
|
123
142
|
- lib/c80_news.rb
|
124
143
|
- lib/c80_news/engine.rb
|
125
144
|
- lib/c80_news/version.rb
|
@@ -1,27 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Grid container
|
3
|
-
*/
|
4
|
-
.div_facts {
|
5
|
-
position: relative; /** Needed to ensure items are laid out relative to this container **/
|
6
|
-
padding: 0;
|
7
|
-
margin: 0;
|
8
|
-
display: none;
|
9
|
-
|
10
|
-
.fact {
|
11
|
-
display: block;
|
12
|
-
float: left;
|
13
|
-
width: 229px;
|
14
|
-
max-height: 350px;
|
15
|
-
overflow: hidden;
|
16
|
-
margin-bottom: 20px;
|
17
|
-
|
18
|
-
img {
|
19
|
-
margin-bottom: 10px;
|
20
|
-
}
|
21
|
-
}
|
22
|
-
|
23
|
-
}
|
24
|
-
|
25
|
-
div.news_widget {
|
26
|
-
background-color: #b0b0b0;
|
27
|
-
}
|