ack_rocket_cms 0.7.2.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.
Files changed (132) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +21 -0
  3. data/.rspec +1 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +19 -0
  7. data/Gemfile +5 -0
  8. data/Gemfile.lock +244 -0
  9. data/LICENSE.txt +22 -0
  10. data/README.md +74 -0
  11. data/Rakefile +1 -0
  12. data/app/assets/javascripts/head.load.js +707 -0
  13. data/app/assets/javascripts/jquery.placeholder.js +157 -0
  14. data/app/assets/javascripts/rocket_cms.js.coffee +10 -0
  15. data/app/assets/javascripts/rocket_cms/flash.js.coffee +3 -0
  16. data/app/assets/javascripts/rocket_cms/map.js.coffee +22 -0
  17. data/app/assets/stylesheets/rocket_cms.css.sass +6 -0
  18. data/app/assets/stylesheets/rocket_cms/flash.css.sass +66 -0
  19. data/app/assets/stylesheets/rocket_cms/normalize.css.scss +406 -0
  20. data/app/controllers/concerns/no_cache.rb +12 -0
  21. data/app/controllers/concerns/rs_errors.rb +63 -0
  22. data/app/controllers/concerns/rs_menu.rb +45 -0
  23. data/app/controllers/concerns/rs_pages.rb +41 -0
  24. data/app/controllers/contacts_controller.rb +3 -0
  25. data/app/controllers/home_controller.rb +5 -0
  26. data/app/controllers/news_controller.rb +3 -0
  27. data/app/controllers/pages_controller.rb +4 -0
  28. data/app/controllers/search_controller.rb +4 -0
  29. data/app/mailers/contact_mailer.rb +15 -0
  30. data/app/models/concerns/boolean_field.rb +17 -0
  31. data/app/models/concerns/enableable.rb +8 -0
  32. data/app/models/concerns/geocodeable.rb +4 -0
  33. data/app/models/concerns/mappable.rb +95 -0
  34. data/app/models/concerns/seoable.rb +42 -0
  35. data/app/models/concerns/sitemap_data.rb +20 -0
  36. data/app/models/concerns/sort_field.rb +17 -0
  37. data/app/models/concerns/sortable.rb +8 -0
  38. data/app/models/contact_message.rb +11 -0
  39. data/app/models/menu.rb +11 -0
  40. data/app/models/news.rb +10 -0
  41. data/app/models/page.rb +11 -0
  42. data/app/views/blocks/_footer.html.haml +1 -0
  43. data/app/views/contact_mailer/new_message_email.html.haml +16 -0
  44. data/app/views/contacts/index.html.haml +10 -0
  45. data/app/views/contacts/new.html.haml +10 -0
  46. data/app/views/contacts/sent.html.haml +4 -0
  47. data/app/views/errors/_base.html.haml +3 -0
  48. data/app/views/errors/error_403.html.haml +1 -0
  49. data/app/views/errors/error_404.html.haml +1 -0
  50. data/app/views/errors/error_500.html.haml +1 -0
  51. data/app/views/home/index.html.haml +1 -0
  52. data/app/views/layouts/application.html.haml +23 -0
  53. data/app/views/layouts/application.html.slim +24 -0
  54. data/app/views/news/index.html.haml +9 -0
  55. data/app/views/news/show.html.haml +8 -0
  56. data/app/views/pages/show.html.haml +1 -0
  57. data/app/views/rails_admin/main/_check_boxes.html.haml +27 -0
  58. data/app/views/rails_admin/main/_enum_check_boxes.html.haml +5 -0
  59. data/app/views/rails_admin/main/_enum_radio_buttons.html.haml +5 -0
  60. data/app/views/rails_admin/main/_form_raw.html.haml +1 -0
  61. data/app/views/search/index.html.haml +19 -0
  62. data/app/views/shared/_admin_link.html.haml +3 -0
  63. data/app/views/shared/_messages.html.haml +7 -0
  64. data/app/views/shared/_meta.html.haml +6 -0
  65. data/app/views/shared/_obj.html.haml +20 -0
  66. data/app/views/shared/_og.html.haml +4 -0
  67. data/config/locales/en.rocket_admin.yml +6 -0
  68. data/config/locales/en.rs.yml +20 -0
  69. data/config/locales/ru.cancan.yml +4 -0
  70. data/config/locales/ru.devise.yml +65 -0
  71. data/config/locales/ru.kaminari.yml +17 -0
  72. data/config/locales/ru.models.yml +92 -0
  73. data/config/locales/ru.mongoid.yml +450 -0
  74. data/config/locales/ru.rails_admin.yml +148 -0
  75. data/config/locales/ru.rocket_admin.yml +6 -0
  76. data/config/locales/ru.rs.yml +20 -0
  77. data/config/locales/ru.simple_captcha.yml +3 -0
  78. data/config/locales/ru.simple_form.yml +9 -0
  79. data/lib/filename_to_slug.rb +34 -0
  80. data/lib/generators/rocket_cms/ability_generator.rb +15 -0
  81. data/lib/generators/rocket_cms/admin_generator.rb +21 -0
  82. data/lib/generators/rocket_cms/capify_generator.rb +40 -0
  83. data/lib/generators/rocket_cms/layout_generator.rb +15 -0
  84. data/lib/generators/rocket_cms/migration_generator.rb +19 -0
  85. data/lib/generators/rocket_cms/templates/Capfile +17 -0
  86. data/lib/generators/rocket_cms/templates/ability.erb +28 -0
  87. data/lib/generators/rocket_cms/templates/admin.erb +81 -0
  88. data/lib/generators/rocket_cms/templates/deploy.erb +47 -0
  89. data/lib/generators/rocket_cms/templates/dl.erb +30 -0
  90. data/lib/generators/rocket_cms/templates/migration_contact_messages.rb +15 -0
  91. data/lib/generators/rocket_cms/templates/migration_news.rb +21 -0
  92. data/lib/generators/rocket_cms/templates/migration_pages.rb +36 -0
  93. data/lib/generators/rocket_cms/templates/production.erb +8 -0
  94. data/lib/generators/rocket_cms/templates/unicorn.erb +66 -0
  95. data/lib/generators/rocket_cms/utils.rb +22 -0
  96. data/lib/manual_slug.rb +11 -0
  97. data/lib/manual_slug/active_record.rb +32 -0
  98. data/lib/manual_slug/mongoid.rb +36 -0
  99. data/lib/rails_admin/custom_show_in_app.rb +39 -0
  100. data/lib/rocket_cms.rb +88 -0
  101. data/lib/rocket_cms/admin.rb +152 -0
  102. data/lib/rocket_cms/configuration.rb +67 -0
  103. data/lib/rocket_cms/controller.rb +24 -0
  104. data/lib/rocket_cms/controllers/contacts.rb +70 -0
  105. data/lib/rocket_cms/controllers/news.rb +31 -0
  106. data/lib/rocket_cms/controllers/pages.rb +19 -0
  107. data/lib/rocket_cms/controllers/search.rb +45 -0
  108. data/lib/rocket_cms/elastic_search.rb +31 -0
  109. data/lib/rocket_cms/engine.rb +39 -0
  110. data/lib/rocket_cms/migration.rb +31 -0
  111. data/lib/rocket_cms/model.rb +25 -0
  112. data/lib/rocket_cms/models/active_record/contact_message.rb +14 -0
  113. data/lib/rocket_cms/models/active_record/menu.rb +14 -0
  114. data/lib/rocket_cms/models/active_record/news.rb +23 -0
  115. data/lib/rocket_cms/models/active_record/page.rb +17 -0
  116. data/lib/rocket_cms/models/contact_message.rb +27 -0
  117. data/lib/rocket_cms/models/menu.rb +29 -0
  118. data/lib/rocket_cms/models/mongoid/contact_message.rb +20 -0
  119. data/lib/rocket_cms/models/mongoid/menu.rb +12 -0
  120. data/lib/rocket_cms/models/mongoid/news.rb +27 -0
  121. data/lib/rocket_cms/models/mongoid/page.rb +26 -0
  122. data/lib/rocket_cms/models/news.rb +50 -0
  123. data/lib/rocket_cms/models/page.rb +76 -0
  124. data/lib/rocket_cms/patch.rb +58 -0
  125. data/lib/rocket_cms/rails_admin_menu.rb +145 -0
  126. data/lib/rocket_cms/simple_form_patch.rb +12 -0
  127. data/lib/rocket_cms/tasks.rb +13 -0
  128. data/lib/rocket_cms/version.rb +3 -0
  129. data/release.sh +13 -0
  130. data/rocket_cms.gemspec +54 -0
  131. data/template.rb +557 -0
  132. metadata +533 -0
