rocket_cms 0.7.1 → 0.8.0.pre.1
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/Gemfile.lock +35 -35
- data/app/controllers/concerns/rs_errors.rb +1 -1
- data/app/models/concerns/seoable.rb +15 -34
- data/app/models/seo.rb +12 -0
- data/app/views/news/index.html.haml +1 -1
- data/app/views/news/show.html.haml +1 -1
- data/lib/generators/rocket_cms/migration_generator.rb +1 -1
- data/lib/generators/rocket_cms/templates/admin.erb +5 -1
- data/lib/generators/rocket_cms/templates/migration_news.rb +10 -5
- data/lib/generators/rocket_cms/templates/migration_pages.rb +14 -5
- data/lib/generators/rocket_cms/templates/migration_seos.rb +14 -0
- data/lib/rocket_cms.rb +3 -0
- data/lib/rocket_cms/admin.rb +27 -10
- data/lib/rocket_cms/controllers/contacts.rb +2 -2
- data/lib/rocket_cms/controllers/news.rb +1 -1
- data/lib/rocket_cms/controllers/search.rb +1 -1
- data/lib/rocket_cms/engine.rb +1 -1
- data/lib/rocket_cms/migration.rb +14 -11
- data/lib/rocket_cms/models/active_record/menu.rb +3 -0
- data/lib/rocket_cms/models/active_record/news.rb +2 -2
- data/lib/rocket_cms/models/active_record/seo.rb +17 -0
- data/lib/rocket_cms/models/contact_message.rb +1 -1
- data/lib/rocket_cms/models/mongoid/contact_message.rb +1 -1
- data/lib/rocket_cms/models/mongoid/news.rb +5 -5
- data/lib/rocket_cms/models/mongoid/page.rb +1 -1
- data/lib/rocket_cms/models/mongoid/seo.rb +23 -0
- data/lib/rocket_cms/models/news.rb +4 -4
- data/lib/rocket_cms/models/page.rb +1 -1
- data/lib/rocket_cms/models/seo.rb +24 -0
- data/lib/rocket_cms/version.rb +1 -1
- data/template.rb +1 -1
- metadata +9 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a5e6b8f4f4811f703843bb7f92d916540b65f1da
|
|
4
|
+
data.tar.gz: 1fb08b8c8a19ba2b7ea74b9387228420968272ed
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1e51e89502bec15e060ce1ff17492e946fb53714667e03dac2509aeaf24f4eae63c4a8ccd4c766ec0b2731219272724f8a5f791e35e11183aa77d4282eb0ffdc
|
|
7
|
+
data.tar.gz: 6c6835cf8fe9339d4b98a14185ca7e8da89ac195c12f9d8a0e7213020da5799fe25f5edaa21d363f17c0d1c2a95161529feb74270fe871dd80ebc6ed0bc29e2c
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
rocket_cms (0.
|
|
4
|
+
rocket_cms (0.8.0.pre.1)
|
|
5
5
|
addressable
|
|
6
6
|
coffee-rails
|
|
7
7
|
devise
|
|
@@ -27,36 +27,36 @@ PATH
|
|
|
27
27
|
GEM
|
|
28
28
|
remote: https://rubygems.org/
|
|
29
29
|
specs:
|
|
30
|
-
actionmailer (4.2.
|
|
31
|
-
actionpack (= 4.2.
|
|
32
|
-
actionview (= 4.2.
|
|
33
|
-
activejob (= 4.2.
|
|
30
|
+
actionmailer (4.2.3)
|
|
31
|
+
actionpack (= 4.2.3)
|
|
32
|
+
actionview (= 4.2.3)
|
|
33
|
+
activejob (= 4.2.3)
|
|
34
34
|
mail (~> 2.5, >= 2.5.4)
|
|
35
35
|
rails-dom-testing (~> 1.0, >= 1.0.5)
|
|
36
|
-
actionpack (4.2.
|
|
37
|
-
actionview (= 4.2.
|
|
38
|
-
activesupport (= 4.2.
|
|
36
|
+
actionpack (4.2.3)
|
|
37
|
+
actionview (= 4.2.3)
|
|
38
|
+
activesupport (= 4.2.3)
|
|
39
39
|
rack (~> 1.6)
|
|
40
40
|
rack-test (~> 0.6.2)
|
|
41
41
|
rails-dom-testing (~> 1.0, >= 1.0.5)
|
|
42
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.
|
|
43
|
-
actionview (4.2.
|
|
44
|
-
activesupport (= 4.2.
|
|
42
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
|
43
|
+
actionview (4.2.3)
|
|
44
|
+
activesupport (= 4.2.3)
|
|
45
45
|
builder (~> 3.1)
|
|
46
46
|
erubis (~> 2.7.0)
|
|
47
47
|
rails-dom-testing (~> 1.0, >= 1.0.5)
|
|
48
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.
|
|
49
|
-
activejob (4.2.
|
|
50
|
-
activesupport (= 4.2.
|
|
48
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
|
49
|
+
activejob (4.2.3)
|
|
50
|
+
activesupport (= 4.2.3)
|
|
51
51
|
globalid (>= 0.3.0)
|
|
52
|
-
activemodel (4.2.
|
|
53
|
-
activesupport (= 4.2.
|
|
52
|
+
activemodel (4.2.3)
|
|
53
|
+
activesupport (= 4.2.3)
|
|
54
54
|
builder (~> 3.1)
|
|
55
|
-
activerecord (4.2.
|
|
56
|
-
activemodel (= 4.2.
|
|
57
|
-
activesupport (= 4.2.
|
|
55
|
+
activerecord (4.2.3)
|
|
56
|
+
activemodel (= 4.2.3)
|
|
57
|
+
activesupport (= 4.2.3)
|
|
58
58
|
arel (~> 6.0)
|
|
59
|
-
activesupport (4.2.
|
|
59
|
+
activesupport (4.2.3)
|
|
60
60
|
i18n (~> 0.7)
|
|
61
61
|
json (~> 1.7, >= 1.7.7)
|
|
62
62
|
minitest (~> 5.1)
|
|
@@ -95,7 +95,7 @@ GEM
|
|
|
95
95
|
activesupport (>= 4.1.0)
|
|
96
96
|
haml (4.0.6)
|
|
97
97
|
tilt
|
|
98
|
-
htmlentities (4.3.
|
|
98
|
+
htmlentities (4.3.4)
|
|
99
99
|
i18n (0.7.0)
|
|
100
100
|
jquery-rails (4.0.4)
|
|
101
101
|
rails-dom-testing (~> 1.0)
|
|
@@ -125,16 +125,16 @@ GEM
|
|
|
125
125
|
rack (~> 1.1)
|
|
126
126
|
rack-test (0.6.3)
|
|
127
127
|
rack (>= 1.0)
|
|
128
|
-
rails (4.2.
|
|
129
|
-
actionmailer (= 4.2.
|
|
130
|
-
actionpack (= 4.2.
|
|
131
|
-
actionview (= 4.2.
|
|
132
|
-
activejob (= 4.2.
|
|
133
|
-
activemodel (= 4.2.
|
|
134
|
-
activerecord (= 4.2.
|
|
135
|
-
activesupport (= 4.2.
|
|
128
|
+
rails (4.2.3)
|
|
129
|
+
actionmailer (= 4.2.3)
|
|
130
|
+
actionpack (= 4.2.3)
|
|
131
|
+
actionview (= 4.2.3)
|
|
132
|
+
activejob (= 4.2.3)
|
|
133
|
+
activemodel (= 4.2.3)
|
|
134
|
+
activerecord (= 4.2.3)
|
|
135
|
+
activesupport (= 4.2.3)
|
|
136
136
|
bundler (>= 1.3.0, < 2.0)
|
|
137
|
-
railties (= 4.2.
|
|
137
|
+
railties (= 4.2.3)
|
|
138
138
|
sprockets-rails
|
|
139
139
|
rails-deprecated_sanitizer (1.0.3)
|
|
140
140
|
activesupport (>= 4.2.0.alpha)
|
|
@@ -163,9 +163,9 @@ GEM
|
|
|
163
163
|
rails_admin_settings (1.0.0)
|
|
164
164
|
rails_admin_toggleable (0.5.0)
|
|
165
165
|
rails_admin (~> 0.6.6)
|
|
166
|
-
railties (4.2.
|
|
167
|
-
actionpack (= 4.2.
|
|
168
|
-
activesupport (= 4.2.
|
|
166
|
+
railties (4.2.3)
|
|
167
|
+
actionpack (= 4.2.3)
|
|
168
|
+
activesupport (= 4.2.3)
|
|
169
169
|
rake (>= 0.8.7)
|
|
170
170
|
thor (>= 0.18.1, < 2.0)
|
|
171
171
|
rake (10.4.2)
|
|
@@ -173,7 +173,7 @@ GEM
|
|
|
173
173
|
responders (2.1.0)
|
|
174
174
|
railties (>= 4.2.0, < 5)
|
|
175
175
|
safe_yaml (1.0.4)
|
|
176
|
-
sass (3.4.
|
|
176
|
+
sass (3.4.15)
|
|
177
177
|
sass-rails (5.0.3)
|
|
178
178
|
railties (>= 4.0.0, < 5.0)
|
|
179
179
|
sass (~> 3.1)
|
|
@@ -192,7 +192,7 @@ GEM
|
|
|
192
192
|
htmlentities
|
|
193
193
|
sprockets (3.2.0)
|
|
194
194
|
rack (~> 1.0)
|
|
195
|
-
sprockets-rails (2.3.
|
|
195
|
+
sprockets-rails (2.3.2)
|
|
196
196
|
actionpack (>= 3.0)
|
|
197
197
|
activesupport (>= 3.0)
|
|
198
198
|
sprockets (>= 2.8, < 4.0)
|
|
@@ -64,7 +64,7 @@ module RsErrors
|
|
|
64
64
|
end
|
|
65
65
|
|
|
66
66
|
def render_error(code = 500)
|
|
67
|
-
render template: "errors/error_#{code}", formats: [:html], handlers: [:haml, :slim], layout: RocketCMS.
|
|
67
|
+
render template: "errors/error_#{code}", formats: [:html], handlers: [:haml, :slim], layout: RocketCMS.config.error_layout, status: code
|
|
68
68
|
end
|
|
69
69
|
|
|
70
70
|
def rails_admin?
|
|
@@ -1,42 +1,23 @@
|
|
|
1
1
|
module Seoable
|
|
2
2
|
extend ActiveSupport::Concern
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
end
|
|
6
|
-
|
|
7
|
-
included do
|
|
8
|
-
if RocketCMS.mongoid?
|
|
9
|
-
field :name, type: String, localize: RocketCMS.configuration.localize
|
|
10
|
-
field :h1, type: String, localize: RocketCMS.configuration.localize
|
|
3
|
+
LOCALIZED_FIELDS = [:h1, :title, :keywords, :description, :og_title]
|
|
4
|
+
FIELDS = LOCALIZED_FIELDS + [:og_image, :robots]
|
|
11
5
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
6
|
+
if Seo.table_exists?
|
|
7
|
+
included do
|
|
8
|
+
has_one :seo, as: :seoable, autosave: true
|
|
9
|
+
after_create :create_seo
|
|
10
|
+
accepts_nested_attributes_for :seo
|
|
11
|
+
delegate *FIELDS, to: :seo
|
|
12
|
+
delegate *(FIELDS.map {|f| "#{f}=".to_sym }), to: :seo
|
|
16
13
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
if RocketCMS.config.localize
|
|
15
|
+
delegate *(LOCALIZED_FIELDS.map {|f| "#{f}_translations".to_sym }), to: :seo
|
|
16
|
+
delegate *(LOCALIZED_FIELDS.map {|f| "#{f}_translations=".to_sym }), to: :seo
|
|
17
|
+
end
|
|
21
18
|
end
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
def page_title
|
|
26
|
-
title.blank? ? name : title
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def get_og_title
|
|
30
|
-
og_title.blank? ? name : og_title
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def self.admin
|
|
34
|
-
RocketCMS.seo_config
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
# deprecated
|
|
38
|
-
def self.seo_config
|
|
39
|
-
RocketCMS.seo_config
|
|
19
|
+
else
|
|
20
|
+
include RocketCMS::Models::Seo
|
|
40
21
|
end
|
|
41
22
|
end
|
|
42
23
|
|
data/app/models/seo.rb
ADDED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
- @news.each do |news|
|
|
4
4
|
.rs-news-date= l(news.time.to_date)
|
|
5
5
|
%a.rs-news-title{href: news_path(news)}= news.name
|
|
6
|
-
- if !RocketCMS.
|
|
6
|
+
- if !RocketCMS.config.news_image_styles.nil? && news.image?
|
|
7
7
|
.rs-news-image= image_tag news.image.url(:thumb)
|
|
8
8
|
.rs-news-excerpt= news.excerpt
|
|
9
9
|
= paginate @news
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
%h1.rs-news-title= @news.name
|
|
3
3
|
.rs-news-date= l(@news.time.to_date)
|
|
4
4
|
.rs-news-text= @news.excerpt
|
|
5
|
-
- if !RocketCMS.
|
|
5
|
+
- if !RocketCMS.config.news_image_styles.nil? && @news.image?
|
|
6
6
|
.rs-news-image= image_tag @news.image.url(:main)
|
|
7
7
|
.rs-news-content
|
|
8
8
|
= render 'shared/obj', obj: @news
|
|
@@ -9,7 +9,7 @@ module RocketCms
|
|
|
9
9
|
desc 'RocketCMS migration generator'
|
|
10
10
|
def install
|
|
11
11
|
if RocketCMS.active_record?
|
|
12
|
-
%w(contact_messages news pages).each do |table_name|
|
|
12
|
+
%w(contact_messages news pages seos).each do |table_name|
|
|
13
13
|
migration_template "migration_#{table_name}.rb", "db/migrate/rocket_cms_create_#{table_name}.rb"
|
|
14
14
|
end
|
|
15
15
|
end
|
|
@@ -51,7 +51,11 @@ RailsAdmin.config do |config|
|
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
toggle
|
|
54
|
-
toggle_menu
|
|
54
|
+
toggle_menu do
|
|
55
|
+
visible do
|
|
56
|
+
['Page'].include? bindings[:abstract_model].model_name
|
|
57
|
+
end
|
|
58
|
+
end
|
|
55
59
|
end
|
|
56
60
|
|
|
57
61
|
config.main_app_name = ['<%= Rails.application.class.name.split('::')[0] %>', 'Админка']
|
|
@@ -3,14 +3,19 @@ class RocketCmsCreateNews < ActiveRecord::Migration
|
|
|
3
3
|
create_table :news do |t|
|
|
4
4
|
t.boolean :enabled, default: true, null: false
|
|
5
5
|
t.timestamp :time, null: false
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
|
|
7
|
+
if RocketCMS.config.localize
|
|
8
|
+
t.column :name_translations, 'hstore'
|
|
9
|
+
t.column :excerpt_translations, 'hstore'
|
|
10
|
+
t.column :content_translations, 'hstore'
|
|
11
|
+
else
|
|
12
|
+
t.string :name, null: false
|
|
13
|
+
t.text :excerpt
|
|
14
|
+
t.text :content
|
|
15
|
+
end
|
|
9
16
|
|
|
10
17
|
t.string :slug, null: false
|
|
11
18
|
t.attachment :image
|
|
12
|
-
RocketCMS::Migration.seo_fields(t)
|
|
13
|
-
|
|
14
19
|
t.timestamps
|
|
15
20
|
end
|
|
16
21
|
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
class RocketCmsCreatePages < ActiveRecord::Migration
|
|
2
2
|
def change
|
|
3
3
|
create_table :menus do |t|
|
|
4
|
-
|
|
4
|
+
|
|
5
|
+
if RocketCMS.config.localize
|
|
6
|
+
t.column :name_translations, 'hstore'
|
|
7
|
+
else
|
|
8
|
+
t.string :name, null: false
|
|
9
|
+
end
|
|
5
10
|
t.string :slug, null: false
|
|
6
11
|
t.timestamps
|
|
7
12
|
end
|
|
@@ -14,14 +19,18 @@ class RocketCmsCreatePages < ActiveRecord::Migration
|
|
|
14
19
|
t.integer :rgt
|
|
15
20
|
t.integer :depth
|
|
16
21
|
|
|
17
|
-
|
|
18
|
-
|
|
22
|
+
if RocketCMS.config.localize
|
|
23
|
+
t.column :name_translations, 'hstore'
|
|
24
|
+
t.column :content_translations, 'hstore'
|
|
25
|
+
else
|
|
26
|
+
t.string :name, null: false
|
|
27
|
+
t.text :content
|
|
28
|
+
end
|
|
19
29
|
|
|
30
|
+
t.string :slug, null: false
|
|
20
31
|
t.string :regexp
|
|
21
32
|
t.string :redirect
|
|
22
|
-
t.text :content
|
|
23
33
|
t.string :fullpath, null: false
|
|
24
|
-
RocketCMS::Migration.seo_fields(t)
|
|
25
34
|
t.timestamps
|
|
26
35
|
end
|
|
27
36
|
add_index :pages, :slug, unique: true
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
class RocketCmsCreateSeos < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
create_table :seos do |t|
|
|
4
|
+
t.boolean :enabled, default: true, null: false
|
|
5
|
+
t.integer :seoable_id
|
|
6
|
+
t.string :seoable_type
|
|
7
|
+
RocketCMS::Migration.seo_fields(t)
|
|
8
|
+
t.timestamps
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
add_index :seos, [:seoable_id, :seoable_type], unique: true
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
data/lib/rocket_cms.rb
CHANGED
|
@@ -52,12 +52,14 @@ module RocketCMS
|
|
|
52
52
|
autoload :Migration, 'rocket_cms/migration'
|
|
53
53
|
|
|
54
54
|
module Models
|
|
55
|
+
autoload :Seo, 'rocket_cms/models/seo'
|
|
55
56
|
autoload :Menu, 'rocket_cms/models/menu'
|
|
56
57
|
autoload :Page, 'rocket_cms/models/page'
|
|
57
58
|
autoload :News, 'rocket_cms/models/news'
|
|
58
59
|
autoload :ContactMessage, 'rocket_cms/models/contact_message'
|
|
59
60
|
|
|
60
61
|
module Mongoid
|
|
62
|
+
autoload :Seo, 'rocket_cms/models/mongoid/seo'
|
|
61
63
|
autoload :Menu, 'rocket_cms/models/mongoid/menu'
|
|
62
64
|
autoload :Page, 'rocket_cms/models/mongoid/page'
|
|
63
65
|
autoload :News, 'rocket_cms/models/mongoid/news'
|
|
@@ -65,6 +67,7 @@ module RocketCMS
|
|
|
65
67
|
end
|
|
66
68
|
|
|
67
69
|
module ActiveRecord
|
|
70
|
+
autoload :Seo, 'rocket_cms/models/active_record/seo'
|
|
68
71
|
autoload :Menu, 'rocket_cms/models/active_record/menu'
|
|
69
72
|
autoload :Page, 'rocket_cms/models/active_record/page'
|
|
70
73
|
autoload :News, 'rocket_cms/models/active_record/news'
|
data/lib/rocket_cms/admin.rb
CHANGED
|
@@ -16,19 +16,27 @@ module RocketCMS
|
|
|
16
16
|
}
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
def seo_config(is_active =
|
|
19
|
+
def seo_config(is_active = true)
|
|
20
20
|
Proc.new {
|
|
21
|
-
active
|
|
22
|
-
|
|
21
|
+
if respond_to?(:active)
|
|
22
|
+
active is_active
|
|
23
|
+
label "SEO"
|
|
24
|
+
end
|
|
25
|
+
RocketCMS.seo_fields(self)
|
|
26
|
+
}
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def seo_fields(s)
|
|
30
|
+
s.instance_eval do
|
|
23
31
|
field :h1, :string
|
|
24
32
|
field :title, :string
|
|
25
|
-
field :keywords, :
|
|
26
|
-
field :description, :
|
|
33
|
+
field :keywords, :text
|
|
34
|
+
field :description, :text
|
|
27
35
|
field :robots, :string
|
|
28
36
|
|
|
29
37
|
field :og_title, :string
|
|
30
|
-
field :og_image
|
|
31
|
-
|
|
38
|
+
field :og_image, :paperclip
|
|
39
|
+
end
|
|
32
40
|
end
|
|
33
41
|
|
|
34
42
|
def page_config
|
|
@@ -68,11 +76,20 @@ module RocketCMS
|
|
|
68
76
|
read_only true
|
|
69
77
|
end
|
|
70
78
|
end
|
|
71
|
-
|
|
79
|
+
if Seo.table_exists?
|
|
80
|
+
group :seo do
|
|
81
|
+
active true
|
|
82
|
+
field :seo do
|
|
83
|
+
active true
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
else
|
|
87
|
+
group :seo, &RocketCMS.seo_config(true)
|
|
88
|
+
end
|
|
72
89
|
end
|
|
73
90
|
RocketCMS.only_patches self, [:show, :export]
|
|
74
91
|
nested_set({
|
|
75
|
-
max_depth: RocketCMS.
|
|
92
|
+
max_depth: RocketCMS.config.menu_max_depth
|
|
76
93
|
})
|
|
77
94
|
}
|
|
78
95
|
end
|
|
@@ -110,7 +127,7 @@ module RocketCMS
|
|
|
110
127
|
field :enabled, :toggle
|
|
111
128
|
field :time
|
|
112
129
|
field :name
|
|
113
|
-
unless RocketCMS.
|
|
130
|
+
unless RocketCMS.config.news_image_styles.nil?
|
|
114
131
|
field :image
|
|
115
132
|
end
|
|
116
133
|
field :excerpt
|
|
@@ -10,7 +10,7 @@ module RocketCMS
|
|
|
10
10
|
def create
|
|
11
11
|
@contact_message = model.new(message_params)
|
|
12
12
|
after_initialize
|
|
13
|
-
if RocketCMS.
|
|
13
|
+
if RocketCMS.config.contacts_captcha
|
|
14
14
|
meth = :save_with_captcha
|
|
15
15
|
else
|
|
16
16
|
meth = :save
|
|
@@ -58,7 +58,7 @@ module RocketCMS
|
|
|
58
58
|
ContactMessage
|
|
59
59
|
end
|
|
60
60
|
def message_params
|
|
61
|
-
params.require(:contact_message).permit(RocketCMS.
|
|
61
|
+
params.require(:contact_message).permit(RocketCMS.config.contacts_fields.keys + [:name, :email, :phone, :content, :captcha, :captcha_key])
|
|
62
62
|
end
|
|
63
63
|
end
|
|
64
64
|
end
|
data/lib/rocket_cms/engine.rb
CHANGED
|
@@ -18,7 +18,7 @@ module RocketCMS
|
|
|
18
18
|
|
|
19
19
|
config.after_initialize do
|
|
20
20
|
# trigger autoload so models are registered in Mongoid::Elasticearch
|
|
21
|
-
RocketCMS.
|
|
21
|
+
RocketCMS.config.search_models.map(&:constantize)
|
|
22
22
|
|
|
23
23
|
# Write default email settings to DB so they can be changed.
|
|
24
24
|
if Settings.table_exists?
|
data/lib/rocket_cms/migration.rb
CHANGED
|
@@ -3,19 +3,21 @@ module RocketCMS
|
|
|
3
3
|
extend self
|
|
4
4
|
|
|
5
5
|
def seo_fields(t)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
if RocketCMS.config.localize
|
|
7
|
+
t.column :h1_translations, 'hstore'
|
|
8
|
+
t.column :title_translations, 'hstore'
|
|
9
|
+
t.column :keywords_translations, 'hstore'
|
|
10
|
+
t.column :description_translations, 'hstore'
|
|
11
|
+
t.column :og_title_translations, 'hstore'
|
|
12
|
+
else
|
|
13
|
+
t.string :h1
|
|
14
|
+
t.string :title
|
|
15
|
+
t.text :keywords
|
|
16
|
+
t.text :description
|
|
17
|
+
t.string :og_title
|
|
18
|
+
end
|
|
11
19
|
t.string :robots
|
|
12
|
-
t.string :og_title
|
|
13
20
|
t.attachment :og_image
|
|
14
|
-
|
|
15
|
-
#if RocketCMS.localize
|
|
16
|
-
#t.column :name_translations, 'hstore'
|
|
17
|
-
#t.column :name_translations, 'hstore'
|
|
18
|
-
#end
|
|
19
21
|
end
|
|
20
22
|
|
|
21
23
|
def map_fields(t)
|
|
@@ -29,3 +31,4 @@ module RocketCMS
|
|
|
29
31
|
end
|
|
30
32
|
end
|
|
31
33
|
end
|
|
34
|
+
|
|
@@ -4,8 +4,8 @@ module RocketCMS
|
|
|
4
4
|
module News
|
|
5
5
|
extend ActiveSupport::Concern
|
|
6
6
|
included do
|
|
7
|
-
unless RocketCMS.
|
|
8
|
-
has_attached_file :image, styles: RocketCMS.
|
|
7
|
+
unless RocketCMS.config.news_image_styles.nil?
|
|
8
|
+
has_attached_file :image, styles: RocketCMS.config.news_image_styles
|
|
9
9
|
validates_attachment_content_type :image, content_type: %w(image/gif image/jpeg image/jpg image/png), if: :image?
|
|
10
10
|
end
|
|
11
11
|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module RocketCMS
|
|
2
|
+
module Models
|
|
3
|
+
module ActiveRecord
|
|
4
|
+
module Seo
|
|
5
|
+
extend ActiveSupport::Concern
|
|
6
|
+
included do
|
|
7
|
+
has_attached_file :og_image, styles: {thumb: "800x600>"}
|
|
8
|
+
if RocketCMS.config.localize
|
|
9
|
+
translates :h1, :title, :keywords, :description, :og_title
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
|
|
@@ -8,7 +8,7 @@ module RocketCMS
|
|
|
8
8
|
included do
|
|
9
9
|
apply_simple_captcha
|
|
10
10
|
validates_email_format_of :email, unless: 'email.blank?'
|
|
11
|
-
if RocketCMS.
|
|
11
|
+
if RocketCMS.config.contacts_message_required
|
|
12
12
|
validates_presence_of :content
|
|
13
13
|
end
|
|
14
14
|
validate do
|
|
@@ -8,7 +8,7 @@ module RocketCMS
|
|
|
8
8
|
field :email, type: String
|
|
9
9
|
field :phone, type: String
|
|
10
10
|
field :content, type: String
|
|
11
|
-
RocketCMS.
|
|
11
|
+
RocketCMS.config.contacts_fields.each_pair do |fn, ft|
|
|
12
12
|
next if ft.nil?
|
|
13
13
|
field fn, type: ft
|
|
14
14
|
end
|
|
@@ -3,19 +3,19 @@ module RocketCMS
|
|
|
3
3
|
module Mongoid
|
|
4
4
|
module News
|
|
5
5
|
extend ActiveSupport::Concern
|
|
6
|
-
unless RocketCMS.
|
|
6
|
+
unless RocketCMS.config.news_image_styles.nil?
|
|
7
7
|
include ::Mongoid::Paperclip
|
|
8
8
|
end
|
|
9
9
|
included do
|
|
10
10
|
field :time, type: Time
|
|
11
11
|
index({enabled: 1, time: 1})
|
|
12
|
-
unless RocketCMS.
|
|
13
|
-
has_mongoid_attached_file :image, styles: RocketCMS.
|
|
12
|
+
unless RocketCMS.config.news_image_styles.nil?
|
|
13
|
+
has_mongoid_attached_file :image, styles: RocketCMS.config.news_image_styles
|
|
14
14
|
validates_attachment_content_type :image, content_type: %w(image/gif image/jpeg image/jpg image/png), if: :image?
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
field :excerpt, type: String, localize: RocketCMS.
|
|
18
|
-
field :content, type: String, localize: RocketCMS.
|
|
17
|
+
field :excerpt, type: String, localize: RocketCMS.config.localize
|
|
18
|
+
field :content, type: String, localize: RocketCMS.config.localize
|
|
19
19
|
|
|
20
20
|
scope :after_now, -> { where(:time.lt => Time.now) }
|
|
21
21
|
scope :by_date, -> { desc(:time) }
|
|
@@ -6,7 +6,7 @@ module RocketCMS
|
|
|
6
6
|
included do
|
|
7
7
|
field :regexp, type: String
|
|
8
8
|
field :redirect, type: String
|
|
9
|
-
field :content, type: String, localize: RocketCMS.
|
|
9
|
+
field :content, type: String, localize: RocketCMS.config.localize
|
|
10
10
|
field :fullpath, type: String
|
|
11
11
|
has_and_belongs_to_many :menus, inverse_of: :pages
|
|
12
12
|
acts_as_nested_set
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module RocketCMS
|
|
2
|
+
module Models
|
|
3
|
+
module Mongoid
|
|
4
|
+
module Seo
|
|
5
|
+
extend ActiveSupport::Concern
|
|
6
|
+
include ::Mongoid::Paperclip
|
|
7
|
+
included do
|
|
8
|
+
field :name, type: String, localize: RocketCMS.config.localize
|
|
9
|
+
field :h1, type: String, localize: RocketCMS.config.localize
|
|
10
|
+
|
|
11
|
+
field :title, type: String, localize: RocketCMS.config.localize
|
|
12
|
+
field :keywords, type: String, localize: RocketCMS.config.localize
|
|
13
|
+
field :description, type: String, localize: RocketCMS.config.localize
|
|
14
|
+
field :robots, type: String, localize: RocketCMS.config.localize
|
|
15
|
+
|
|
16
|
+
field :og_title, type: String, localize: RocketCMS.config.localize
|
|
17
|
+
has_mongoid_attached_file :og_image, styles: {thumb: "800x600>"}
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
@@ -8,7 +8,7 @@ module RocketCMS
|
|
|
8
8
|
include RocketCMS.orm_specific('News')
|
|
9
9
|
include ManualSlug
|
|
10
10
|
|
|
11
|
-
if RocketCMS.
|
|
11
|
+
if RocketCMS.config.search_enabled
|
|
12
12
|
include RocketCMS::ElasticSearch
|
|
13
13
|
end
|
|
14
14
|
|
|
@@ -18,10 +18,10 @@ module RocketCMS
|
|
|
18
18
|
self.time = Time.now if self.time.blank?
|
|
19
19
|
end
|
|
20
20
|
scope :recent, ->(count = 5) { enabled.after_now.by_date.limit(count) }
|
|
21
|
-
unless RocketCMS.
|
|
22
|
-
paginates_per RocketCMS.
|
|
21
|
+
unless RocketCMS.config.news_per_page.nil?
|
|
22
|
+
paginates_per RocketCMS.config.news_per_page
|
|
23
23
|
end
|
|
24
|
-
smart_excerpt :excerpt, :content, RocketCMS.
|
|
24
|
+
smart_excerpt :excerpt, :content, RocketCMS.config.news_excerpt
|
|
25
25
|
manual_slug :report_slug
|
|
26
26
|
|
|
27
27
|
RocketCMS.apply_patches self
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module RocketCMS
|
|
2
|
+
module Models
|
|
3
|
+
module Seo
|
|
4
|
+
extend ActiveSupport::Concern
|
|
5
|
+
include RocketCMS::Model
|
|
6
|
+
include Enableable
|
|
7
|
+
include RocketCMS.orm_specific('Seo')
|
|
8
|
+
|
|
9
|
+
included do
|
|
10
|
+
RocketCMS.apply_patches self
|
|
11
|
+
validates_attachment_content_type :og_image, content_type: %w(image/gif image/jpeg image/jpg image/png), if: :og_image?
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def page_title
|
|
17
|
+
title.blank? ? name : title
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def get_og_title
|
|
21
|
+
og_title.blank? ? name : og_title
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
data/lib/rocket_cms/version.rb
CHANGED
data/template.rb
CHANGED
|
@@ -19,7 +19,7 @@ gem 'rails', '4.2.1'
|
|
|
19
19
|
|
|
20
20
|
gem 'sass', '~> 3.4.4'
|
|
21
21
|
|
|
22
|
-
#{if mongoid then "gem 'rocket_cms_mongoid'" else "gem 'rocket_cms_activerecord'" end}, '~> 0.
|
|
22
|
+
#{if mongoid then "gem 'rocket_cms_mongoid'" else "gem 'rocket_cms_activerecord'" end}, '~> 0.8.0.pre.1'
|
|
23
23
|
|
|
24
24
|
gem 'sass-rails'
|
|
25
25
|
gem 'compass-rails', '~> 2.0.0'
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rocket_cms
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.8.0.pre.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- glebtv
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-06
|
|
11
|
+
date: 2015-07-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -384,6 +384,7 @@ files:
|
|
|
384
384
|
- app/models/menu.rb
|
|
385
385
|
- app/models/news.rb
|
|
386
386
|
- app/models/page.rb
|
|
387
|
+
- app/models/seo.rb
|
|
387
388
|
- app/views/blocks/_footer.html.haml
|
|
388
389
|
- app/views/contact_mailer/new_message_email.html.haml
|
|
389
390
|
- app/views/contacts/new.html.haml
|
|
@@ -434,6 +435,7 @@ files:
|
|
|
434
435
|
- lib/generators/rocket_cms/templates/migration_contact_messages.rb
|
|
435
436
|
- lib/generators/rocket_cms/templates/migration_news.rb
|
|
436
437
|
- lib/generators/rocket_cms/templates/migration_pages.rb
|
|
438
|
+
- lib/generators/rocket_cms/templates/migration_seos.rb
|
|
437
439
|
- lib/generators/rocket_cms/templates/production.erb
|
|
438
440
|
- lib/generators/rocket_cms/templates/unicorn.erb
|
|
439
441
|
- lib/generators/rocket_cms/utils.rb
|
|
@@ -457,14 +459,17 @@ files:
|
|
|
457
459
|
- lib/rocket_cms/models/active_record/menu.rb
|
|
458
460
|
- lib/rocket_cms/models/active_record/news.rb
|
|
459
461
|
- lib/rocket_cms/models/active_record/page.rb
|
|
462
|
+
- lib/rocket_cms/models/active_record/seo.rb
|
|
460
463
|
- lib/rocket_cms/models/contact_message.rb
|
|
461
464
|
- lib/rocket_cms/models/menu.rb
|
|
462
465
|
- lib/rocket_cms/models/mongoid/contact_message.rb
|
|
463
466
|
- lib/rocket_cms/models/mongoid/menu.rb
|
|
464
467
|
- lib/rocket_cms/models/mongoid/news.rb
|
|
465
468
|
- lib/rocket_cms/models/mongoid/page.rb
|
|
469
|
+
- lib/rocket_cms/models/mongoid/seo.rb
|
|
466
470
|
- lib/rocket_cms/models/news.rb
|
|
467
471
|
- lib/rocket_cms/models/page.rb
|
|
472
|
+
- lib/rocket_cms/models/seo.rb
|
|
468
473
|
- lib/rocket_cms/patch.rb
|
|
469
474
|
- lib/rocket_cms/rails_admin_menu.rb
|
|
470
475
|
- lib/rocket_cms/simple_form_patch.rb
|
|
@@ -488,9 +493,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
488
493
|
version: '0'
|
|
489
494
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
490
495
|
requirements:
|
|
491
|
-
- - "
|
|
496
|
+
- - ">"
|
|
492
497
|
- !ruby/object:Gem::Version
|
|
493
|
-
version:
|
|
498
|
+
version: 1.3.1
|
|
494
499
|
requirements: []
|
|
495
500
|
rubyforge_project:
|
|
496
501
|
rubygems_version: 2.4.5
|