c80_news 0.1.0.7 → 0.1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
-
}
|