@@ -0,0 +1,36 @@
1
+ class RocketCmsCreatePages < ActiveRecord::Migration
2
+ def change
3
+ create_table :menus do |t|
4
+ t.string :name, null: false
5
+ t.string :slug, null: false
6
+ t.timestamps
7
+ end
8
+ add_index :menus, :slug, unique: true
9
+
10
+ create_table :pages do |t|
11
+ t.boolean :enabled, default: true, null: false
12
+ t.integer :parent_id
13
+ t.integer :lft
14
+ t.integer :rgt
15
+ t.integer :depth
16
+
17
+ t.string :slug, null: false
18
+ t.attachment :image
19
+
20
+ t.string :regexp
21
+ t.string :redirect
22
+ t.text :content
23
+ t.string :fullpath, null: false
24
+ RocketCMS::Migration.seo_fields(t)
25
+ t.timestamps
26
+ end
27
+ add_index :pages, :slug, unique: true
28
+ add_index :pages, [:enabled, :lft]
29
+
30
+ create_join_table :menus, :pages
31
+
32
+ add_foreign_key(:menus_pages, :menus, dependent: :delete)
33
+ add_foreign_key(:menus_pages, :pages, dependent: :delete)
34
+ end
35
+ end
36
+
@@ -0,0 +1,8 @@
1
+ set :stage, :production
2
+
3
+ server '<%= domain %>', user: '<%= app_name.downcase %>', roles: %w{web app db}
4
+
5
+ set :rails_env, 'production'
6
+ set :unicorn_env, 'production'
7
+ set :unicorn_rack_env, 'production'
8
+
@@ -0,0 +1,66 @@
1
+ rails_env = ENV['RAILS_ENV'] || 'production'
2
+
3
+ deploy_to = '<%= deploy_to %>'
4
+ rails_root = "#{deploy_to}/current"
5
+
6
+ tmp_dir = "#{deploy_to}/shared/tmp"
7
+ pid_dir = "#{tmp_dir}/pids"
8
+ if File.directory?(tmp_dir) && !File.directory?(pid_dir)
9
+ puts "creating pid dir #{pid_dir}"
10
+ Dir.mkdir(pid_dir)
11
+ end
12
+ pid_file = "#{pid_dir}/unicorn.pid"
13
+
14
+ log_file = "#{deploy_to}/shared/log/unicorn.log"
15
+ err_log_file = "#{deploy_to}/shared/log/unicorn.error.log"
16
+
17
+ old_pid_file = pid_file + '.oldbin'
18
+
19
+ worker_processes 1
20
+ working_directory rails_root
21
+
22
+ timeout 120
23
+
24
+ # Specify path to socket unicorn listens to,
25
+ # we will use this in our nginx.conf later
26
+
27
+ listen "127.0.0.1:<%= port %>"
28
+
29
+ pid pid_file
30
+
31
+ # Set log file paths
32
+ stderr_path err_log_file
33
+ stdout_path log_file
34
+
35
+ # http://tech.tulentsev.com/2012/03/deploying-with-sinatra-capistrano-unicorn/
36
+ # NOTE: http://unicorn.bogomips.org/SIGNALS.html
37
+ preload_app true
38
+
39
+ # make sure that Bundler finds the Gemfile
40
+ before_exec do |server|
41
+ ENV['BUNDLE_GEMFILE'] = File.join( rails_root, 'Gemfile' )
42
+ end
43
+
44
+ before_fork do |server, worker|
45
+ # при использовании preload_app = true здесь должно быть закрытие всех открытых сокетов
46
+
47
+ # Mongoid сам заботится о переконнекте
48
+ # http://two.mongoid.org/docs/upgrading.html
49
+
50
+ # http://stackoverflow.com/a/9498372/2041969
51
+ # убиваем параллельный старый-процесс просле старта нового
52
+ if File.exists?( old_pid_file )
53
+ begin
54
+ Process.kill( "QUIT", File.read( old_pid_file ).to_i )
55
+ rescue Errno::ENOENT, Errno::ESRCH
56
+ puts "Old master alerady dead"
57
+ end
58
+ end
59
+ end
60
+
61
+ after_fork do |server, worker|
62
+ # pid-ы дочерних процессов
63
+ child_pid_file = server.config[:pid].sub(".pid", ".#{worker.nr}.pid")
64
+ system("echo #{Process.pid} > #{child_pid_file}")
65
+ end
66
+
@@ -0,0 +1,22 @@
1
+ # shamelessly stolen from https://github.com/sferik/rails_admin/blob/master/lib/generators/rails_admin/utils.rb
2
+
3
+ module RocketCms
4
+ module Generators
5
+ module Utils
6
+ module InstanceMethods
7
+ def display(output, color = :green)
8
+ say(" - #{output}", color)
9
+ end
10
+
11
+ def ask_for(wording, default_value = nil, override_if_present_value = nil)
12
+ if override_if_present_value.present?
13
+ display("Using [#{override_if_present_value}] for question '#{wording}'") && override_if_present_value
14
+ else
15
+ ask(" ? #{wording} Press <enter> for [#{default_value}] >", :yellow).presence || default_value
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+
@@ -0,0 +1,11 @@
1
+ module ManualSlug
2
+ autoload :Mongoid, 'manual_slug/mongoid'
3
+ autoload :ActiveRecord, 'manual_slug/active_record'
4
+ extend ActiveSupport::Concern
5
+ if RocketCMS.mongoid?
6
+ include ManualSlug::Mongoid
7
+ else
8
+ include ManualSlug::ActiveRecord
9
+ end
10
+ end
11
+
@@ -0,0 +1,32 @@
1
+ module ManualSlug::ActiveRecord
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ extend FriendlyId
6
+ end
7
+
8
+ def text_slug
9
+ slug
10
+ end
11
+ def text_slug=(s)
12
+ self.slug = s
13
+ end
14
+
15
+ module ClassMethods
16
+ def manual_slug(field, options = {}, callback = true)
17
+ friendly_id field, use: [:slugged, :finders]
18
+ define_method(:should_generate_new_friendly_id?) do
19
+ slug.blank?
20
+ end
21
+
22
+ skip_callback :validation, :before, :set_slug
23
+ before_validation do
24
+ if self.slug.blank?
25
+ self.send(:set_slug)
26
+ end
27
+ true
28
+ end if callback
29
+ end
30
+ end
31
+ end
32
+
@@ -0,0 +1,36 @@
1
+ module ManualSlug::Mongoid
2
+ extend ActiveSupport::Concern
3
+ include ::Mongoid::Slug
4
+
5
+ def text_slug
6
+ self._slugs.empty? ? '' : self._slugs.last
7
+ end
8
+ def text_slug=(slug)
9
+ if slug.blank?
10
+ self._slugs = []
11
+ else
12
+ self._slugs.delete(slug)
13
+ self._slugs << slug
14
+ end
15
+ end
16
+
17
+ module ClassMethods
18
+ def manual_slug(field, options = {}, callback = true)
19
+ options.merge!(permanent: true, history: true)
20
+ slug field, options
21
+
22
+ # we will create slugs manually when needed
23
+ skip_callback :create, :before, :build_slug
24
+
25
+ before_validation do
26
+ self._slugs = self._slugs.map{ |s| s.strip }.reject {|s| s.blank? } if self._slugs
27
+
28
+ if self._slugs.blank?
29
+ self.build_slug
30
+ end
31
+
32
+ true
33
+ end if callback
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,39 @@
1
+ module RailsAdmin
2
+ module Config
3
+ module Actions
4
+ class CustomShowInApp < RailsAdmin::Config::Actions::Base
5
+ RailsAdmin::Config::Actions.register(self)
6
+
7
+ register_instance_option :member do
8
+ true
9
+ end
10
+
11
+ register_instance_option :visible? do
12
+ authorized? && (bindings[:controller].main_app.url_for(bindings[:object]) rescue false)
13
+ end
14
+
15
+ register_instance_option :controller do
16
+ Proc.new do
17
+ if @object.class.name == 'Page'
18
+ redirect_to main_app.page_url(@object)
19
+ elsif @object.class.name == 'News'
20
+ redirect_to main_app.news_url(@object)
21
+ elsif @object.class.name == 'Obj'
22
+ redirect_to main_app.object_url(@object.category, @object)
23
+ else
24
+ redirect_to main_app.url_for(@object)
25
+ end
26
+ end
27
+ end
28
+
29
+ register_instance_option :link_icon do
30
+ 'icon-eye-open'
31
+ end
32
+
33
+ register_instance_option :pjax? do
34
+ false
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,88 @@
1
+ unless defined?(RocketCMS) && RocketCMS.respond_to?(:orm) && [:active_record, :mongoid].include?(RocketCMS.orm)
2
+ puts "please use rocket_cms_mongoid or rocket_cms_activerecord and not rocket_cms directly"
3
+ exit 1
4
+ end
5
+
6
+ require 'rocket_cms/version'
7
+ require 'devise'
8
+
9
+ require 'simple_form'
10
+ require 'rocket_cms/simple_form_patch'
11
+
12
+ require 'glebtv-simple_captcha'
13
+ require 'validates_email_format_of'
14
+ require 'smart_excerpt'
15
+ require 'filename_to_slug'
16
+ require 'rails_admin'
17
+ require 'rails_admin_nested_set'
18
+ require 'rails_admin_toggleable'
19
+ # require 'rails_admin_settings'
20
+
21
+ require 'x-real-ip'
22
+
23
+ require 'glebtv-ckeditor'
24
+
25
+ require 'sitemap_generator'
26
+ require 'kaminari'
27
+ require 'addressable/uri'
28
+ require 'turbolinks'
29
+ require 'simple-navigation'
30
+
31
+ require 'rocket_cms/configuration'
32
+ require 'rocket_cms/patch'
33
+ require 'rocket_cms/admin'
34
+ require 'rocket_cms/elastic_search'
35
+ require 'rocket_cms/model'
36
+ require 'rocket_cms/rails_admin_menu'
37
+ require 'rocket_cms/engine'
38
+ require 'rocket_cms/controller'
39
+
40
+ module RocketCMS
41
+ class << self
42
+ def mongoid?
43
+ RocketCMS.orm == :mongoid
44
+ end
45
+ def active_record?
46
+ RocketCMS.orm == :active_record
47
+ end
48
+ def model_namespace
49
+ "RocketCMS::Models::#{RocketCMS.orm.to_s.camelize}"
50
+ end
51
+ def orm_specific(name)
52
+ "#{model_namespace}::#{name}".constantize
53
+ end
54
+ end
55
+
56
+ autoload :Migration, 'rocket_cms/migration'
57
+
58
+ module Models
59
+ autoload :Menu, 'rocket_cms/models/menu'
60
+ autoload :Page, 'rocket_cms/models/page'
61
+ autoload :News, 'rocket_cms/models/news'
62
+ autoload :ContactMessage, 'rocket_cms/models/contact_message'
63
+
64
+ module Mongoid
65
+ autoload :Menu, 'rocket_cms/models/mongoid/menu'
66
+ autoload :Page, 'rocket_cms/models/mongoid/page'
67
+ autoload :News, 'rocket_cms/models/mongoid/news'
68
+ autoload :ContactMessage, 'rocket_cms/models/mongoid/contact_message'
69
+ end
70
+
71
+ module ActiveRecord
72
+ autoload :Menu, 'rocket_cms/models/active_record/menu'
73
+ autoload :Page, 'rocket_cms/models/active_record/page'
74
+ autoload :News, 'rocket_cms/models/active_record/news'
75
+ autoload :ContactMessage, 'rocket_cms/models/active_record/contact_message'
76
+ end
77
+ end
78
+
79
+ module Controllers
80
+ autoload :Contacts, 'rocket_cms/controllers/contacts'
81
+ autoload :News, 'rocket_cms/controllers/news'
82
+ autoload :Pages, 'rocket_cms/controllers/pages'
83
+ autoload :Search, 'rocket_cms/controllers/search'
84
+ end
85
+ end
86
+
87
+ require 'manual_slug'
88
+
@@ -0,0 +1,152 @@
1
+ module RocketCMS
2
+ class << self
3
+ def map_config(is_active = true)
4
+ Proc.new {
5
+ active is_active
6
+ label I18n.t('rs.map')
7
+ field :address, :string
8
+ field :map_address, :string
9
+ field :map_hint, :string
10
+ field :coordinates, :string do
11
+ read_only true
12
+ formatted_value{ bindings[:object].coordinates.to_json }
13
+ end
14
+ field :lat
15
+ field :lon
16
+ }
17
+ end
18
+
19
+ def seo_config(is_active = false)
20
+ Proc.new {
21
+ active is_active
22
+ label "SEO"
23
+ field :h1, :string
24
+ field :title, :string
25
+ field :keywords, :text
26
+ field :description, :text
27
+ field :robots, :string
28
+
29
+ field :og_title, :string
30
+ field :og_image
31
+ }
32
+ end
33
+
34
+ def page_config
35
+ Proc.new {
36
+ RocketCMS.apply_patches self
37
+ navigation_label I18n.t('rs.cms')
38
+ list do
39
+ scopes [:sorted, :enabled, nil]
40
+
41
+ field :enabled, :toggle
42
+ field :menus, :menu
43
+ field :name
44
+ field :fullpath do
45
+ pretty_value do
46
+ bindings[:view].content_tag(:a, bindings[:object].fullpath, href: bindings[:object].fullpath)
47
+ end
48
+ end
49
+ field :redirect
50
+ field :slug
51
+ RocketCMS.apply_patches self
52
+ end
53
+ edit do
54
+ field :name
55
+ field :excerpt, :ck_editor
56
+ field :content, :ck_editor
57
+ RocketCMS.apply_patches self
58
+ group :menu do
59
+ label I18n.t('rs.menu')
60
+ field :menus
61
+ field :fullpath, :string do
62
+ help I18n.t('rs.with_final_slash')
63
+ end
64
+ field :regexp, :string do
65
+ help I18n.t('rs.page_url_regex')
66
+ end
67
+ field :redirect, :string do
68
+ help I18n.t('rs.final_in_menu')
69
+ end
70
+ field :text_slug
71
+ end
72
+ group :seo, &RocketCMS.seo_config
73
+ group :sitemap_data, &RocketCMS.sitemap_data_config
74
+ end
75
+ RocketCMS.only_patches self, [:show, :export]
76
+ nested_set({
77
+ max_depth: RocketCMS.configuration.menu_max_depth
78
+ })
79
+ }
80
+ end
81
+
82
+ def menu_config
83
+ Proc.new {
84
+ navigation_label 'CMS'
85
+
86
+ field :enabled, :toggle
87
+ field :text_slug
88
+ field :name
89
+ RocketCMS.apply_patches self
90
+ RocketCMS.only_patches self, [:show, :list, :edit, :export]
91
+ }
92
+ end
93
+
94
+ def contact_message_config
95
+ Proc.new {
96
+ navigation_label I18n.t('rs.settings')
97
+ field :created_at do
98
+ read_only true
99
+ end
100
+ field :name
101
+ field :content, :text
102
+ field :email
103
+ field :phone
104
+
105
+ RocketCMS.apply_patches self
106
+ RocketCMS.only_patches self, [:show, :list, :edit, :export]
107
+ }
108
+ end
109
+
110
+ def news_config
111
+ Proc.new {
112
+ navigation_label I18n.t('rs.cms')
113
+ list do
114
+ scopes [:by_date, :enabled, nil]
115
+ end
116
+
117
+ field :enabled, :toggle
118
+ field :time
119
+ field :name
120
+ unless RocketCMS.configuration.news_image_styles.nil?
121
+ field :image
122
+ end
123
+ field :excerpt
124
+ RocketCMS.apply_patches self
125
+
126
+ edit do
127
+ field :content, :ck_editor
128
+ RocketCMS.apply_patches self
129
+ group :seo, &RocketCMS.seo_config
130
+ group :sitemap_data, &RocketCMS.sitemap_data_config
131
+ end
132
+
133
+ RocketCMS.only_patches self, [:show, :list, :export]
134
+ }
135
+ end
136
+
137
+ def sitemap_data_config(is_active = false)
138
+ Proc.new {
139
+ active is_active
140
+ label I18n.t('rs.sitemap_data')
141
+ field :sitemap_show
142
+ field :sitemap_lastmod
143
+ field :sitemap_changefreq, :enum do
144
+ enum do
145
+ SitemapData::SITEMAP_CHANGEFREQ_ARRAY
146
+ end
147
+ end
148
+ field :sitemap_priority
149
+ }
150
+ end
151
+ end
152
+ end