camaleon_cms 2.4.3.5 → 2.4.3.6
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 +5 -5
- data/app/apps/themes/camaleon_first/views/layouts/{mailer.html.erb → camaleon_cms/mailer.html.erb} +0 -0
- data/app/apps/themes/camaleon_first/views/{html_mailer/mailer.html.erb → mailer.html.erb} +0 -0
- data/app/assets/javascripts/camaleon_cms/admin/jquery.validate.js +3 -3
- data/app/assets/javascripts/camaleon_cms/admin/tinymce/langs/zh-CN.js +10 -1
- data/app/assets/stylesheets/camaleon_cms/admin/uploader/_uploadfile.css.scss +14 -2
- data/app/controllers/camaleon_cms/admin/appearances/nav_menus_controller.rb +4 -3
- data/app/controllers/camaleon_cms/admin/categories_controller.rb +3 -0
- data/app/controllers/camaleon_cms/admin/comments_controller.rb +1 -0
- data/app/controllers/camaleon_cms/admin/posts/drafts_controller.rb +1 -1
- data/app/controllers/camaleon_cms/admin/posts_controller.rb +21 -7
- data/app/controllers/camaleon_cms/admin/sessions_controller.rb +0 -2
- data/app/controllers/camaleon_cms/admin/settings_controller.rb +1 -1
- data/app/controllers/camaleon_cms/admin/users_controller.rb +14 -3
- data/app/controllers/camaleon_cms/frontend_controller.rb +1 -1
- data/app/controllers/concerns/camaleon_cms/frontend_concern.rb +4 -4
- data/app/decorators/camaleon_cms/application_decorator.rb +1 -1
- data/app/decorators/camaleon_cms/post_decorator.rb +2 -2
- data/app/decorators/camaleon_cms/post_type_decorator.rb +3 -1
- data/app/decorators/camaleon_cms/user_decorator.rb +4 -0
- data/app/helpers/camaleon_cms/admin/application_helper.rb +1 -1
- data/app/helpers/camaleon_cms/admin/custom_fields_helper.rb +8 -8
- data/app/helpers/camaleon_cms/admin/menus_helper.rb +1 -1
- data/app/helpers/camaleon_cms/camaleon_helper.rb +5 -0
- data/app/helpers/camaleon_cms/uploader_helper.rb +1 -1
- data/app/models/camaleon_cms/post.rb +13 -6
- data/app/models/camaleon_cms/post_type.rb +1 -1
- data/app/models/camaleon_cms/site.rb +1 -1
- data/app/models/camaleon_cms/user_role.rb +8 -0
- data/app/models/concerns/camaleon_cms/custom_fields_read.rb +9 -7
- data/app/models/concerns/camaleon_cms/user_methods.rb +11 -1
- data/app/uploaders/camaleon_cms_local_uploader.rb +4 -2
- data/app/uploaders/camaleon_cms_uploader.rb +1 -1
- data/app/views/camaleon_cms/admin/categories/index.html.erb +2 -2
- data/app/views/camaleon_cms/admin/post_tags/index.html.erb +2 -2
- data/app/views/camaleon_cms/admin/posts/_sidebar.html.erb +1 -1
- data/app/views/camaleon_cms/admin/posts/index.html.erb +3 -2
- data/app/views/camaleon_cms/admin/sessions/forgot.html.erb +2 -2
- data/app/views/camaleon_cms/admin/sessions/login.html.erb +3 -5
- data/app/views/camaleon_cms/admin/sessions/register.html.erb +1 -1
- data/app/views/camaleon_cms/admin/settings/_configuration_settings.html.erb +2 -2
- data/app/views/camaleon_cms/admin/settings/custom_fields/fields/_posts.html.erb +1 -1
- data/app/views/camaleon_cms/admin/user_roles/index.html.erb +8 -2
- data/app/views/camaleon_cms/admin/users/form.html.erb +2 -2
- data/app/views/camaleon_cms/admin/users/index.html.erb +8 -1
- data/app/views/layouts/camaleon_cms/admin.html.erb +2 -2
- data/config/initializers/active_record_extension.rb +9 -0
- data/config/initializers/assets.rb +1 -1
- data/config/locales/camaleon_cms/admin/en.yml +1 -1
- data/config/locales/camaleon_cms/admin/es.yml +2 -2
- data/config/locales/camaleon_cms/admin/fr.yml +1 -1
- data/config/locales/camaleon_cms/admin/it.yml +1 -1
- data/config/locales/camaleon_cms/admin/js.yml +40 -40
- data/config/locales/camaleon_cms/admin/nl.yml +1 -1
- data/config/locales/camaleon_cms/admin/pt-BR.yml +1 -1
- data/config/locales/camaleon_cms/admin/pt.yml +1 -1
- data/config/locales/camaleon_cms/admin/ru.yml +1 -1
- data/config/locales/camaleon_cms/admin/zh-CH.yml +56 -30
- data/config/routes/frontend.rb +53 -14
- data/lib/camaleon_cms/engine.rb +4 -2
- data/lib/camaleon_cms/version.rb +1 -1
- data/lib/ext/string.rb +10 -2
- data/lib/generators/camaleon_cms/gem_plugin_generator.rb +3 -2
- data/spec/dummy/db/schema.rb +11 -0
- data/spec/dummy/log/test.log +56824 -0
- data/spec/features/pages_spec.rb +2 -1
- data/spec/features/posts_spec.rb +3 -1
- data/spec/spec_helper.rb +2 -2
- data/spec/support/common.rb +2 -2
- metadata +6 -10
- data/app/assets/javascripts/camaleon_cms/admin/login.js.coffee +0 -7
- data/app/assets/javascripts/camaleon_cms/admin/login_manifest.js +0 -15
- data/app/assets/javascripts/camaleon_cms/gibberish-aes.js +0 -1017
- data/lib/ext/aes_crypt.rb +0 -246
- data/spec/dummy/db/test.sqlite3 +0 -0
@@ -57,48 +57,48 @@ zh-CN:
|
|
57
57
|
approved: '批准'
|
58
58
|
draft: '保存草稿成功'
|
59
59
|
updated_success: '已成功更新'
|
60
|
-
edit_menu: '
|
61
|
-
delete_item: '
|
62
|
-
remove_items_submenu: '
|
63
|
-
you_must_upload_image: '
|
64
|
-
you_must_upload_video: '
|
65
|
-
no_response_fields: '
|
66
|
-
you_must_upload_json_file: '
|
67
|
-
no_templates_defined: '
|
68
|
-
avatar_updated: '
|
69
|
-
form_error: '
|
70
|
-
option_title: '
|
71
|
-
permalink: '
|
72
|
-
pending: '
|
73
|
-
preview: '
|
74
|
-
spam: '
|
75
|
-
view_page: '
|
76
|
-
view_draft: '
|
77
|
-
recover: '
|
78
|
-
processing: '
|
79
|
-
type_contents: '
|
80
|
-
upload_image: '
|
81
|
-
confirm_del:
|
82
|
-
media_title: '
|
83
|
-
replace_image: '
|
84
|
-
save_new_image: '
|
60
|
+
edit_menu: '按照您喜欢的顺序放置每个项目。单击铅笔的图标以编辑项目,然后单击 x 形式的图标以删除项目。'
|
61
|
+
delete_item: '真的要删除此项吗?'
|
62
|
+
remove_items_submenu: '真的删除此项目及其子菜单项?'
|
63
|
+
you_must_upload_image: '您必须上传图片'
|
64
|
+
you_must_upload_video: '您必须上传视频'
|
65
|
+
no_response_fields: '无响应字段 '
|
66
|
+
you_must_upload_json_file: '您必须上传一个 JSON 文件'
|
67
|
+
no_templates_defined: '未定义模板'
|
68
|
+
avatar_updated: '更新头像'
|
69
|
+
form_error: '表单错误'
|
70
|
+
option_title: '选项标题'
|
71
|
+
permalink: '固定链接'
|
72
|
+
pending: '待定'
|
73
|
+
preview: '预览'
|
74
|
+
spam: '无用'
|
75
|
+
view_page: '查看页面'
|
76
|
+
view_draft: '查看草稿'
|
77
|
+
recover: '恢复...'
|
78
|
+
processing: '处理中...'
|
79
|
+
type_contents: '类型内容'
|
80
|
+
upload_image: '上传图片'
|
81
|
+
confirm_del: '您确定要删除此项目吗?'
|
82
|
+
media_title: '媒体上传器'
|
83
|
+
replace_image: '替换图片'
|
84
|
+
save_new_image: '保存新图片'
|
85
85
|
|
86
86
|
button:
|
87
|
-
edit:
|
88
|
-
accept:
|
89
|
-
cancel:
|
90
|
-
delete:
|
91
|
-
clone:
|
92
|
-
add_tag: '
|
93
|
-
close: '
|
94
|
-
settings: '
|
95
|
-
save:
|
96
|
-
submit:
|
97
|
-
name:
|
98
|
-
size:
|
99
|
-
insert:
|
100
|
-
url:
|
101
|
-
root:
|
87
|
+
edit: '编辑'
|
88
|
+
accept: '接受'
|
89
|
+
cancel: '取消'
|
90
|
+
delete: '刪除'
|
91
|
+
clone: '克隆'
|
92
|
+
add_tag: '添加标签'
|
93
|
+
close: '关闭'
|
94
|
+
settings: '设置'
|
95
|
+
save: '保存'
|
96
|
+
submit: '提交'
|
97
|
+
name: '名称'
|
98
|
+
size: '尺寸'
|
99
|
+
insert: '插入'
|
100
|
+
url: '网址'
|
101
|
+
root: '根'
|
102
102
|
|
103
103
|
pt-BR:
|
104
104
|
camaleon_cms:
|
@@ -5,7 +5,7 @@ zh-CN:
|
|
5
5
|
page_not_exist: "<h1>此页面不存在 :(...</h1><h5>您访问的页面不存在.</h5>"
|
6
6
|
page_error_500: "<h1>ooops...</h1><h5>内部服务器500错误。 请联系管理员。</h5>"
|
7
7
|
admin:
|
8
|
-
request_error_message: "
|
8
|
+
request_error_message: "发生错误,请联系管理员。"
|
9
9
|
authorization_error: "你没有授权。"
|
10
10
|
header:
|
11
11
|
member_since: "成员开始日期: %{time}"
|
@@ -77,9 +77,9 @@ zh-CN:
|
|
77
77
|
approved: '批准'
|
78
78
|
change_status: '该评论状态已经被修改 '
|
79
79
|
created: '评论已经被创建.'
|
80
|
-
destroy: '
|
80
|
+
destroy: '回复已经被删除.'
|
81
81
|
destroy_comments: '评论已经被删除.'
|
82
|
-
deleted: '
|
82
|
+
deleted: '回复已经被删除.'
|
83
83
|
error: '没发现该评论'
|
84
84
|
pending: '处理中'
|
85
85
|
responses: '回复已经被创建.'
|
@@ -113,14 +113,23 @@ zh-CN:
|
|
113
113
|
image_versions_descr: "创建上传图片的附加多个版本,示例:300x300,505x350 ==>将创建两个具有这些尺寸的额外图片"
|
114
114
|
image_thumb: '缩略图'
|
115
115
|
image_thumb_descr: "定义缩略图的尺寸,示例:100x100。 默认值:%{d}"
|
116
|
+
required_image_thumb: '必须有缩略图?'
|
116
117
|
numeric: '数字'
|
117
118
|
phone: '号码'
|
118
119
|
users: '用户'
|
119
120
|
posts: '文章'
|
121
|
+
video: '视频'
|
122
|
+
audio: '音频'
|
123
|
+
editor: '编辑器'
|
124
|
+
radio: '单选按钮'
|
125
|
+
checkbox: '复选框'
|
126
|
+
checkboxes: '多选复选框'
|
127
|
+
url: '链接'
|
128
|
+
private_file: '私有文件'
|
120
129
|
select_eval: '选择评估'
|
121
130
|
field_attrs: '字段属性'
|
122
131
|
website: '网站'
|
123
|
-
multiple_choice: '
|
132
|
+
multiple_choice: '多选按钮'
|
124
133
|
|
125
134
|
|
126
135
|
login:
|
@@ -145,7 +154,7 @@ zh-CN:
|
|
145
154
|
invalid_caption: '验证码错误'
|
146
155
|
email_not_validated: '邮箱未被激活.'
|
147
156
|
confirm_email_token_incorrect: '激活链接错误'
|
148
|
-
confirm_email_token_expired: '
|
157
|
+
confirm_email_token_expired: '激活链接已失效'
|
149
158
|
confirm_email_success: '账户成功激活!'
|
150
159
|
personal_info: '个人信息'
|
151
160
|
please_login: '请登录'
|
@@ -179,9 +188,10 @@ zh-CN:
|
|
179
188
|
home: "主页"
|
180
189
|
info: "信息"
|
181
190
|
external: "上传从URL"
|
182
|
-
folder_name: '
|
183
|
-
|
184
|
-
|
191
|
+
folder_name: '文件夹名称'
|
192
|
+
folder_file_name: '文件夹或文件名'
|
193
|
+
reload: '重新加载'
|
194
|
+
clear_cache: '清除缓存'
|
185
195
|
menus:
|
186
196
|
link_url: '链接网址'
|
187
197
|
target: '目标'
|
@@ -205,12 +215,12 @@ zh-CN:
|
|
205
215
|
data_found_list: '没有数据列表中找到'
|
206
216
|
delete: '确定删除该记录?'
|
207
217
|
delete_item: '真的要删除吗?'
|
208
|
-
edit_menu: '
|
218
|
+
edit_menu: '选中您要操作的地方。点击铅笔的图标编辑条目,单击图标的形式x删除条目。'
|
209
219
|
add_menus: '从左列添加菜单项.'
|
210
|
-
press_no_continue_work_press_yes_logout: '
|
220
|
+
press_no_continue_work_press_yes_logout: '如果不需要继续操作,请按登出按钮。'
|
211
221
|
updated_success: '更新成功'
|
212
222
|
remove_items_submenu: '真的删除此项目及其子菜单项?'
|
213
|
-
you_must_upload_image: '
|
223
|
+
you_must_upload_image: '必须上传图片'
|
214
224
|
you_must_upload_video: '必须上传视频'
|
215
225
|
so_their_data_has_not_been_saved: '数据还未保存'
|
216
226
|
no_response_fields: '无响应字段'
|
@@ -222,7 +232,7 @@ zh-CN:
|
|
222
232
|
was_removed: '被移除.'
|
223
233
|
processing: '处理中...'
|
224
234
|
change_photo: '使用下面的形式上传文件。只允许图像文件。'
|
225
|
-
change_password: '
|
235
|
+
change_password: '修改你的密码先输入旧密码,然后输入新密码和重复新密码。'
|
226
236
|
you_must_upload_json_file: '你必须上传一个json文件'
|
227
237
|
import_process: '导入中'
|
228
238
|
unauthorized: "拒绝访问"
|
@@ -237,7 +247,7 @@ zh-CN:
|
|
237
247
|
edit: '编辑'
|
238
248
|
add: '添加'
|
239
249
|
list: '列表'
|
240
|
-
list_of: '的列表'
|
250
|
+
list_of: '%{post_type}的列表'
|
241
251
|
new_site: '新建站点'
|
242
252
|
edit_site: '编辑站点'
|
243
253
|
update: '更新'
|
@@ -247,6 +257,7 @@ zh-CN:
|
|
247
257
|
clone_content: '复制内容'
|
248
258
|
label_required: '必填标签'
|
249
259
|
placeholder_required: '必填占位符'
|
260
|
+
is_featured: '推荐文章'
|
250
261
|
message:
|
251
262
|
created: '%{post_type} 已经被创建.'
|
252
263
|
updated: '%{post_type} 已经被更新.'
|
@@ -265,7 +276,7 @@ zh-CN:
|
|
265
276
|
add: '添加'
|
266
277
|
add_category: '添加类别'
|
267
278
|
add_post_type: '添加文章类型'
|
268
|
-
add_new: '
|
279
|
+
add_new: '添加%{type_title}'
|
269
280
|
add_post_tag: '添加文章标签'
|
270
281
|
categories: '种类'
|
271
282
|
category: '种类'
|
@@ -281,6 +292,7 @@ zh-CN:
|
|
281
292
|
default_layout: '默认布局'
|
282
293
|
default_template: '默认模板'
|
283
294
|
icon: '图标'
|
295
|
+
icons_url_desc: '请输入这个网址里面的任意图标名称: '
|
284
296
|
message:
|
285
297
|
error: '错误类'
|
286
298
|
error_term: '错误项'
|
@@ -303,11 +315,12 @@ zh-CN:
|
|
303
315
|
layout: '布局'
|
304
316
|
trash: '回收站'
|
305
317
|
tooltip:
|
318
|
+
permission_to_support_parent_structure: '允许文章显示父页面'
|
306
319
|
permission_asing_categories: '选择种类权限'
|
307
320
|
permission_add_tags: '添加标签权限'
|
308
321
|
permission_add_content: '允许添加内容'
|
309
322
|
permission_add_content_summary: '允许添加内容总结'
|
310
|
-
permission_reviews: '
|
323
|
+
permission_reviews: '启用该选项以指示是否可以评论帖子内容'
|
311
324
|
permission_add_image_presentation: '允许编辑图片'
|
312
325
|
permission_manage_template: '允许选择模板。 (template:将用于呈现内容的文件)'
|
313
326
|
permission_manage_layout: '允许选择字段在内容中布局。 (布局:文件包装器将在其中呈现模板)'
|
@@ -325,6 +338,8 @@ zh-CN:
|
|
325
338
|
type_contents: '种类内容'
|
326
339
|
upgrade_to: "升级到"
|
327
340
|
settings:
|
341
|
+
comment_anonymous: '允许匿名评论?'
|
342
|
+
custom_fields_show_shortcodes: '显示自定义字段的短代码?'
|
328
343
|
activate_create_account: '激活该账户'
|
329
344
|
activate_login_social_networks: '允许登录'
|
330
345
|
add_field_group: '添加字段组'
|
@@ -363,12 +378,18 @@ zh-CN:
|
|
363
378
|
seo_setting: "SEO 设置"
|
364
379
|
email_settings: "邮件设置 (SMTP)"
|
365
380
|
filesystem_type: "文件系统"
|
381
|
+
media_settings: "媒体设置"
|
382
|
+
filesystem_settings: "文件系统设置"
|
366
383
|
filesystem_s3_access_key: "AWS S3 Access Key"
|
367
384
|
filesystem_s3_secret_key: "AWS S3 Secret Key"
|
368
385
|
filesystem_s3_bucket_name: "AWS S3 Bucket name"
|
369
386
|
filesystem_s3_endpoint: "AWS S3 Bucket endpoint"
|
387
|
+
filesystem_max_file_size: "最大接受文件[MB]"
|
388
|
+
filesystem_thumb_size: "缩略图尺寸[100x100]"
|
389
|
+
file_actions_in_modals: "在 modal 里显示所有文件"
|
390
|
+
aws: '将文件保存到 AWS S3'
|
370
391
|
send_test_email: '发送测试邮件'
|
371
|
-
filesystem_region: "AWS S3
|
392
|
+
filesystem_region: "AWS S3 区域"
|
372
393
|
filesystem_cdn: "CDN url"
|
373
394
|
security:
|
374
395
|
captcha_user_register: "支持用户注册验证码?"
|
@@ -448,6 +469,8 @@ zh-CN:
|
|
448
469
|
basic: '基础'
|
449
470
|
categories: '分类'
|
450
471
|
updated_at: "更新于"
|
472
|
+
permit_is_featured: '允许推荐文章'
|
473
|
+
manage_parent_structure: '管理页面层级'
|
451
474
|
comments: '评论'
|
452
475
|
count: '统计'
|
453
476
|
date_published: '发布日期'
|
@@ -563,21 +586,24 @@ zh-CN:
|
|
563
586
|
edit_profile: '编辑 资料'
|
564
587
|
list_users: '用户列表'
|
565
588
|
list_user_roles: '用户角色'
|
589
|
+
post_types: '文章类型'
|
566
590
|
message:
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
591
|
+
error: '未发现用户.'
|
592
|
+
error_captcha: 'Oh! 验证码错误!'
|
593
|
+
created: '用户已经被创建.'
|
594
|
+
updated: '用户已经被更新.'
|
595
|
+
deleted: '用户已经被删除'
|
596
|
+
incorrect_old_password: '旧密码不正确'
|
597
|
+
rol_error: '未发现组用户.'
|
598
|
+
rol_created: '用户r角色已经被创建.'
|
599
|
+
rol_updated: '用户r角色已经被更新.'
|
600
|
+
rol_deleted: '用户r角色已经被删除'
|
601
|
+
requires_different_name: '需要不同的名字'
|
602
|
+
requires_different_username: '需要不同的用户名'
|
603
|
+
requires_different_email: '需要不同的邮箱'
|
604
|
+
created_pending_validate_email: "用户已经被创建, 请进入邮箱确认"
|
605
|
+
role_can_not_be_deleted: '无法删除此角色'
|
606
|
+
user_can_not_delete_own_account: '用户不能删除自己的帐户'
|
581
607
|
new_photo: '新建照片'
|
582
608
|
others_permissions: '其他权限'
|
583
609
|
profile: '资料'
|
data/config/routes/frontend.rb
CHANGED
@@ -14,18 +14,51 @@ Rails.application.routes.draw do
|
|
14
14
|
|
15
15
|
controller "camaleon_cms/frontend" do
|
16
16
|
get :index
|
17
|
-
get
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
get
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
get
|
26
|
-
|
27
|
-
|
28
|
-
|
17
|
+
get ':label/:post_type_id-:title' => :post_type, as: 'post_type', constraints: ->(request) {
|
18
|
+
multilingual_segment = PluginRoutes.all_translations('routes.group', default: 'group')
|
19
|
+
request.params[:post_type_id].match(/[0-9]+/) && request.params[:label].in?(multilingual_segment)
|
20
|
+
}
|
21
|
+
get ':label/:post_type_id-:title/:slug' => :post, as: 'post_of_post_type', constraints: ->(request) {
|
22
|
+
multilingual_segment = PluginRoutes.all_translations('routes.group', default: 'group')
|
23
|
+
request.params[:post_type_id].match(/[0-9]+/) && request.params[:label].in?(multilingual_segment)
|
24
|
+
}
|
25
|
+
get ':label/:category_id-:title' => :category, as: 'category', constraints: ->(request) {
|
26
|
+
multilingual_segment = PluginRoutes.all_translations('routes.category', default: 'category')
|
27
|
+
request.params[:category_id].match(/[0-9]+/) && request.params[:label].in?(multilingual_segment)
|
28
|
+
}
|
29
|
+
get ':label_cat/:category_id-:title/:slug' => :post, as: 'post_of_category', constraints: ->(request) {
|
30
|
+
multilingual_segment = PluginRoutes.all_translations('routes.category', default: 'category')
|
31
|
+
request.params[:category_id].match(/[0-9]+/) && request.params[:label_cat].in?(multilingual_segment)
|
32
|
+
}
|
33
|
+
get ':post_type_title/:label_cat/:category_id-:title/:slug' => :post, as: 'post_of_category_post_type', constraints: ->(request) {
|
34
|
+
multilingual_segment = PluginRoutes.all_translations('routes.category', default: 'category')
|
35
|
+
request.params[:post_type_title].match(/^(?!(#{PluginRoutes.all_locales})$)[\w\.\-]+$/) &&
|
36
|
+
request.params[:category_id].match(/[0-9]+/) && request.params[:label_cat].in?(multilingual_segment)
|
37
|
+
}
|
38
|
+
get ':label/:post_tag_id-:title' => :post_tag, as: 'post_tag', constraints: ->(request) {
|
39
|
+
multilingual_segment = PluginRoutes.all_translations('routes.tag', default: 'tag')
|
40
|
+
request.params[:post_tag_id].match(/[0-9]+/) && request.params[:label].in?(multilingual_segment)
|
41
|
+
}
|
42
|
+
get ':label/:post_tag_id-:title/:slug' => :post, as: 'post_of_tag', constraints: ->(request) {
|
43
|
+
multilingual_segment = PluginRoutes.all_translations('routes.tag', default: 'tag')
|
44
|
+
request.params[:post_tag_id].match(/[0-9]+/) && request.params[:label].in?(multilingual_segment)
|
45
|
+
}
|
46
|
+
get ':label/:post_tag_slug' => :post_tag, as: 'post_tag_simple', constraints: ->(request) {
|
47
|
+
multilingual_segment = PluginRoutes.all_translations('routes.tag', default: 'tag')
|
48
|
+
request.params[:post_tag_slug].match(/[a-zA-Z0-9_=\s\-\/]+/) && request.params[:label].in?(multilingual_segment)
|
49
|
+
}
|
50
|
+
get ':label/:user_id-:user_name' => :profile, as: :profile, defaults:{label: 'profile'}, constraints: ->(request) {
|
51
|
+
multilingual_segment = PluginRoutes.all_translations('routes.profile', default: 'profile') | %w(profile)
|
52
|
+
request.params[:user_id].match(/[0-9]+/) && request.params[:label].in?(multilingual_segment)
|
53
|
+
}
|
54
|
+
get ':label' => :search, as: :search, defaults:{label: 'search'}, constraints: ->(request) {
|
55
|
+
multilingual_segment = PluginRoutes.all_translations('routes.search', default: 'search') | %w(search)
|
56
|
+
request.params[:label].in?(multilingual_segment)
|
57
|
+
}
|
58
|
+
|
59
|
+
get ':post_type_title/:slug' => :post, as: :post_of_posttype, constraints: ->(request) {
|
60
|
+
request.params[:post_type_title].match(/^(?!(#{PluginRoutes.all_locales})$)[\w\.\-]+$/)
|
61
|
+
}
|
29
62
|
|
30
63
|
post 'save_comment/:post_id' => :save_comment, as: :save_comment
|
31
64
|
post 'save_form' => :save_form, as: :save_form
|
@@ -40,14 +73,20 @@ Rails.application.routes.draw do
|
|
40
73
|
controller "camaleon_cms/frontend" do
|
41
74
|
PluginRoutes.get_sites.each do |s|
|
42
75
|
s.post_types.pluck(:slug, :id).each do |pt_slug, pt_id|
|
43
|
-
get
|
76
|
+
get ':post_type_slug' => :post_type, as: "post_type_#{pt_id}", post_type_id: pt_id, constraints: ->(request) {
|
77
|
+
multilingual_segment = PluginRoutes.all_translations("routes.post_types.#{pt_slug}", default: pt_slug)
|
78
|
+
request.params[:post_type_slug].in?(multilingual_segment)
|
79
|
+
}
|
44
80
|
end
|
45
81
|
end
|
46
82
|
end
|
47
83
|
|
48
84
|
# posts
|
49
85
|
constraints(format: /html|rss|json/) do
|
50
|
-
get ':parent_title/*slug(.:format)' => :post, as: :hierarchy_post, constraints:
|
86
|
+
get ':parent_title/*slug(.:format)' => :post, as: :hierarchy_post, constraints: ->(request) {
|
87
|
+
request.params[:parent_title].match(/^(?!(#{PluginRoutes.all_locales})$)[\w\-]+$/) &&
|
88
|
+
request.params[:slug].match(/[a-zA-Z0-9_=\s\-\/]+/)
|
89
|
+
}
|
51
90
|
get ":slug(.:format)" => :post, :as => :post, constraints: { slug: /[a-zA-Z0-9_=\s\-]+/}
|
52
91
|
end
|
53
92
|
end
|