camaleon_cms 2.4.5.5 → 2.4.5.7
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/app/apps/themes/default/views/partials/_comments.html.erb +36 -21
- data/app/apps/themes/default/views/post.html.erb +1 -1
- data/app/assets/javascripts/camaleon_cms/admin/uploader/_media_manager.js.coffee +4 -4
- data/app/controllers/camaleon_cms/admin/categories_controller.rb +3 -0
- data/app/controllers/camaleon_cms/admin/media_controller.rb +9 -6
- data/app/controllers/camaleon_cms/admin/sessions_controller.rb +1 -1
- data/app/controllers/camaleon_cms/admin/settings/post_types_controller.rb +2 -0
- data/app/controllers/concerns/camaleon_cms/frontend_concern.rb +17 -13
- data/app/decorators/camaleon_cms/post_decorator.rb +0 -1
- data/app/helpers/camaleon_cms/captcha_helper.rb +1 -1
- data/app/helpers/camaleon_cms/frontend/nav_menu_helper.rb +1 -0
- data/app/helpers/camaleon_cms/hooks_helper.rb +6 -1
- data/app/helpers/camaleon_cms/site_helper.rb +1 -1
- data/app/helpers/camaleon_cms/uploader_helper.rb +36 -27
- data/app/models/camaleon_cms/custom_fields_relationship.rb +6 -0
- data/app/models/camaleon_cms/media.rb +54 -0
- data/app/models/camaleon_cms/post.rb +1 -0
- data/app/models/camaleon_cms/site.rb +7 -0
- data/app/uploaders/camaleon_cms_aws_uploader.rb +21 -23
- data/app/uploaders/camaleon_cms_local_uploader.rb +20 -26
- data/app/uploaders/camaleon_cms_uploader.rb +17 -45
- data/app/views/camaleon_cms/admin/categories/index.html.erb +2 -2
- data/app/views/camaleon_cms/admin/media/_render_file_item.html.erb +53 -36
- data/app/views/camaleon_cms/admin/media/index.html.erb +1 -1
- data/app/views/camaleon_cms/admin/post_tags/index.html.erb +4 -4
- data/app/views/camaleon_cms/admin/posts/index.html.erb +1 -0
- data/app/views/camaleon_cms/admin/settings/_configuration_settings.html.erb +5 -1
- data/app/views/camaleon_cms/admin/settings/post_types/_form.html.erb +1 -1
- data/app/views/camaleon_cms/default_theme/partials/_comments.html.erb +45 -28
- data/app/views/camaleon_cms/default_theme/single.html.erb +1 -1
- data/config/locales/camaleon_cms/admin/es.yml +1 -0
- data/config/locales/camaleon_cms/admin/js.yml +54 -3
- data/config/locales/camaleon_cms/admin/ru.yml +39 -28
- data/db/migrate/20180124132318_create_media.rb +17 -0
- data/lib/camaleon_cms/version.rb +1 -1
- data/lib/ext/string.rb +8 -0
- data/lib/generators/camaleon_cms/gem_plugin_generator.rb +29 -25
- data/lib/plugin_routes.rb +27 -0
- data/spec/dummy/config/application.rb +1 -0
- data/spec/dummy/config/environments/test.rb +2 -0
- data/spec/dummy/db/schema.rb +1 -140
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/factories/post_type.rb +17 -0
- data/spec/factories/site.rb +8 -0
- data/spec/features/{categories_spec.rb → admin/categories_spec.rb} +1 -1
- data/spec/features/{comments_spec.rb → admin/comments_spec.rb} +16 -9
- data/spec/features/{contact_form_spec.rb → admin/contact_form_spec.rb} +16 -9
- data/spec/features/{content_groups_spec.rb → admin/content_groups_spec.rb} +19 -11
- data/spec/features/{custom_fields_spec.rb → admin/custom_fields_spec.rb} +1 -1
- data/spec/features/{languages_spec.rb → admin/languages_spec.rb} +1 -1
- data/spec/features/{media_spec.rb → admin/media_spec.rb} +1 -1
- data/spec/features/{menus_spec.rb → admin/menus_spec.rb} +2 -2
- data/spec/features/{pages_spec.rb → admin/pages_spec.rb} +1 -1
- data/spec/features/{plugins_spec.rb → admin/plugins_spec.rb} +1 -1
- data/spec/features/{posts_spec.rb → admin/posts_spec.rb} +4 -3
- data/spec/features/admin/session_spec.rb +102 -0
- data/spec/features/{settings_spec.rb → admin/settings_spec.rb} +1 -1
- data/spec/features/{shortcodes_spec.rb → admin/shortcodes_spec.rb} +1 -1
- data/spec/features/{sites_spec.rb → admin/sites_spec.rb} +22 -14
- data/spec/features/{tags_spec.rb → admin/tags_spec.rb} +17 -8
- data/spec/features/{themes_spec.rb → admin/themes_spec.rb} +1 -1
- data/spec/features/{user_roles_spec.rb → admin/user_roles_spec.rb} +25 -19
- data/spec/features/{users_spec.rb → admin/users_spec.rb} +2 -2
- data/spec/features/{widgets_spec.rb → admin/widgets_spec.rb} +19 -12
- data/spec/features/frontend/pages_spec.rb +86 -5
- data/spec/features/frontend/post_type_spec.rb +16 -0
- data/spec/helpers/email_helper_spec.rb +1 -1
- data/spec/helpers/uploader_helper_spec.rb +56 -0
- data/spec/mailers/send_mail_spec.rb +3 -3
- data/spec/{decorators/camaleon_cms/post_decorator_spec.rb → models/post_spec.rb} +3 -3
- data/spec/rails_helper.rb +79 -0
- data/spec/spec_helper.rb +25 -56
- data/spec/support/common.rb +10 -24
- data/spec/support/fixtures/rails.png +0 -0
- data/spec/support/fixtures/rails_tmp.png +0 -0
- metadata +64 -50
- data/app/views/camaleon_cms/admin/media/_files_list.html.erb +0 -2
- data/app/views/camaleon_cms/admin/media/_render_folder_item.html.erb +0 -15
- data/spec/decorators/post_type_spec.rb +0 -13
- data/spec/features/session_spec.rb +0 -74
@@ -32,7 +32,7 @@
|
|
32
32
|
<div class="panel-body">
|
33
33
|
<div class="row" style="margin-bottom: 16px">
|
34
34
|
<div class="col-md-9 media_browser_list" data-next-page="<%= @next_page %>">
|
35
|
-
<%= render "
|
35
|
+
<%= render "render_file_item", files: @files %>
|
36
36
|
</div>
|
37
37
|
|
38
38
|
<div class="col-md-3 media_file_info_col">
|
@@ -36,10 +36,10 @@
|
|
36
36
|
<td><%= tag.slug %></td>
|
37
37
|
<td><%= tag.count %></td>
|
38
38
|
<td>
|
39
|
-
<%= link_to raw('<i class="fa fa-eye"></i>'), tag.the_url, target: '_blank', class: "btn btn-info btn-xs", title: "#{t('camaleon_cms.common.visit')}" %>
|
40
|
-
<%= link_to raw('<i class="fa fa-list"></i>'), cama_admin_post_type_taxonomy_posts_path(@post_type.id, "post_tag", tag.id), class: "btn btn-default btn-xs cama_ajax_request", title: "#{cama_pluralize_text(@post_type.decorate.the_title)}-#{tag.slug.to_s.titleize}" if @post_type.present? %>
|
41
|
-
<%= link_to raw('<i class="fa fa-pencil"></i>'), {action: :edit, id: tag.id }, class: "btn btn-default btn-xs cama_ajax_request", title: "#{t('camaleon_cms.admin.button.edit')}" %>
|
42
|
-
<%= link_to raw('<i class="fa fa-times"></i>'), { action: :destroy, id: tag.id }, method: :delete, data: { confirm: t('camaleon_cms.admin.message.delete') }, class: "btn btn-danger btn-xs cama_ajax_request", title: "#{t('camaleon_cms.admin.button.delete')}" unless tag.get_option('not_deleted', false) %>
|
39
|
+
<%= link_to raw('<i class="fa fa-eye"></i>'), tag.the_url, target: '_blank', class: "btn btn-info btn-xs btn_view", title: "#{t('camaleon_cms.common.visit')}" %>
|
40
|
+
<%= link_to raw('<i class="fa fa-list"></i>'), cama_admin_post_type_taxonomy_posts_path(@post_type.id, "post_tag", tag.id), class: "btn btn-default btn-xs cama_ajax_request btn_posts", title: "#{cama_pluralize_text(@post_type.decorate.the_title)}-#{tag.slug.to_s.titleize}" if @post_type.present? %>
|
41
|
+
<%= link_to raw('<i class="fa fa-pencil"></i>'), {action: :edit, id: tag.id }, class: "btn btn-default btn-xs cama_ajax_request btn_edit", title: "#{t('camaleon_cms.admin.button.edit')}" %>
|
42
|
+
<%= link_to raw('<i class="fa fa-times"></i>'), { action: :destroy, id: tag.id }, method: :delete, data: { confirm: t('camaleon_cms.admin.message.delete') }, class: "btn btn-danger btn-xs cama_ajax_request btn_del", title: "#{t('camaleon_cms.admin.button.delete')}" unless tag.get_option('not_deleted', false) %>
|
43
43
|
</td>
|
44
44
|
</tr>
|
45
45
|
<% end %>
|
@@ -5,6 +5,7 @@
|
|
5
5
|
<h4 class="pull-left">
|
6
6
|
<%= t('camaleon_cms.admin.page_title.list_of', post_type: @post_type.the_title) %>
|
7
7
|
<b>(slug = <%= @post_type.the_slug %>)</b> <%= link_to("<i class='fa fa-eye'></i> #{t("camaleon_cms.common.visit")}".html_safe, @post_type.the_url, class: 'btn btn-xs', target: '_blank') %>
|
8
|
+
<%= link_to raw("<i class='fa fa-pencil'></i> #{t('camaleon_cms.admin.post_type.edit_post_type')}"), edit_cama_admin_settings_post_type_path(@post_type.id), class: "btn btn-xs cama_ajax_request" if can? :manage, :settings %>
|
8
9
|
</h4>
|
9
10
|
<%= link_to raw("<i class='fa fa-plus'></i> #{t('camaleon_cms.admin.post_type.add')} #{@post_type.the_title}"), {action: :new}, class: "btn btn-primary pull-right cama_ajax_request" if can? :create_post, @post_type %>
|
10
11
|
</div>
|
@@ -49,9 +49,13 @@
|
|
49
49
|
<%= check_box :options, :permit_create_account, {checked: @site.get_option('permit_create_account', false), class: "icheckbox0"}, "true", "" %>
|
50
50
|
</div>
|
51
51
|
<div class="form-group">
|
52
|
-
<label for=""><%= t('camaleon_cms.admin.settings.security.captcha_user_register') %></label><br>
|
52
|
+
<label for=""><%= t('camaleon_cms.admin.settings.security.captcha_user_register', default: 'Enable captcha on user registration?') %></label><br>
|
53
53
|
<%= check_box :options, :security_captcha_user_register, {checked: @site.security_user_register_captcha_enabled?, class: "icheckbox0"}, "true", "" %>
|
54
54
|
</div>
|
55
|
+
<div class="form-group">
|
56
|
+
<label for=""><%= t('camaleon_cms.admin.settings.enable_captcha_for_comments', default: 'Enable captcha for anonymous comments?') %></label><br>
|
57
|
+
<%= check_box :options, :enable_captcha_for_comments, {checked: @site.is_enable_captcha_for_comments?, class: "icheckbox0"}, "true", "" %>
|
58
|
+
</div>
|
55
59
|
<div class="form-group">
|
56
60
|
<label for=""><%= t('camaleon_cms.admin.settings.security.need_validate_email') %></label><br>
|
57
61
|
<%= check_box :options, :need_validate_email, {checked: @site.need_validate_email?, class: "icheckbox0"}, "true", "" %>
|
@@ -24,7 +24,7 @@
|
|
24
24
|
<div class="form-group">
|
25
25
|
<label><%= t('camaleon_cms.admin.post_type.icon', default: 'Icon') %></label>
|
26
26
|
<%= text_field_tag "meta[icon]", @post_type.get_option("icon", ''), class: 'form-control', placeholder: 'dashboard' %>
|
27
|
-
<small><%= t('camaleon_cms.admin.post_type.icons_url_desc', default: 'Please enter any icon name from here: ') %> https://
|
27
|
+
<small><%= t('camaleon_cms.admin.post_type.icons_url_desc', default: 'Please enter any icon name from here: ') %> https://fontawesome.com/v4.7.0/icons/</small>
|
28
28
|
</div>
|
29
29
|
<%= args={html: '', post_type: @post_type}; hooks_run('post_type_settings_form', args); raw(args[:html]) %>
|
30
30
|
<hr/>
|
@@ -1,31 +1,48 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
<% if post.the_comments.any? || post.can_commented? %>
|
2
|
+
<section class="comment-list">
|
3
|
+
<% if post.the_comments.any? %>
|
4
|
+
<div class="row">
|
4
5
|
<div class="col-md-12">
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
6
|
+
<h2 class="page-header"><%= ct('comments', default: 'Comments') %></h2>
|
7
|
+
<section class="comment-list">
|
8
|
+
<%= render partial: "partials/#{defined?(style2) ? 'comments_list2' : 'comments_list'}", locals: {comments: post.the_comments, children: ""} %>
|
9
|
+
</section>
|
9
10
|
</div>
|
10
|
-
|
11
|
-
|
11
|
+
</div>
|
12
|
+
<% end %>
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
<
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
14
|
+
<% if post.can_commented? %>
|
15
|
+
<div class="row comment_form_panel">
|
16
|
+
<div class="col-md-12 col-sm-12">
|
17
|
+
<h3><%= ct('comment_new', default: 'New Comment') %></h3>
|
18
|
+
<% if signin? || current_site.get_option('permit_anonimos_comment', false) %>
|
19
|
+
<%= form_for post, url: {action: :save_comment, post_id: post.id}, html: {method: "post", class: "form-comment", id: 'form-comment'} do |f| %>
|
20
|
+
<%= render partial: "camaleon_cms/flash_messages", locals: {flash: (flash[:comment_submit] || {}).with_indifferent_access} %>
|
21
|
+
<% unless signin? %>
|
22
|
+
<div class="form-group">
|
23
|
+
<%= text_field_tag 'post_comment[name]', '', class: 'form-control required', placeholder: t('.anonymous_name', default: 'Name') %>
|
24
|
+
</div>
|
25
|
+
<div class="form-group">
|
26
|
+
<%= email_field_tag 'post_comment[email]', '', class: 'form-control required', placeholder: t('.anonymous_email', default: 'Email') %>
|
27
|
+
</div>
|
28
|
+
<% if current_site.is_enable_captcha_for_comments? %>
|
29
|
+
<%= content_tag :div, raw(cama_captcha_tag), class: 'form-group' %>
|
30
|
+
<% end %>
|
31
|
+
<% end %>
|
32
|
+
<div class="form-group">
|
33
|
+
<%= text_area_tag 'post_comment[content]', '', class: 'form-control required counted', placeholder: ct('comment', default: 'Here your comment') %>
|
34
|
+
</div>
|
35
|
+
<div class="form-group text-right">
|
36
|
+
<button type="submit" class="btn btn-info"><%= ct('comment', default: 'Comment') %></button>
|
37
|
+
</div>
|
38
|
+
<% end %>
|
39
|
+
<% else %>
|
40
|
+
<div class="panel-login-comment"><%= ct('comment_msg', default: 'You must be logged in to post a comment') %>
|
41
|
+
<a class="link-login-comment" href="<%= cama_admin_path %>"><%= ct('login', default: 'Login') %></a>
|
42
|
+
</div>
|
43
|
+
<% end %>
|
44
|
+
</div>
|
45
|
+
</div>
|
46
|
+
<% end %>
|
47
|
+
</section>
|
48
|
+
<% end %>
|
@@ -21,7 +21,7 @@
|
|
21
21
|
<%= raw @post.the_content %>
|
22
22
|
</div>
|
23
23
|
</article>
|
24
|
-
<%= render partial: 'partials/comments', locals: {post: @post}
|
24
|
+
<%= render partial: 'partials/comments', locals: {post: @post} %>
|
25
25
|
</div>
|
26
26
|
<div class="col-md-3 single-sidebar">
|
27
27
|
<%= render partial: 'partials/sidebar', locals: {post: @post} %>
|
@@ -348,6 +348,7 @@ es:
|
|
348
348
|
filesystem_cdn: "CDN url"
|
349
349
|
filesystem_s3_cloudfront: 'Cloudfront URL'
|
350
350
|
custom_fields_show_shortcodes: 'Mostrar códigos abreviados de los campos personalizados?'
|
351
|
+
enable_captcha_for_comments: '¿Activar captcha en los comentarios públicos?'
|
351
352
|
security:
|
352
353
|
captcha_user_register: "¿Activar captcha en el registro de usuarios?"
|
353
354
|
need_validate_email: "¿Es necesario validar el email?"
|
@@ -332,13 +332,64 @@ de:
|
|
332
332
|
replace_image: 'Bild ersetzen'
|
333
333
|
save_new_image: 'Neues Bild speichern'
|
334
334
|
|
335
|
+
ru:
|
336
|
+
camaleon_cms:
|
337
|
+
admin:
|
338
|
+
js:
|
339
|
+
msg:
|
340
|
+
approved: 'Утверждено'
|
341
|
+
draft: 'Черновик сохранен'
|
342
|
+
updated_success: 'Успішно оновлено'
|
343
|
+
edit_menu: 'Разместите каждый элемент в порядке, который вы предпочитаете. Нажмите на значок карандаша, чтобы отредактировать элемент и нажмите значок в форме х, чтобы удалить элемент.'
|
344
|
+
delete_item: 'Удалить этот элемент?'
|
345
|
+
remove_items_submenu: 'Удалить элемент и его подменю?'
|
346
|
+
you_must_upload_image: 'Необходимо загрузить изображение'
|
347
|
+
you_must_upload_video: 'Необходимо загрузить видео'
|
348
|
+
no_response_fields: 'Нет ответа'
|
349
|
+
you_must_upload_json_file: 'Необходимо загрузить файл в формате json'
|
350
|
+
no_templates_defined: 'Шаблон не выбран'
|
351
|
+
avatar_updated: 'Аватар обновлен'
|
352
|
+
form_error: 'Ошибка формы'
|
353
|
+
option_title: 'Название опции'
|
354
|
+
permalink: 'Постоянная ссылка'
|
355
|
+
recover: 'Восстановление...'
|
356
|
+
type_contents: 'Тип контента'
|
357
|
+
confirm_del: "Вы уверены, что хотите удалить этот элемент?"
|
358
|
+
media_title: 'Медиа загрузка'
|
359
|
+
pending: 'Ожидание'
|
360
|
+
preview: 'Предпросмотр'
|
361
|
+
spam: 'Спам'
|
362
|
+
view_page: 'Посмотреть страницу'
|
363
|
+
view_draft: 'Посмотреть черновик'
|
364
|
+
processing: 'Обработка...'
|
365
|
+
upload_image: 'Загрузить'
|
366
|
+
|
367
|
+
button:
|
368
|
+
edit: "Редактировать"
|
369
|
+
accept: "Принять"
|
370
|
+
cancel: "Отменить"
|
371
|
+
delete: "Удалить"
|
372
|
+
clone: "Копировать"
|
373
|
+
add_tag: 'Добавить тэг'
|
374
|
+
close: 'Закрыть'
|
375
|
+
settings: 'Настройки'
|
376
|
+
save: "Сохранить"
|
377
|
+
submit: "Сохранить"
|
378
|
+
name: "Имя"
|
379
|
+
size: "Размер"
|
380
|
+
insert: "Вставить"
|
381
|
+
url: "URL"
|
382
|
+
root: "корень"
|
383
|
+
replace_image: 'Изменить изображение'
|
384
|
+
save_new_image: 'Сохранить новое изображение'
|
385
|
+
|
335
386
|
uk:
|
336
387
|
camaleon_cms:
|
337
388
|
admin:
|
338
389
|
js:
|
339
390
|
msg:
|
340
391
|
approved: 'Затверджено'
|
341
|
-
draft: 'Ескіз
|
392
|
+
draft: 'Ескіз збережено'
|
342
393
|
updated_success: 'Успішно оновлено'
|
343
394
|
edit_menu: 'Розмістіть кожен елемент у порядку, якому ви віддаєте перевагу. Натисніть на значок олівця, щоб відредагувати елемент і натисніть значок у формі х, щоб видалити елемент.'
|
344
395
|
delete_item: 'Дійсно хочете видалити цей елемент?'
|
@@ -353,10 +404,10 @@ uk:
|
|
353
404
|
option_title: 'Назва опції'
|
354
405
|
permalink: 'Постійне посилання'
|
355
406
|
recover: 'Відновлення...'
|
356
|
-
type_contents: '
|
407
|
+
type_contents: 'Тип вмісту'
|
357
408
|
confirm_del: "Ви впевнені, що чочете видалити цей елемент?"
|
358
409
|
media_title: 'Медіа-завантажувач'
|
359
|
-
pending: 'Очікує
|
410
|
+
pending: 'Очікує'
|
360
411
|
preview: 'Перегляд'
|
361
412
|
spam: 'Спам'
|
362
413
|
view_page: 'Переглянути сторінку'
|
@@ -1,5 +1,6 @@
|
|
1
1
|
ru:
|
2
2
|
camaleon_cms:
|
3
|
+
see_intro: "Посмотреть подсказки"
|
3
4
|
welcome_message: "Добро пожаловать в Camaleon CMS"
|
4
5
|
page_not_exist: "<h1>ой...</h1><h5>Страница, которую вы ищете, не существует.</h5>"
|
5
6
|
page_error_500: "<h1>ой...</h1><h5>Ошибка 500 Внутренняя ошибка сервера. Пожалуйста, свяжитесь с администратором.</h5>"
|
@@ -13,6 +14,7 @@ ru:
|
|
13
14
|
add_new_field: 'Добавить новое поле'
|
14
15
|
add_option: 'Добавить опцию'
|
15
16
|
add_menu: 'Добавить в меню'
|
17
|
+
add_new_group: 'Добавить новую группу'
|
16
18
|
add_widget: 'Добавить виджет'
|
17
19
|
accept: 'Принять'
|
18
20
|
add_folder: 'Добавить папку'
|
@@ -49,9 +51,9 @@ ru:
|
|
49
51
|
select_file: 'Выберите файл'
|
50
52
|
select_none: 'Выбрать ничего'
|
51
53
|
sign_up: 'Зарегистрироваться'
|
52
|
-
submit: '
|
54
|
+
submit: 'Сохранить'
|
53
55
|
settings: 'Настройки'
|
54
|
-
sortable: '
|
56
|
+
sortable: 'Сортировка'
|
55
57
|
update: 'Обновить'
|
56
58
|
update_menu: 'Обновить меню'
|
57
59
|
upload_audio: 'Загрузить Аудио'
|
@@ -59,7 +61,8 @@ ru:
|
|
59
61
|
upload_image: 'Загрузить изображение'
|
60
62
|
upload_icon: 'Загрузить Иконку'
|
61
63
|
upload_video: 'Загрузить видео'
|
62
|
-
|
64
|
+
drag_drop: 'Перетянуть файлы'
|
65
|
+
view_draft: 'Посмотреть черновик'
|
63
66
|
view_page: 'Просмотр страницы'
|
64
67
|
yes: 'Да'
|
65
68
|
out_yes: 'Да'
|
@@ -113,6 +116,14 @@ ru:
|
|
113
116
|
field_attrs: 'Атрибуты полей'
|
114
117
|
website: 'Вебсайт'
|
115
118
|
multiple_choice: 'Radio Button'
|
119
|
+
image_dimension: 'Размеры изображения'
|
120
|
+
image_dimension_descr: 'Обрезать изображение по указанному размеру (ширина
|
121
|
+
и высота), выборка: 400x300 <br> Возможные значения: 400x300 | 400x |
|
122
|
+
x300 |? 400x? 500 | 1400x (? => Max, empty => auto)'
|
123
|
+
image_versions: 'Варианты изображений'
|
124
|
+
image_versions_descr: 'Создание дополнительных нескольких версий загруженного
|
125
|
+
изображения, например: 300x300, 505x350 ==> Создаст два дополнительных
|
126
|
+
изображения с этими параметрами'
|
116
127
|
|
117
128
|
|
118
129
|
login:
|
@@ -386,8 +397,8 @@ ru:
|
|
386
397
|
appearance: 'Внешний вид'
|
387
398
|
comments: 'Комментарии'
|
388
399
|
content: 'Содержание'
|
389
|
-
contents: '
|
390
|
-
content_groups: 'Группы
|
400
|
+
contents: 'Содержание'
|
401
|
+
content_groups: 'Группы содержания'
|
391
402
|
custom_fields: 'Пользовательские поля'
|
392
403
|
dashboard: 'Панель управления'
|
393
404
|
general_site: 'Главный сайт'
|
@@ -416,14 +427,14 @@ ru:
|
|
416
427
|
error: 'Сайт не найден'
|
417
428
|
created: 'Сайт был создан.'
|
418
429
|
updated: 'Сайт был обновлен.'
|
419
|
-
deleted: '
|
430
|
+
deleted: 'Удален'
|
420
431
|
enter_key_domain: 'Введите ключевое слово или домен'
|
421
432
|
enter_key_domain_empty: 'Введите ключевое слово (site2) или домен (my_domain.com). Ключевое слово будет вашим поддоменом.'
|
422
433
|
signin:
|
423
434
|
message:
|
424
435
|
enter_username_password: 'Вы должны ввести имя пользователя и / или пароль'
|
425
436
|
combination_username_password_invalid: 'Сочетание имени пользователя / пароля недействительно.'
|
426
|
-
success_user: '
|
437
|
+
success_user: 'Добро пожаловать!'
|
427
438
|
table:
|
428
439
|
actions: 'Действия'
|
429
440
|
attribute: 'Атрибут'
|
@@ -440,7 +451,7 @@ ru:
|
|
440
451
|
description: 'Описание'
|
441
452
|
dimensions: 'Размеры'
|
442
453
|
display_objects: 'Показать объекты'
|
443
|
-
draft: '
|
454
|
+
draft: 'Черновик'
|
444
455
|
email: 'Эл. почта'
|
445
456
|
e_mail: 'Эл. почта'
|
446
457
|
email_address: 'Адрес электронной почты'
|
@@ -468,14 +479,14 @@ ru:
|
|
468
479
|
linkedin: 'Linkedin'
|
469
480
|
login: 'Вход'
|
470
481
|
logo: 'Логотип'
|
471
|
-
manage_category: 'Управление
|
472
|
-
manage_content: '
|
473
|
-
manage_picture: 'Управление
|
482
|
+
manage_category: 'Управление категориями'
|
483
|
+
manage_content: 'Включить описание'
|
484
|
+
manage_picture: 'Управление изображениями'
|
474
485
|
manage_seo: 'Управление SEO?'
|
475
|
-
manage_summary: '
|
476
|
-
manage_tags: 'Управление
|
477
|
-
manage_template: 'Управление
|
478
|
-
manage_layout: 'Управление
|
486
|
+
manage_summary: 'Включить краткое описание'
|
487
|
+
manage_tags: 'Управление тэгами'
|
488
|
+
manage_template: 'Управление шаблоном'
|
489
|
+
manage_layout: 'Управление макетом'
|
479
490
|
modified: 'Изменен'
|
480
491
|
multiple_field_int: 'Несколько полей?'
|
481
492
|
required_field_int: 'Обязательное поле?'
|
@@ -501,12 +512,12 @@ ru:
|
|
501
512
|
qty: 'Количество'
|
502
513
|
quick_info: 'Краткая информация'
|
503
514
|
registration: 'Регистрация'
|
504
|
-
repeat_new: 'Повторить
|
515
|
+
repeat_new: 'Повторить'
|
505
516
|
role: 'Роль'
|
506
517
|
slogan: 'Слоган'
|
507
|
-
slug: '
|
518
|
+
slug: 'Символьный код'
|
508
519
|
short_code: 'Краткий код'
|
509
|
-
site_name: 'Название
|
520
|
+
site_name: 'Название сайта'
|
510
521
|
size: 'Размер'
|
511
522
|
social: 'Социальня сеть'
|
512
523
|
skype: 'Skype'
|
@@ -524,8 +535,8 @@ ru:
|
|
524
535
|
visibility: 'Видимость'
|
525
536
|
page_404: 'Страница 404'
|
526
537
|
youtube: 'Youtube'
|
527
|
-
more_actions: 'Больше
|
528
|
-
more_actions_info: 'Больше
|
538
|
+
more_actions: 'Больше действий'
|
539
|
+
more_actions_info: 'Больше действий...'
|
529
540
|
shorcodes: "Shortcodes"
|
530
541
|
themes:
|
531
542
|
footer_copyright: 'Footer Copyright'
|
@@ -564,7 +575,7 @@ ru:
|
|
564
575
|
others_permissions: 'Другие разрешения'
|
565
576
|
profile: 'Профиль'
|
566
577
|
slogan: 'Слоган'
|
567
|
-
type_contents: 'Тип
|
578
|
+
type_contents: 'Тип контента'
|
568
579
|
user_roles: 'Роли пользователей'
|
569
580
|
roles_values:
|
570
581
|
comments: 'Комментарии'
|
@@ -601,7 +612,7 @@ ru:
|
|
601
612
|
manage_categories: 'Разрешение на создание, редактирование и удаление категории'
|
602
613
|
manage_tags: 'Разрешение на создание, редактирование и удаление тегов постов'
|
603
614
|
validate:
|
604
|
-
required: 'Это поле обязательно
|
615
|
+
required: 'Это поле обязательно для заполнения.'
|
605
616
|
remote: 'Пожалуйста, исправьте это поле.'
|
606
617
|
email: 'Пожалуйста, введите правильный адрес электронной почты.'
|
607
618
|
url: 'Пожалуйста введите правильный URL.'
|
@@ -640,10 +651,10 @@ ru:
|
|
640
651
|
error_deleted: "Боковая панель удалена."
|
641
652
|
intro:
|
642
653
|
profile: "Здесь вы можете увидеть настройки вашего профиля."
|
643
|
-
content: "Этот блок содержит все группы контента вашего сайта. Каждый контент может иметь различную структуру,
|
654
|
+
content: "Этот блок содержит все группы контента вашего сайта. Каждый контент может иметь различную структуру, их можно настроить в Настройки => Группа контентов"
|
644
655
|
#dashboard: "In this section you can see "
|
645
656
|
media: "В этом разделе, вы можете управлять доступными медиа файлами"
|
646
|
-
comments: "В этом разделе вы можете управлять всеми комментариями
|
657
|
+
comments: "В этом разделе вы можете управлять всеми комментариями вашего контента"
|
647
658
|
appearance: "Управлять всей информацией, связанной с Public Interface"
|
648
659
|
themes: "В этом разделе вы можете выбрать нужную тему (Public Interface)"
|
649
660
|
widgets: "Этот модуль позволяет вам управлять вашими виджетами и вставлять код на любой контент."
|
@@ -653,7 +664,7 @@ ru:
|
|
653
664
|
settings: "В этом разделе вы можете найти все конфигурации сайта"
|
654
665
|
gral_site: "В этом разделе вы можете настроить все параметры вашего сайта и текущую тему"
|
655
666
|
sites: "Этот модуль позволяет вам управлять под сайтами (Видимио только для главного сайта). Проверте /config/system.json чтобы настроить параметры."
|
656
|
-
custom_fields: "Этот раздел позволяет вам расширять
|
657
|
-
post_type: "Этот модуль позволяет вам управлять вашими группами
|
658
|
-
languages: "Этот модуль позволяет вам управлять всеми языками для вашего сайта. Также вы можете настроить язык для
|
659
|
-
shortcodes: "В этом разделе вы можете увидеть все доступные shortcodes для использования в
|
667
|
+
custom_fields: "Этот раздел позволяет вам расширять ваш контент и темы, добавляя новые поля."
|
668
|
+
post_type: "Этот модуль позволяет вам управлять вашими группами контента без программирования."
|
669
|
+
languages: "Этот модуль позволяет вам управлять всеми языками для вашего сайта. Также вы можете настроить язык для вашей админ-панели."
|
670
|
+
shortcodes: "В этом разделе вы можете увидеть все доступные shortcodes для использования в вашем контенте."
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class CreateMedia < CamaManager.migration_class
|
2
|
+
def change
|
3
|
+
create_table "#{PluginRoutes.static_system_info["db_prefix"]}media" do |t|
|
4
|
+
t.references :site, index: true
|
5
|
+
t.string :name, index: true
|
6
|
+
t.boolean :is_folder, index: true, default: false
|
7
|
+
t.string :folder_path, index: true
|
8
|
+
t.string :file_size
|
9
|
+
t.string :dimension, default: ''
|
10
|
+
t.string :file_type
|
11
|
+
t.string :url
|
12
|
+
t.string :thumb
|
13
|
+
t.boolean :is_public, default: true
|
14
|
+
t.timestamps
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/camaleon_cms/version.rb
CHANGED
data/lib/ext/string.rb
CHANGED
@@ -93,6 +93,14 @@ class String
|
|
93
93
|
self.gsub(/(\/){2,}/, "/")
|
94
94
|
end
|
95
95
|
|
96
|
+
# fix file media keys: avoid duplicated slashes and force to start with slash
|
97
|
+
def cama_fix_media_key
|
98
|
+
res = self.gsub('../', '/').gsub('./', '/').gsub(/(\/){2,}/, "/")
|
99
|
+
res = "/#{res}" unless res.start_with?('/')
|
100
|
+
res = res.slice(0...-1) if res.end_with?('/') && res.length > 1
|
101
|
+
res
|
102
|
+
end
|
103
|
+
|
96
104
|
def cama_fix_filename
|
97
105
|
# Sanitize the filename, to prevent hacking
|
98
106
|
# https://github.com/carrierwaveuploader/carrierwave/blob/6a1445e0daef29a5d4f799a016359b62d82dbc24/lib/carrierwave/sanitized_file.rb#L322
|