camaleon_cms 1.0.8 → 1.0.9
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of camaleon_cms might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +15 -1
- data/app/apps/plugins/contact_form/admin_forms_controller.rb +0 -9
- data/app/apps/plugins/contact_form/contact_form_helper.rb +94 -3
- data/app/apps/plugins/contact_form/front_controller.rb +2 -68
- data/app/apps/plugins/front_cache/front_cache_helper.rb +6 -2
- data/app/controllers/admin/appearances/widgets/assign_controller.rb +3 -3
- data/app/controllers/admin/appearances/widgets/sidebar_controller.rb +5 -5
- data/app/controllers/admin/sessions_controller.rb +1 -1
- data/app/controllers/api/api_controller.rb +13 -7
- data/app/controllers/api/v1/category_controller.rb +9 -1
- data/app/controllers/api/v1/contact_form_controller.rb +55 -0
- data/app/controllers/camaleon_controller.rb +10 -3
- data/app/helpers/session_helper.rb +2 -2
- data/app/helpers/theme_helper.rb +12 -0
- data/app/serializers/api/base_serializer.rb +9 -0
- data/app/serializers/api/v1/category_serializer.rb +8 -0
- data/app/views/admin/settings/custom_fields/get_items.html.erb +4 -2
- data/app/views/default_theme/layouts/index.html.erb +1 -1
- data/config/initializers/swagger.rb +18 -0
- data/config/locales/admin/en.yml +12 -2
- data/config/locales/languages.yml +14 -0
- data/config/locales/ru.yml +207 -0
- data/config/routes.rb +5 -0
- data/config/routes/admin.rb +2 -0
- data/lib/camaleon_cms/engine.rb +5 -0
- data/lib/camaleon_cms/version.rb +1 -1
- data/lib/generators/camaleon_cms/gem_plugin_generator.rb +23 -23
- data/lib/generators/ctheme_template/app/apps/themes/my_theme/views/layouts/index.html.erb +1 -1
- data/lib/tasks/precompile_overrides.rake +6 -0
- data/public/docs/index.html +70 -0
- data/public/docs/swagger-ui/css/highlight.default.css +135 -0
- data/public/docs/swagger-ui/css/screen.css +1070 -0
- data/public/docs/swagger-ui/images/logo_small.png +0 -0
- data/public/docs/swagger-ui/images/throbber.gif +0 -0
- data/public/docs/swagger-ui/lib/backbone-min.js +38 -0
- data/public/docs/swagger-ui/lib/handlebars-1.0.0.js +2278 -0
- data/public/docs/swagger-ui/lib/highlight.7.3.pack.js +1 -0
- data/public/docs/swagger-ui/lib/jquery-1.8.0.min.js +2 -0
- data/public/docs/swagger-ui/lib/jquery.ba-bbq.min.js +18 -0
- data/public/docs/swagger-ui/lib/jquery.slideto.min.js +1 -0
- data/public/docs/swagger-ui/lib/jquery.wiggle.min.js +8 -0
- data/public/docs/swagger-ui/lib/shred.bundle.js +2765 -0
- data/public/docs/swagger-ui/lib/shred/content.js +193 -0
- data/public/docs/swagger-ui/lib/swagger.js +1253 -0
- data/public/docs/swagger-ui/lib/underscore-min.js +32 -0
- data/public/docs/swagger-ui/swagger-ui.js +2039 -0
- data/public/docs/swagger-ui/swagger-ui.min.js +1 -0
- metadata +56 -11
- data/app/views/admin/settings/shortcodes.html.erb +0 -37
- data/lib/generators/camaleon_cms/gem_theme_generator.rb +0 -122
- data/test/camaleon_cms_test.rb +0 -7
- data/test/integration/navigation_test.rb +0 -10
- data/test/test_helper.rb +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d119a0fad758a8ad11ba5cc42dd42942896862ee
|
4
|
+
data.tar.gz: f7b2d4e99f044d16c5e9972f639c1bb5e9765813
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc0fd94340d4eb4cd7d9cf9ab4e2b0b001376b36e958885d43101e4511b4888618938aedb856bf76d8edd582d8ebe6d9cb74e27e41d14cc8e7a9cc546a9afc01
|
7
|
+
data.tar.gz: ca5f44b3daa47f296d66462ff143c4e69e4b3ad76ab49d770a78e682d865016b9deb8315748683a3483da75a56b0679a6c43adf6dac80126b736978b71466266
|
data/README.md
CHANGED
@@ -180,4 +180,18 @@ http://camaleon.tuzitio.com/license.html/
|
|
180
180
|
Visit the web site for more information: http://camaleon.tuzitio.com/
|
181
181
|
|
182
182
|
## Version History
|
183
|
-
|
183
|
+
* Version 1.0.8
|
184
|
+
- Fix logo size on admin panel
|
185
|
+
- Fixed: Raise error when visiting unexisting urls. Example: Random troll writes domain.com/asdasdasd/adfasdasd.
|
186
|
+
- Allow email domains up to 10 characters in the contact form plugin
|
187
|
+
- Added advanced shortcodes to print data in any content:Permit to generate specific data of a post. (see more details in link below)
|
188
|
+
- fixed vertical scroll for multiple modals- added a library to create inline field to upload fields.
|
189
|
+
- Added control to clean cache after restart server.
|
190
|
+
- Added hook to include custom links from plugins or themes.
|
191
|
+
- changed custom sitemap into hash.
|
192
|
+
- added sitemap skippers to filter private elements.
|
193
|
+
- fixed the_breadcrumb for current_site.
|
194
|
+
- Unify current_user removing current_resource_owner. Solved bug with login_user_with_password.
|
195
|
+
- Added generic API response methods, render_json_error & render_json_ok.
|
196
|
+
|
197
|
+
See more here: http://camaleon.tuzitio.com/version-history.html
|
@@ -71,15 +71,6 @@ class Plugins::ContactForm::AdminFormsController < Apps::PluginsAdminController
|
|
71
71
|
|
72
72
|
end
|
73
73
|
|
74
|
-
def fix_meta_value(value)
|
75
|
-
if (value.is_a?(Array) || value.is_a?(Hash))
|
76
|
-
value = value.to_json
|
77
|
-
elsif value.is_a?(String)
|
78
|
-
value = value.to_var
|
79
|
-
end
|
80
|
-
value
|
81
|
-
end
|
82
|
-
|
83
74
|
# here add your custom functions
|
84
75
|
private
|
85
76
|
def set_form
|
@@ -74,15 +74,106 @@ module Plugins::ContactForm::ContactFormHelper
|
|
74
74
|
end
|
75
75
|
|
76
76
|
def contact_form_admin_before_load
|
77
|
-
admin_menu_append_menu_item("settings", {icon: "envelope-o", title: t('plugin.contact_form.contact_form'), url:
|
77
|
+
admin_menu_append_menu_item("settings", {icon: "envelope-o", title: t('plugin.contact_form.contact_form'), url: admin_plugins_contact_form_admin_forms_path, datas: "data-intro='This plugin permit you to create you contact forms with desired fields and paste your short_code in any content.' data-position='right'"})
|
78
78
|
end
|
79
79
|
|
80
80
|
def contact_form_app_before_load
|
81
|
-
shortcode_add('forms',
|
81
|
+
shortcode_add('forms', plugin_view("contact_form", "forms_shorcode"), "This is a shortocode for contact form to permit you to put your contact form in any content.
|
82
82
|
Sample: [forms slug='key-for-my-form']")
|
83
83
|
end
|
84
84
|
|
85
85
|
def contact_form_front_before_load
|
86
|
-
append_asset_libraries({"plugin_contact_form"=> {
|
86
|
+
append_asset_libraries({"plugin_contact_form" => {css: [plugin_asset_path("contact_form", "css/front/railsform")]}})
|
87
|
+
end
|
88
|
+
|
89
|
+
def perform_save_form(form, values, fields, settings, success, errors)
|
90
|
+
attachments = []
|
91
|
+
if validate_to_save_form(values, fields, settings, errors)
|
92
|
+
values[:fields].each do |f|
|
93
|
+
cid = f[:cid].to_sym
|
94
|
+
if f[:field_type] == 'file'
|
95
|
+
res = upload_file(fields[cid], {maximum: 5.megabytes, folder: current_site.upload_directory("uploads")})
|
96
|
+
if res[:error].present?
|
97
|
+
errors << res[:error]
|
98
|
+
else
|
99
|
+
attachments << res['file']
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
new_settings = {"fields" => fields, "created_at" => Time.now.strftime("%Y-%m-%d %H:%M:%S").to_s}.to_json
|
105
|
+
form_new = current_site.contact_forms.new(name: "response-#{Time.now}", description: form.description, settings: fix_meta_value(new_settings), site_id: form.site_id, parent_id: form.id)
|
106
|
+
|
107
|
+
if form_new.save
|
108
|
+
begin
|
109
|
+
content = render_to_string partial: 'contact_form/submission',
|
110
|
+
layout: false,
|
111
|
+
locals: {
|
112
|
+
file_attachments: attachments,
|
113
|
+
fields: convert_form_values(
|
114
|
+
values[:fields],
|
115
|
+
fields
|
116
|
+
)
|
117
|
+
}
|
118
|
+
rescue ActionView::MissingTemplate
|
119
|
+
content = render_to_string partial: 'contact_form/views/contact_form/submission',
|
120
|
+
layout: false,
|
121
|
+
locals: {
|
122
|
+
file_attachments: attachments,
|
123
|
+
fields: convert_form_values(
|
124
|
+
values[:fields],
|
125
|
+
fields
|
126
|
+
)
|
127
|
+
}
|
128
|
+
end
|
129
|
+
|
130
|
+
sendmail(
|
131
|
+
settings[:railscf_mail][:to], settings[:railscf_mail][:subject],
|
132
|
+
content,
|
133
|
+
settings[:railscf_mail][:to],
|
134
|
+
attachments
|
135
|
+
)
|
136
|
+
success << settings[:railscf_message][:mail_sent_ok]
|
137
|
+
else
|
138
|
+
errors << settings[:railscf_message][:mail_sent_ng]
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
def validate_to_save_form(values, fields, settings, errors)
|
144
|
+
validate = true
|
145
|
+
values[:fields].each do |f|
|
146
|
+
cid = f[:cid].to_sym
|
147
|
+
label = f[:label].to_sym
|
148
|
+
|
149
|
+
case f[:field_type].to_s
|
150
|
+
when 'text', 'website', 'paragraph', 'textarea', 'email', 'radio', 'checkboxes', 'dropdown', 'file'
|
151
|
+
if f[:required] && !fields[cid].present?
|
152
|
+
errors << "#{label}: #{settings[:railscf_message][:invalid_required]}"
|
153
|
+
validate = false
|
154
|
+
end
|
155
|
+
if f[:field_type].to_s == "email"
|
156
|
+
if !fields[cid].match(/\b[A-Z0-9._%a-z\-]+@(?:[A-Z0-9a-z\-]+\.)+[A-Za-z]{2,10}\z/)
|
157
|
+
errors << "#{label}: #{settings[:railscf_message][:invalid_email]}"
|
158
|
+
validate = false
|
159
|
+
end
|
160
|
+
end
|
161
|
+
when 'captcha'
|
162
|
+
unless captcha_verified?
|
163
|
+
errors << "#{label}: #{settings[:railscf_message][:captcha_not_match]}"
|
164
|
+
validate = false
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
validate
|
169
|
+
end
|
170
|
+
|
171
|
+
def fix_meta_value(value)
|
172
|
+
if (value.is_a?(Array) || value.is_a?(Hash))
|
173
|
+
value = value.to_json
|
174
|
+
elsif value.is_a?(String)
|
175
|
+
value = value.to_var
|
176
|
+
end
|
177
|
+
value
|
87
178
|
end
|
88
179
|
end
|
@@ -19,76 +19,10 @@ class Plugins::ContactForm::FrontController < Apps::PluginsFrontController
|
|
19
19
|
values = JSON.parse(@form.value).to_sym
|
20
20
|
settings = JSON.parse(@form.settings).to_sym
|
21
21
|
fields = params[:fields]
|
22
|
-
attachments = []
|
23
|
-
|
24
22
|
errors = []
|
25
23
|
success = []
|
26
24
|
|
27
|
-
|
28
|
-
|
29
|
-
values[:fields].each do |f|
|
30
|
-
cid = f[:cid].to_sym
|
31
|
-
label = f[:label].to_sym
|
32
|
-
|
33
|
-
case f[:field_type].to_s
|
34
|
-
when 'text', 'website', 'paragraph', 'textarea', 'email', 'radio', 'checkboxes', 'dropdown', 'file'
|
35
|
-
if f[:required] && !fields[cid].present?
|
36
|
-
errors << "#{label}: #{settings[:railscf_message][:invalid_required]}"
|
37
|
-
validate = false
|
38
|
-
end
|
39
|
-
if f[:field_type].to_s == "email"
|
40
|
-
if !fields[cid].match(/\b[A-Z0-9._%a-z\-]+@(?:[A-Z0-9a-z\-]+\.)+[A-Za-z]{2,10}\z/)
|
41
|
-
errors << "#{label}: #{settings[:railscf_message][:invalid_email]}"
|
42
|
-
validate = false
|
43
|
-
end
|
44
|
-
end
|
45
|
-
when 'captcha'
|
46
|
-
unless captcha_verified?
|
47
|
-
errors << "#{label}: #{settings[:railscf_message][:captcha_not_match]}"
|
48
|
-
validate = false
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
if validate
|
54
|
-
values[:fields].each do |f|
|
55
|
-
cid = f[:cid].to_sym
|
56
|
-
if f[:field_type] == 'file'
|
57
|
-
res = upload_file(fields[cid], {maximum: 5.megabytes, folder: current_site.upload_directory("uploads")})
|
58
|
-
if res[:error].present?
|
59
|
-
errors << res[:error]
|
60
|
-
else
|
61
|
-
attachments << res['file']
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
new_settings = {"fields" => fields, "created_at" => Time.now.strftime("%Y-%m-%d %H:%M:%S").to_s}.to_json
|
67
|
-
@form_new = current_site.contact_forms.new(name: "response-#{Time.now}", description: @form.description, settings:fix_meta_value(new_settings), site_id: @form.site_id, parent_id: @form.id)
|
68
|
-
|
69
|
-
if @form_new.save
|
70
|
-
content = render_to_string partial: 'contact_form/submission',
|
71
|
-
layout: false,
|
72
|
-
locals: {
|
73
|
-
file_attachments: attachments,
|
74
|
-
fields: convert_form_values(
|
75
|
-
values[:fields],
|
76
|
-
fields
|
77
|
-
)
|
78
|
-
}
|
79
|
-
# send mail
|
80
|
-
sendmail(
|
81
|
-
settings[:railscf_mail][:to], settings[:railscf_mail][:subject],
|
82
|
-
content,
|
83
|
-
settings[:railscf_mail][:to],
|
84
|
-
attachments
|
85
|
-
)
|
86
|
-
success << settings[:railscf_message][:mail_sent_ok]
|
87
|
-
else
|
88
|
-
errors << settings[:railscf_message][:mail_sent_ng]
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
25
|
+
perform_save_form(@form, values, fields, settings, success, errors)
|
92
26
|
if success.present?
|
93
27
|
flash[:notice] = success.join('<br>')
|
94
28
|
else
|
@@ -113,4 +47,4 @@ class Plugins::ContactForm::FrontController < Apps::PluginsFrontController
|
|
113
47
|
end
|
114
48
|
value
|
115
49
|
end
|
116
|
-
end
|
50
|
+
end
|
@@ -139,8 +139,12 @@ module Plugins::FrontCache::FrontCacheHelper
|
|
139
139
|
|
140
140
|
# clear all frontend cache files
|
141
141
|
def front_cache_clean
|
142
|
-
|
143
|
-
|
142
|
+
# TODO replace with custom cache page
|
143
|
+
begin
|
144
|
+
FileUtils.rm_f(cache_store.cache_path) # clear fragment caches
|
145
|
+
FileUtils.rm_rf(File.join(ActionController::Base.page_cache_directory, current_site.id.to_s)) # clear site pages cache
|
146
|
+
rescue
|
147
|
+
end
|
144
148
|
end
|
145
149
|
|
146
150
|
private
|
@@ -20,9 +20,9 @@ class Admin::Appearances::Widgets::AssignController < Admin::AppearancesControll
|
|
20
20
|
@assigned = @sidebar.assigned.find(params[:id])
|
21
21
|
if @assigned.update(params[:assign])
|
22
22
|
@assigned.set_field_values(params[:field_options])
|
23
|
-
flash[:notice] =
|
23
|
+
flash[:notice] = t('admin.widgets.assign.updated')
|
24
24
|
else
|
25
|
-
flash[:error] =
|
25
|
+
flash[:error] = t('admin.widgets.assign.error_updated')
|
26
26
|
end
|
27
27
|
redirect_to admin_appearances_widgets_main_index_path
|
28
28
|
end
|
@@ -37,4 +37,4 @@ class Admin::Appearances::Widgets::AssignController < Admin::AppearancesControll
|
|
37
37
|
authorize! :manager, :widgets
|
38
38
|
end
|
39
39
|
|
40
|
-
end
|
40
|
+
end
|
@@ -17,9 +17,9 @@ class Admin::Appearances::Widgets::SidebarController < Admin::AppearancesControl
|
|
17
17
|
def create
|
18
18
|
@sidebar = current_site.sidebars.new(params[:widget_sidebar])
|
19
19
|
if @sidebar.save
|
20
|
-
flash[:notice] =
|
20
|
+
flash[:notice] = t('admin.widgets.sidebar.created')
|
21
21
|
else
|
22
|
-
flash[:error] =
|
22
|
+
flash[:error] = t('admin.widgets.sidebar.error_created')
|
23
23
|
end
|
24
24
|
redirect_to admin_appearances_widgets_main_index_path
|
25
25
|
end
|
@@ -31,9 +31,9 @@ class Admin::Appearances::Widgets::SidebarController < Admin::AppearancesControl
|
|
31
31
|
|
32
32
|
def update
|
33
33
|
if current_site.sidebars.find(params[:id]).update(params[:widget_sidebar])
|
34
|
-
flash[:notice] =
|
34
|
+
flash[:notice] = t('admin.widgets.sidebar.updated')
|
35
35
|
else
|
36
|
-
flash[:error] =
|
36
|
+
flash[:error] = t('admin.widgets.sidebar.error_updated')
|
37
37
|
end
|
38
38
|
redirect_to admin_appearances_widgets_main_index_path
|
39
39
|
end
|
@@ -47,7 +47,7 @@ class Admin::Appearances::Widgets::SidebarController < Admin::AppearancesControl
|
|
47
47
|
|
48
48
|
def destroy
|
49
49
|
@sidebar = current_site.sidebars.find(params[:id]).destroy
|
50
|
-
flash[:notice] =
|
50
|
+
flash[:notice] = t('admin.widgets.sidebar.error_deleted')
|
51
51
|
redirect_to admin_appearances_widgets_main_index_path
|
52
52
|
end
|
53
53
|
|
@@ -36,7 +36,7 @@ class Admin::SessionsController < CamaleonController
|
|
36
36
|
if captcha_validate
|
37
37
|
flash[:error] = t('admin.login.message.fail')
|
38
38
|
else
|
39
|
-
flash[:error] =
|
39
|
+
flash[:error] = t('admin.login.message.invalid_caption')
|
40
40
|
end
|
41
41
|
@user = current_site.users.new(data_user)
|
42
42
|
render 'admin/sessions/login'
|
@@ -1,17 +1,20 @@
|
|
1
1
|
class Api::ApiController < CamaleonController
|
2
2
|
#before_action -> { doorkeeper_authorize! :client }
|
3
|
-
|
4
3
|
def account
|
5
4
|
render json: current_user
|
6
5
|
end
|
7
6
|
|
8
|
-
def render_json_error(
|
7
|
+
def render_json_error(error, status = 404)
|
8
|
+
render json: error, status: status
|
9
|
+
end
|
10
|
+
|
11
|
+
def render_json_error_message(internal_message = 'Unexpected error', code = 100, status = 404, user_message = 'Unexpected error')
|
9
12
|
error = {
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
+
userMessage: user_message,
|
14
|
+
internalMessage: internal_message,
|
15
|
+
code: code
|
13
16
|
}
|
14
|
-
|
17
|
+
render_json_error(error, status)
|
15
18
|
end
|
16
19
|
|
17
20
|
def render_json_ok(message = 'Success', status = 200, more_info = {})
|
@@ -19,7 +22,10 @@ class Api::ApiController < CamaleonController
|
|
19
22
|
message: message,
|
20
23
|
more_info: more_info
|
21
24
|
}
|
22
|
-
render :
|
25
|
+
render json: msg, status: status
|
23
26
|
end
|
24
27
|
|
28
|
+
def render_json_not_found
|
29
|
+
render nothing: true, status: 404
|
30
|
+
end
|
25
31
|
end
|
@@ -1,7 +1,15 @@
|
|
1
1
|
class Api::V1::CategoryController < Api::ApiController
|
2
2
|
|
3
|
+
swagger_controller :categories, 'Categories'
|
4
|
+
|
5
|
+
swagger_api :categories do
|
6
|
+
summary 'Categories'
|
7
|
+
notes 'Notes...'
|
8
|
+
end
|
9
|
+
|
3
10
|
def categories
|
4
|
-
|
11
|
+
@categories = current_site.full_categories
|
12
|
+
render json: ActiveModel::ArraySerializer.new(@categories, each_serializer: Api::V1::CategorySerializer)
|
5
13
|
end
|
6
14
|
|
7
15
|
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
class Api::V1::ContactFormController < Api::ApiController
|
2
|
+
#TODO this controller must be into ContactForm plugin app
|
3
|
+
skip_before_filter :verify_authenticity_token
|
4
|
+
|
5
|
+
swagger_controller :contact_form, 'ContactForm'
|
6
|
+
|
7
|
+
swagger_api :contact_form_by_slug do
|
8
|
+
summary "Fetch a single Contact Form by slug"
|
9
|
+
param :path, :slug, :string, :required, 'Contact form slug'
|
10
|
+
response :ok, 'Success', :ContactForm
|
11
|
+
response :not_found
|
12
|
+
end
|
13
|
+
|
14
|
+
def contact_form_by_slug
|
15
|
+
form = current_site.contact_forms.where("parent_id is null and slug = '#{params[:slug]}'").first
|
16
|
+
if form.nil?
|
17
|
+
render_json_not_found
|
18
|
+
else
|
19
|
+
render json: {
|
20
|
+
:id => form.id,
|
21
|
+
:fields => JSON.parse(form.value).to_sym[:fields],
|
22
|
+
:settings => JSON.parse(form.settings).to_sym
|
23
|
+
}
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
swagger_api :save_form do
|
28
|
+
summary "Submit a contact form"
|
29
|
+
param :form, :id, :integer, :required, 'Contact form id'
|
30
|
+
param :form, :fields, :array, :required, 'Fields'
|
31
|
+
response :ok, 'Success'
|
32
|
+
response :not_found
|
33
|
+
end
|
34
|
+
|
35
|
+
def save_form
|
36
|
+
form = current_site.contact_forms.find_by_id(params[:id])
|
37
|
+
unless form.nil?
|
38
|
+
values = JSON.parse(form.value).to_sym
|
39
|
+
settings = JSON.parse(form.settings).to_sym
|
40
|
+
fields = params[:fields]
|
41
|
+
errors = []
|
42
|
+
success = []
|
43
|
+
|
44
|
+
perform_save_form(form, values, fields, settings, success, errors)
|
45
|
+
if success.present?
|
46
|
+
render_json_ok(success.join('<br>'))
|
47
|
+
else
|
48
|
+
render_json_ok({:errors => :errors, :fields => fields})
|
49
|
+
end
|
50
|
+
else
|
51
|
+
render_json_not_found
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -49,9 +49,16 @@ class CamaleonController < ApplicationController
|
|
49
49
|
# including all helpers (system, themes, plugins) for this site
|
50
50
|
PluginRoutes.enabled_apps(current_site, current_theme.slug).each{|plugin| plugin_load_helpers(plugin) }
|
51
51
|
|
52
|
-
#
|
53
|
-
|
54
|
-
|
52
|
+
# Set default cache file store directory for current site
|
53
|
+
# Sample: Rails.cache.write("#{current_site.id}-#{Time.now}", 1)
|
54
|
+
begin
|
55
|
+
cache_store.cache_path = File.join(cache_store.cache_path.split("site-#{current_site.id}").first, "site-#{current_site.id}")
|
56
|
+
rescue
|
57
|
+
# skip error for non cache file, sample: dalli
|
58
|
+
# you need to define your cache store settings by config file or using the hook "app_before_load"
|
59
|
+
# for multi site support you can use namespace: "site-#{current_site.id}"
|
60
|
+
end
|
61
|
+
|
55
62
|
|
56
63
|
# initializing short codes
|
57
64
|
shortcodes_init()
|