camaleon_cms 0.0.1
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 +7 -0
- data/Rakefile +37 -0
- data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.svg +229 -0
- data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/app/assets/images/admin/no_image.jpg +0 -0
- data/app/assets/images/bg-tree.jpeg +0 -0
- data/app/assets/images/camaleon-dark.png +0 -0
- data/app/assets/images/camaleon.png +0 -0
- data/app/assets/images/category-icon.png +0 -0
- data/app/assets/images/image-not-found.png +0 -0
- data/app/assets/images/language/de.png +0 -0
- data/app/assets/images/language/en.png +0 -0
- data/app/assets/images/language/es.png +0 -0
- data/app/assets/images/language/fr.png +0 -0
- data/app/assets/images/language/it.png +0 -0
- data/app/assets/images/language/pt.png +0 -0
- data/app/assets/images/language/zh.png +0 -0
- data/app/assets/images/loader.gif +0 -0
- data/app/assets/images/users/no-image.jpg +0 -0
- data/app/assets/javascripts/admin/actions.js +248 -0
- data/app/assets/javascripts/admin/admin-manifest.js +32 -0
- data/app/assets/javascripts/admin/bootstrap-colorpicker.js +540 -0
- data/app/assets/javascripts/admin/bootstrap-datepicker.js +1690 -0
- data/app/assets/javascripts/admin/bootstrap-datetimepicker.min.js +26 -0
- data/app/assets/javascripts/admin/bootstrap-select.js +1022 -0
- data/app/assets/javascripts/admin/core.js +267 -0
- data/app/assets/javascripts/admin/custom_fields.js +165 -0
- data/app/assets/javascripts/admin/data.js +78 -0
- data/app/assets/javascripts/admin/elfinder-manifest.js +7 -0
- data/app/assets/javascripts/admin/elfinder/elfinder.full.js +12646 -0
- data/app/assets/javascripts/admin/elfinder/i18n/elfinder.es.js +294 -0
- data/app/assets/javascripts/admin/elfinder/i18n/elfinder.fr.js +298 -0
- data/app/assets/javascripts/admin/elfinder/proxy/elFinderSupportVer1.js +338 -0
- data/app/assets/javascripts/admin/elfinder/upload_elfinder.js +236 -0
- data/app/assets/javascripts/admin/es.js +27 -0
- data/app/assets/javascripts/admin/form-builder/formbuilder.js +1250 -0
- data/app/assets/javascripts/admin/form-builder/vendor.js +3072 -0
- data/app/assets/javascripts/admin/form/cropper.min.js +9 -0
- data/app/assets/javascripts/admin/form/jquery.form.js +911 -0
- data/app/assets/javascripts/admin/jquery-sieve.js +6 -0
- data/app/assets/javascripts/admin/jquery-ui.min.js +10 -0
- data/app/assets/javascripts/admin/jquery.nestable.js +485 -0
- data/app/assets/javascripts/admin/jquery.slugify.js +65 -0
- data/app/assets/javascripts/admin/jquery.tagsinput.min.js +1 -0
- data/app/assets/javascripts/admin/jquery.validate.js +1415 -0
- data/app/assets/javascripts/admin/login.js.coffee +7 -0
- data/app/assets/javascripts/admin/login_manifest.js +18 -0
- data/app/assets/javascripts/admin/modal.js +94 -0
- data/app/assets/javascripts/admin/nav-menu.js +110 -0
- data/app/assets/javascripts/admin/plugins.js +637 -0
- data/app/assets/javascripts/admin/post.js +274 -0
- data/app/assets/javascripts/admin/tageditor/jquery.caret.min.js +2 -0
- data/app/assets/javascripts/admin/tageditor/jquery.tag-editor.js +352 -0
- data/app/assets/javascripts/admin/tinymce/langs/es.js +177 -0
- data/app/assets/javascripts/admin/tinymce/langs/readme.md +3 -0
- data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-cool.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-cry.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-embarassed.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-frown.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-innocent.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-kiss.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-laughing.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-money-mouth.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-sealed.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-smile.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-surprised.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-tongue-out.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-undecided.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-wink.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-yell.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/plugins/filemanager/plugin.min.js +31 -0
- data/app/assets/javascripts/admin/tinymce/plugins/visualblocks/css/visualblocks.css +135 -0
- data/app/assets/javascripts/admin/tinymce/skins/lightgray/content.min.css.scss +4 -0
- data/app/assets/javascripts/admin/tinymce/skins/lightgray/fonts/tinymce-small.eot +0 -0
- data/app/assets/javascripts/admin/tinymce/skins/lightgray/fonts/tinymce-small.svg +62 -0
- data/app/assets/javascripts/admin/tinymce/skins/lightgray/fonts/tinymce-small.ttf +0 -0
- data/app/assets/javascripts/admin/tinymce/skins/lightgray/fonts/tinymce-small.woff +0 -0
- data/app/assets/javascripts/admin/tinymce/skins/lightgray/fonts/tinymce.eot +0 -0
- data/app/assets/javascripts/admin/tinymce/skins/lightgray/fonts/tinymce.svg +83 -0
- data/app/assets/javascripts/admin/tinymce/skins/lightgray/fonts/tinymce.ttf +0 -0
- data/app/assets/javascripts/admin/tinymce/skins/lightgray/fonts/tinymce.woff +0 -0
- data/app/assets/javascripts/admin/tinymce/skins/lightgray/img/anchor.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/skins/lightgray/img/loader.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/skins/lightgray/img/object.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/skins/lightgray/img/trans.gif +0 -0
- data/app/assets/javascripts/admin/tinymce/themes/modern/theme.min.js +1 -0
- data/app/assets/javascripts/admin/tinymce/tinymce.min.js +11 -0
- data/app/assets/javascripts/admin/translator.js +109 -0
- data/app/assets/javascripts/admin/underscore.js +1536 -0
- data/app/assets/javascripts/admin/widgets.js +53 -0
- data/app/assets/javascripts/audio/alert.mp3 +0 -0
- data/app/assets/javascripts/audio/fail.mp3 +0 -0
- data/app/assets/javascripts/bootstrap.min.js +7 -0
- data/app/assets/javascripts/elfinder_front.js +85 -0
- data/app/assets/javascripts/gibberish-aes.js +1017 -0
- data/app/assets/javascripts/jquery-1.11.3.min.js +5 -0
- data/app/assets/stylesheets/admin/admin-manifest.css +28 -0
- data/app/assets/stylesheets/admin/animate/animate.min.css +6 -0
- data/app/assets/stylesheets/admin/bootstrap/bootstrap-datetimepicker.css +339 -0
- data/app/assets/stylesheets/admin/bootstrap/bootstrap.min.css +5 -0
- data/app/assets/stylesheets/admin/bootstrap/images/glyphicons-halflings.png +0 -0
- data/app/assets/stylesheets/admin/core.scss +345 -0
- data/app/assets/stylesheets/admin/cropper/cropper.min.css +52 -0
- data/app/assets/stylesheets/admin/elfinder-manifest.css +6 -0
- data/app/assets/stylesheets/admin/elfinder/elfinder-theme.scss +191 -0
- data/app/assets/stylesheets/admin/elfinder/elfinder.css +1922 -0
- data/app/assets/stylesheets/admin/elfinder/images/arrows-active.png +0 -0
- data/app/assets/stylesheets/admin/elfinder/images/arrows-normal.png +0 -0
- data/app/assets/stylesheets/admin/elfinder/images/crop.gif +0 -0
- data/app/assets/stylesheets/admin/elfinder/images/dialogs.png +0 -0
- data/app/assets/stylesheets/admin/elfinder/images/icons-big.png +0 -0
- data/app/assets/stylesheets/admin/elfinder/images/icons-small.png +0 -0
- data/app/assets/stylesheets/admin/elfinder/images/logo.png +0 -0
- data/app/assets/stylesheets/admin/elfinder/images/progress.gif +0 -0
- data/app/assets/stylesheets/admin/elfinder/images/quicklook-bg.png +0 -0
- data/app/assets/stylesheets/admin/elfinder/images/quicklook-icons.png +0 -0
- data/app/assets/stylesheets/admin/elfinder/images/resize.png +0 -0
- data/app/assets/stylesheets/admin/elfinder/images/spinner-mini.gif +0 -0
- data/app/assets/stylesheets/admin/elfinder/images/toolbar.png +0 -0
- data/app/assets/stylesheets/admin/elfinder/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/app/assets/stylesheets/admin/elfinder/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/app/assets/stylesheets/admin/elfinder/images/ui-icons_222222_256x240.png +0 -0
- data/app/assets/stylesheets/admin/fonts/OpenSans-Regular-webfont.eot +0 -0
- data/app/assets/stylesheets/admin/fonts/OpenSans-Regular-webfont.svg +1831 -0
- data/app/assets/stylesheets/admin/fonts/OpenSans-Regular-webfont.ttf +0 -0
- data/app/assets/stylesheets/admin/fonts/OpenSans-Regular-webfont.woff +0 -0
- data/app/assets/stylesheets/admin/fonts/glyphicons-halflings-regular.eot +0 -0
- data/app/assets/stylesheets/admin/fonts/glyphicons-halflings-regular.svg +229 -0
- data/app/assets/stylesheets/admin/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/app/assets/stylesheets/admin/fonts/glyphicons-halflings-regular.woff +0 -0
- data/app/assets/stylesheets/admin/form-builder/formbuilder.css +71 -0
- data/app/assets/stylesheets/admin/img/bg.png +0 -0
- data/app/assets/stylesheets/admin/img/colorpicker/alpha.png +0 -0
- data/app/assets/stylesheets/admin/img/colorpicker/hue.png +0 -0
- data/app/assets/stylesheets/admin/img/colorpicker/saturation.png +0 -0
- data/app/assets/stylesheets/admin/img/girls-1.jpg +0 -0
- data/app/assets/stylesheets/admin/img/jquery/resize-icon.png +0 -0
- data/app/assets/stylesheets/admin/img/loading.gif +1 -0
- data/app/assets/stylesheets/admin/img/logo-small.png +0 -0
- data/app/assets/stylesheets/admin/img/logo.png +0 -0
- data/app/assets/stylesheets/admin/img/no_image.jpg +0 -0
- data/app/assets/stylesheets/admin/img/rormeleon-white.png +0 -0
- data/app/assets/stylesheets/admin/img/thumb_no_found.jpg +0 -0
- data/app/assets/stylesheets/admin/jquery.tagsinput.css +72 -0
- data/app/assets/stylesheets/admin/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/app/assets/stylesheets/admin/jquery/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/app/assets/stylesheets/admin/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/app/assets/stylesheets/admin/jquery/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/app/assets/stylesheets/admin/jquery/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/app/assets/stylesheets/admin/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/app/assets/stylesheets/admin/jquery/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/app/assets/stylesheets/admin/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/app/assets/stylesheets/admin/jquery/images/ui-icons_222222_256x240.png +0 -0
- data/app/assets/stylesheets/admin/jquery/images/ui-icons_2e83ff_256x240.png +0 -0
- data/app/assets/stylesheets/admin/jquery/images/ui-icons_454545_256x240.png +0 -0
- data/app/assets/stylesheets/admin/jquery/images/ui-icons_888888_256x240.png +0 -0
- data/app/assets/stylesheets/admin/jquery/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/app/assets/stylesheets/admin/jquery/jquery-ui.scss +1226 -0
- data/app/assets/stylesheets/admin/nav-menu.css +54 -0
- data/app/assets/stylesheets/admin/nestable/jquery.nestable.css +103 -0
- data/app/assets/stylesheets/admin/tageditor/delete.png +0 -0
- data/app/assets/stylesheets/admin/tageditor/delete.svg +4 -0
- data/app/assets/stylesheets/admin/tageditor/jquery.tag-editor.css +49 -0
- data/app/assets/stylesheets/admin/theme-default.scss +8462 -0
- data/app/assets/stylesheets/admin/widgets.css.scss +26 -0
- data/app/assets/stylesheets/bootstrap.min.css.scss +5 -0
- data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/css/style.css +84 -0
- data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/editor_plugin.js +1 -0
- data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/editor_plugin_src.js +90 -0
- data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/img/youtube.png +0 -0
- data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/index.html +86 -0
- data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/js/scripts.js +1 -0
- data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/js/scripts_src.js +81 -0
- data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/langs/en.js +3 -0
- data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/langs/en_dlg.js +12 -0
- data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/langs/es.js +3 -0
- data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/langs/es_dlg.js +12 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/bootstrap.css +2228 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/content.css +189 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/dialog.css +295 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/butt2.png +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/button-bg.png +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/buttons.png +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/down_arrow.gif +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/fade-butt.png +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/icons.png +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/items.gif +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/menu-arrow.png +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/menu-check.png +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/progress.gif +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/tabs.gif +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/toolbarbg.png +0 -0
- data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/ui.css +1163 -0
- data/app/controllers/admin/appearances/nav_menus_controller.rb +120 -0
- data/app/controllers/admin/appearances/themes_controller.rb +30 -0
- data/app/controllers/admin/appearances/widgets/assign_controller.rb +40 -0
- data/app/controllers/admin/appearances/widgets/main_controller.rb +57 -0
- data/app/controllers/admin/appearances/widgets/sidebar_controller.rb +59 -0
- data/app/controllers/admin/appearances_controller.rb +17 -0
- data/app/controllers/admin/categories_controller.rb +77 -0
- data/app/controllers/admin/comments_controller.rb +119 -0
- data/app/controllers/admin/installers_controller.rb +40 -0
- data/app/controllers/admin/media_controller.rb +55 -0
- data/app/controllers/admin/plugins_controller.rb +45 -0
- data/app/controllers/admin/post_tags_controller.rb +83 -0
- data/app/controllers/admin/posts/drafts_controller.rb +76 -0
- data/app/controllers/admin/posts_controller.rb +195 -0
- data/app/controllers/admin/sessions_controller.rb +144 -0
- data/app/controllers/admin/settings/custom_fields_controller.rb +85 -0
- data/app/controllers/admin/settings/post_types_controller.rb +73 -0
- data/app/controllers/admin/settings/sites_controller.rb +89 -0
- data/app/controllers/admin/settings_controller.rb +60 -0
- data/app/controllers/admin/user_roles_controller.rb +76 -0
- data/app/controllers/admin/users_controller.rb +120 -0
- data/app/controllers/admin_controller.rb +56 -0
- data/app/controllers/apps/plugins_admin_controller.rb +21 -0
- data/app/controllers/apps/plugins_front_controller.rb +21 -0
- data/app/controllers/apps/themes_admin_controller.rb +21 -0
- data/app/controllers/apps/themes_front_controller.rb +21 -0
- data/app/controllers/camaleon_controller.rb +87 -0
- data/app/controllers/concerns/frontend_concern.rb +57 -0
- data/app/controllers/frontend_controller.rb +240 -0
- data/app/decorators/application_decorator.rb +81 -0
- data/app/decorators/category_decorator.rb +61 -0
- data/app/decorators/custom_field_decorator.rb +31 -0
- data/app/decorators/custom_fields_concern.rb +33 -0
- data/app/decorators/metas_decorator_methods.rb +19 -0
- data/app/decorators/post_comment_decorator.rb +26 -0
- data/app/decorators/post_decorator.rb +162 -0
- data/app/decorators/post_tag_decorator.rb +36 -0
- data/app/decorators/post_type_decorator.rb +56 -0
- data/app/decorators/site_decorator.rb +136 -0
- data/app/decorators/term_taxonomy_decorator.rb +97 -0
- data/app/decorators/theme_decorator.rb +16 -0
- data/app/decorators/user_decorator.rb +67 -0
- data/app/decorators/widget_decorator.rb +13 -0
- data/app/helpers/admin/application_helper.rb +27 -0
- data/app/helpers/admin/breadcrumb_helper.rb +37 -0
- data/app/helpers/admin/category_helper.rb +22 -0
- data/app/helpers/admin/custom_fields_helper.rb +329 -0
- data/app/helpers/admin/menus_helper.rb +199 -0
- data/app/helpers/admin/post_type_helper.rb +50 -0
- data/app/helpers/camaleon_helper.rb +65 -0
- data/app/helpers/captcha_helper.rb +90 -0
- data/app/helpers/content_helper.rb +35 -0
- data/app/helpers/frontend/application_helper.rb +41 -0
- data/app/helpers/frontend/nav_menu_helper.rb +177 -0
- data/app/helpers/frontend/seo_helper.rb +60 -0
- data/app/helpers/frontend/site_helper.rb +60 -0
- data/app/helpers/hooks_helper.rb +54 -0
- data/app/helpers/html_helper.rb +114 -0
- data/app/helpers/plugins_helper.rb +129 -0
- data/app/helpers/session_helper.rb +108 -0
- data/app/helpers/short_code_helper.rb +82 -0
- data/app/helpers/site_helper.rb +124 -0
- data/app/helpers/theme_helper.rb +51 -0
- data/app/helpers/uploader_helper.rb +144 -0
- data/app/helpers/user_roles_helper.rb +14 -0
- data/app/mailers/html_mailer.rb +47 -0
- data/app/models/ability.rb +113 -0
- data/app/models/category.rb +55 -0
- data/app/models/concerns/categories_tags_for_posts.rb +140 -0
- data/app/models/concerns/custom_fields_read.rb +221 -0
- data/app/models/concerns/metas.rb +133 -0
- data/app/models/concerns/metas_saved.rb +10 -0
- data/app/models/concerns/site_public.rb +23 -0
- data/app/models/custom_field.rb +34 -0
- data/app/models/custom_field_group.rb +121 -0
- data/app/models/custom_fields_relationship.rb +26 -0
- data/app/models/meta.rb +16 -0
- data/app/models/nav_menu.rb +41 -0
- data/app/models/nav_menu_item.rb +36 -0
- data/app/models/plugin.rb +57 -0
- data/app/models/plugins.rb +13 -0
- data/app/models/post.rb +89 -0
- data/app/models/post_comment.rb +44 -0
- data/app/models/post_default.rb +78 -0
- data/app/models/post_relationship.rb +26 -0
- data/app/models/post_tag.rb +15 -0
- data/app/models/post_type.rb +125 -0
- data/app/models/site.rb +337 -0
- data/app/models/term_relationship.rb +26 -0
- data/app/models/term_taxonomy.rb +156 -0
- data/app/models/theme.rb +33 -0
- data/app/models/themes.rb +13 -0
- data/app/models/user.rb +172 -0
- data/app/models/user_relationship.rb +17 -0
- data/app/models/user_role.rb +139 -0
- data/app/models/widget.rb +13 -0
- data/app/models/widget/assigned.rb +34 -0
- data/app/models/widget/main.rb +52 -0
- data/app/models/widget/sidebar.rb +28 -0
- data/app/views/_flash_messages.html.erb +39 -0
- data/app/views/admin/appearances/_external_menu.html.erb +16 -0
- data/app/views/admin/appearances/menu.html.erb +199 -0
- data/app/views/admin/appearances/themes/index.html.erb +68 -0
- data/app/views/admin/appearances/themes/preview.html.erb +1 -0
- data/app/views/admin/appearances/themes/theme_load_data.html.erb +40 -0
- data/app/views/admin/appearances/widgets/assign/_form.html.erb +35 -0
- data/app/views/admin/appearances/widgets/main/form.html.erb +27 -0
- data/app/views/admin/appearances/widgets/main/index.html.erb +91 -0
- data/app/views/admin/appearances/widgets/sidebar/form.html.erb +23 -0
- data/app/views/admin/categories/_form.html.erb +42 -0
- data/app/views/admin/categories/edit.html.erb +18 -0
- data/app/views/admin/categories/index.html.erb +81 -0
- data/app/views/admin/comments/form.html.erb +55 -0
- data/app/views/admin/comments/index.html.erb +58 -0
- data/app/views/admin/comments/reply.html.erb +197 -0
- data/app/views/admin/dashboard/index.html.erb +25 -0
- data/app/views/admin/installers/form.html.erb +19 -0
- data/app/views/admin/installers/welcome.html.erb +8 -0
- data/app/views/admin/media/iframe.html.erb +33 -0
- data/app/views/admin/media/index.html.erb +31 -0
- data/app/views/admin/plugins/_plugins_list.html.erb +59 -0
- data/app/views/admin/plugins/index.html.erb +37 -0
- data/app/views/admin/post_tags/_form.html.erb +34 -0
- data/app/views/admin/post_tags/edit.html.erb +18 -0
- data/app/views/admin/post_tags/index.html.erb +79 -0
- data/app/views/admin/posts/_filter_posts.html.erb +6 -0
- data/app/views/admin/posts/form.html.erb +294 -0
- data/app/views/admin/posts/index.html.erb +121 -0
- data/app/views/admin/posts/show.html.erb +20 -0
- data/app/views/admin/sessions/forgot.html.erb +51 -0
- data/app/views/admin/sessions/login.html.erb +39 -0
- data/app/views/admin/sessions/register.html.erb +63 -0
- data/app/views/admin/settings/custom_fields/_meta_data.html.erb +102 -0
- data/app/views/admin/settings/custom_fields/_render.html.erb +73 -0
- data/app/views/admin/settings/custom_fields/fields/audio.html.erb +4 -0
- data/app/views/admin/settings/custom_fields/fields/checkbox.html.erb +3 -0
- data/app/views/admin/settings/custom_fields/fields/checkboxes.html.erb +5 -0
- data/app/views/admin/settings/custom_fields/fields/colorpicker.html.erb +7 -0
- data/app/views/admin/settings/custom_fields/fields/date.html.erb +7 -0
- data/app/views/admin/settings/custom_fields/fields/editor.html.erb +4 -0
- data/app/views/admin/settings/custom_fields/fields/email.html.erb +3 -0
- data/app/views/admin/settings/custom_fields/fields/field_attrs.html.erb +10 -0
- data/app/views/admin/settings/custom_fields/fields/file.html.erb +4 -0
- data/app/views/admin/settings/custom_fields/fields/image.html.erb +4 -0
- data/app/views/admin/settings/custom_fields/fields/numeric.html.erb +4 -0
- data/app/views/admin/settings/custom_fields/fields/phone.html.erb +3 -0
- data/app/views/admin/settings/custom_fields/fields/posts.html.erb +17 -0
- data/app/views/admin/settings/custom_fields/fields/radio.html.erb +5 -0
- data/app/views/admin/settings/custom_fields/fields/select.html.erb +7 -0
- data/app/views/admin/settings/custom_fields/fields/select_eval.html.erb +3 -0
- data/app/views/admin/settings/custom_fields/fields/text_area.html.erb +3 -0
- data/app/views/admin/settings/custom_fields/fields/text_box.html.erb +3 -0
- data/app/views/admin/settings/custom_fields/fields/url.html.erb +3 -0
- data/app/views/admin/settings/custom_fields/fields/users.html.erb +8 -0
- data/app/views/admin/settings/custom_fields/fields/video.html.erb +4 -0
- data/app/views/admin/settings/custom_fields/form.html.erb +249 -0
- data/app/views/admin/settings/custom_fields/get_items.html.erb +199 -0
- data/app/views/admin/settings/custom_fields/index.html.erb +69 -0
- data/app/views/admin/settings/languages.html.erb +68 -0
- data/app/views/admin/settings/post_types/_form.html.erb +93 -0
- data/app/views/admin/settings/post_types/edit.html.erb +18 -0
- data/app/views/admin/settings/post_types/index.html.erb +80 -0
- data/app/views/admin/settings/site.html.erb +124 -0
- data/app/views/admin/settings/sites/form.html.erb +50 -0
- data/app/views/admin/settings/sites/index.html.erb +56 -0
- data/app/views/admin/taxonomy/_form.html.erb +62 -0
- data/app/views/admin/taxonomy/edit.html.erb +18 -0
- data/app/views/admin/taxonomy/index.html.erb +79 -0
- data/app/views/admin/user_roles/form.html.erb +168 -0
- data/app/views/admin/user_roles/index.html.erb +54 -0
- data/app/views/admin/users/form.html.erb +305 -0
- data/app/views/admin/users/index.html.erb +58 -0
- data/app/views/admin/users/profile.html.erb +118 -0
- data/app/views/admin/users/profile/_activity.html.erb +180 -0
- data/app/views/admin/users/profile/_settings.html.erb +15 -0
- data/app/views/admin/users/profile_edit.html.erb +305 -0
- data/app/views/default_theme/admin/settings.html.erb +1 -0
- data/app/views/default_theme/category.html.erb +25 -0
- data/app/views/default_theme/category.rss.builder +23 -0
- data/app/views/default_theme/index.html.erb +70 -0
- data/app/views/default_theme/index.rss.builder +21 -0
- data/app/views/default_theme/layouts/_footer.html.erb +18 -0
- data/app/views/default_theme/layouts/_header.html.erb +38 -0
- data/app/views/default_theme/layouts/index.html.erb +34 -0
- data/app/views/default_theme/partials/_breadcrumb.html.erb +10 -0
- data/app/views/default_theme/partials/_categories_list.html.erb +23 -0
- data/app/views/default_theme/partials/_comments.html.erb +33 -0
- data/app/views/default_theme/partials/_comments_list.html.erb +21 -0
- data/app/views/default_theme/partials/_flash_messages.html.erb +26 -0
- data/app/views/default_theme/partials/_forms.html.erb +19 -0
- data/app/views/default_theme/partials/_post_list_item.html.erb +13 -0
- data/app/views/default_theme/partials/_render_custom_field.html.erb +57 -0
- data/app/views/default_theme/partials/_search_form.html.erb +10 -0
- data/app/views/default_theme/partials/_sidebar.html.erb +56 -0
- data/app/views/default_theme/post.html.erb +40 -0
- data/app/views/default_theme/post.rss.builder +12 -0
- data/app/views/default_theme/post_tag.html.erb +17 -0
- data/app/views/default_theme/post_tag.rss.builder +22 -0
- data/app/views/default_theme/post_type.html.erb +25 -0
- data/app/views/default_theme/post_type.rss.builder +22 -0
- data/app/views/default_theme/profile.html.erb +18 -0
- data/app/views/default_theme/robots.text.erb +1 -0
- data/app/views/default_theme/search.html.erb +13 -0
- data/app/views/default_theme/sitemap.html.erb +0 -0
- data/app/views/html_mailer/other.html.erb +3 -0
- data/app/views/html_mailer/sender.html.erb +25 -0
- data/app/views/layouts/admin.html.erb +164 -0
- data/app/views/layouts/admin/_ajax.html.erb +2 -0
- data/app/views/layouts/admin/_flash_messages.html.erb +49 -0
- data/app/views/layouts/admin/_form_error.html.erb +10 -0
- data/app/views/layouts/admin/_sidebar.html.erb +31 -0
- data/app/views/layouts/admin/installer.html.erb +36 -0
- data/app/views/layouts/application.html.erb +15 -0
- data/app/views/layouts/login.html.erb +40 -0
- data/app/views/shortcode_templates/form.html.erb +1 -0
- data/app/views/shortcode_templates/widget.html.erb +11 -0
- data/config/initializers/active_record_extension.rb +24 -0
- data/config/initializers/assets.rb +17 -0
- data/config/initializers/cache_helper.rb +9 -0
- data/config/initializers/elfinder.rb +79 -0
- data/config/initializers/fix_ssl.rb +14 -0
- data/config/initializers/mobu.rb +24 -0
- data/config/initializers/page_caching.rb +35 -0
- data/config/initializers/rufus_cron.rb +44 -0
- data/config/locales/admin/en.yml +561 -0
- data/config/locales/admin/es.yml +560 -0
- data/config/locales/ar.yml +275 -0
- data/config/locales/common.yml +125 -0
- data/config/locales/de.yml +210 -0
- data/config/locales/en.yml +207 -0
- data/config/locales/es.yml +198 -0
- data/config/locales/fr.yml +207 -0
- data/config/locales/languages.yml +19 -0
- data/config/locales/pl.yml +237 -0
- data/config/locales/pt.yml +201 -0
- data/config/locales/routes.yml +23 -0
- data/config/routes.rb +10 -0
- data/config/routes/admin.rb +119 -0
- data/config/routes/frontend.rb +35 -0
- data/config/sitemap.rb +52 -0
- data/config/system.json +16 -0
- data/db/migrate/20150611161134_post_table_into_utf8.rb +115 -0
- data/lib/ca-bundle.crt +3554 -0
- data/lib/camaleon_cms.rb +4 -0
- data/lib/camaleon_cms/engine.rb +60 -0
- data/lib/camaleon_cms/version.rb +3 -0
- data/lib/captcha/bumpyroad.ttf +0 -0
- data/lib/captcha/captcha_0.jpg +0 -0
- data/lib/captcha/captcha_1.jpg +0 -0
- data/lib/captcha/captcha_10.jpg +0 -0
- data/lib/captcha/captcha_11.jpg +0 -0
- data/lib/captcha/captcha_2.jpg +0 -0
- data/lib/captcha/captcha_3.jpg +0 -0
- data/lib/captcha/captcha_4.jpg +0 -0
- data/lib/captcha/captcha_5.jpg +0 -0
- data/lib/captcha/captcha_6.jpg +0 -0
- data/lib/captcha/captcha_7.jpg +0 -0
- data/lib/captcha/captcha_8.jpg +0 -0
- data/lib/captcha/captcha_9.jpg +0 -0
- data/lib/ext/aes_crypt.rb +246 -0
- data/lib/ext/array.rb +54 -0
- data/lib/ext/hash.rb +41 -0
- data/lib/ext/string.rb +159 -0
- data/lib/ext/translator.rb +83 -0
- data/lib/generators/camaleon_cms/install_generator.rb +20 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/admin_controller.rb +25 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/assets/docs/images/screenshot_1.jpg +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/assets/docs/images/screenshot_2.jpg +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/assets/docs/images/screenshot_3.jpg +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/assets/docs/index.html +60 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/attack_helper.rb +99 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/config/config.json +31 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/config/custom_models.rb +4 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/config/locales/readme.txt +1 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/config/locales/translation.yml +36 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/config/routes_admin.txt +2 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/models/attack.rb +12 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/views/admin/settings.html.erb +49 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/admin_forms_controller.rb +93 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/css/admin/form-builder/formbuilder.css +70 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/css/contact-form.css +8 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/css/front/railsform.scss +94 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/css/readme.txt +1 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/docs/images/screenshot_1.jpg +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/docs/images/screenshot_2.jpg +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/docs/images/screenshot_3.jpg +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/docs/images/screenshot_4.jpg +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/docs/images/screenshot_5.jpg +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/docs/index.html +89 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/js/contact_form.js +2 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/js/form-builder/formbuilder.js +1271 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/js/form-builder/vendor.js +3072 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/js/readme.txt +1 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/config/config.json +35 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/config/locales/readme.txt +1 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/config/locales/translation.yml +210 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/config/routes_admin.txt +4 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/config/routes_front.txt +2 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/contact_form_helper.rb +91 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/contact_form_html_helper.rb +157 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/front_controller.rb +106 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/models/contact_form.rb +26 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/views/admin_forms/_form.html.erb +33 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/views/admin_forms/edit.html.erb +375 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/views/admin_forms/index.html.erb +65 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/views/admin_forms/manual.html.erb +59 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/views/admin_forms/responses.html.erb +67 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/views/forms_shorcode.html.erb +27 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/views/front/index.html.erb +3 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/admin_controller.rb +35 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/assets/docs/images/screenshot_1.jpg +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/assets/docs/images/screenshot_2.jpg +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/assets/docs/index.html +58 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/config/config.json +21 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/config/locales/readme.txt +1 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/config/locales/translation.yml +37 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/config/routes_admin.txt +3 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/front_cache_helper.rb +154 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/views/admin/settings.html.erb +71 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/visibility_post/assets/docs/images/screenshot_1.jpg +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/visibility_post/assets/docs/images/screenshot_2.jpg +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/visibility_post/assets/docs/images/screenshot_3.jpg +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/visibility_post/assets/docs/images/screenshot_4.jpg +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/visibility_post/assets/docs/index.html +62 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/visibility_post/assets/js/form.js +29 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/visibility_post/config/config.json +24 -0
- data/lib/generators/camaleon_cms/install_template/apps/plugins/visibility_post/visibility_post_helper.rb +132 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/css/magnific-ver.css +394 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/css/main.css +15 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/css/style-ver.css.scss +224 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/css/wpbase.css +1 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/images/empe.jpg +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/images/image.png +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/images/loader.gif +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/images/zoom.png +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/js/hover.zoom.js +67 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/js/magnific.min.js +3 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/js/main-ver.js +46 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/js/main.js +18 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/js/modernizr.custom.js +4 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/config/config.json +14 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/main_helper.rb +43 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/views/admin/settings.html.erb +4 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/views/index.html.erb +28 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/views/layouts/index.html.erb +85 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/views/partials/readme.txt +1 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/views/template_sample_page.html.erb +6 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/css/main.css +13 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/css/style.css.scss +3395 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/css/styles.css.scss +175 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/genericons/COPYING.txt +9 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/genericons/Genericons-Regular.otf +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/genericons/LICENSE.txt +339 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/genericons/README.txt +123 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/genericons/font/genericons-regular-webfont.eot +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/genericons/font/genericons-regular-webfont.svg +135 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/genericons/font/genericons-regular-webfont.ttf +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/genericons/font/genericons-regular-webfont.woff +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/genericons/genericons.css +197 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/circle.png +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/dotted-line-2x.png +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/dotted-line-light-2x.png +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/dotted-line-light.png +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/dotted-line.png +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/headers/circle-thumbnail.png +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/headers/circle.png +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/headers/diamond-thumbnail.png +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/headers/diamond.png +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/headers/star-thumbnail.png +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/headers/star.png +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/image.png +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/search-icon-2x.png +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/search-icon.png +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/config/config.json +19 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/default_helper.rb +36 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/admin/settings.html.erb +1 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/category.html.erb +16 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/index.html.erb +35 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/layouts/index.html.erb +83 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/page.html.erb +22 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/partials/_breadcrumb.html.erb +10 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/partials/_categories_list.html.erb +23 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/partials/_comments.html.erb +25 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/partials/_comments_list.html.erb +20 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/partials/_flash_messages.html.erb +26 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/partials/_forms.html.erb +19 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/partials/_post_list_item.html.erb +34 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/partials/_search_form.html.erb +8 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/partials/_sidebar.html.erb +50 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/post.html.erb +22 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/post_tag.html.erb +14 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/post_type.html.erb +33 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/search.html.erb +17 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/assets/css/bootstrap/bootstrap.min.css +6735 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/assets/css/main.css +13 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/assets/css/styles.css.scss +175 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/assets/images/image.png +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/assets/js/main.js +15 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/assets/js/plugins/bootstrap/bootstrap.min.js +6 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/assets/js/plugins/jquery/jquery.min.js +4 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/assets/js/plugins/modal_elfinder.js +29 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/config/config.json +26 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/custom_helper.rb +37 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/data.json +1 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/image.png +0 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/admin/settings.html.erb +1 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/category.html.erb +33 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/index.html.erb +70 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/layouts/_footer.html.erb +18 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/layouts/_header.html.erb +38 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/layouts/index.html.erb +34 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/page.html.erb +24 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/partials/_breadcrumb.html.erb +10 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/partials/_categories_list.html.erb +23 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/partials/_comments.html.erb +32 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/partials/_comments_list.html.erb +21 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/partials/_flash_messages.html.erb +26 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/partials/_forms.html.erb +19 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/partials/_post_list_item.html.erb +13 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/partials/_search_form.html.erb +10 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/partials/_sidebar.html.erb +60 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/post.html.erb +20 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/post_tag.html.erb +22 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/post_type.html.erb +33 -0
- data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/search.html.erb +18 -0
- data/lib/generators/camaleon_cms/install_template/plugin_routes.rb +311 -0
- data/lib/generators/camaleon_cms/install_template/system.json +11 -0
- data/lib/generators/cplugin_generator.rb +80 -0
- data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/admin_controller.rb +9 -0
- data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/assets/css/readme.txt +1 -0
- data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/assets/images/readme.txt +1 -0
- data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/assets/js/readme.txt +1 -0
- data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/config/config.json +18 -0
- data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/config/locales/readme.txt +1 -0
- data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/config/routes_admin.txt +1 -0
- data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/config/routes_front.txt +1 -0
- data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/front_controller.rb +9 -0
- data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/main_helper.rb +21 -0
- data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/models/my_plugin.rb +12 -0
- data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/views/admin/index.html.erb +2 -0
- data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/views/front/index.html.erb +2 -0
- data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/views/layouts/readme.txt +2 -0
- data/lib/generators/ctheme_generator.rb +63 -0
- data/lib/generators/ctheme_template/app/apps/themes/my_theme/assets/css/main.css +12 -0
- data/lib/generators/ctheme_template/app/apps/themes/my_theme/assets/images/image.png +0 -0
- data/lib/generators/ctheme_template/app/apps/themes/my_theme/assets/js/main.js +14 -0
- data/lib/generators/ctheme_template/app/apps/themes/my_theme/config/config.json +14 -0
- data/lib/generators/ctheme_template/app/apps/themes/my_theme/main_helper.rb +25 -0
- data/lib/generators/ctheme_template/app/apps/themes/my_theme/views/admin/settings.html.erb +4 -0
- data/lib/generators/ctheme_template/app/apps/themes/my_theme/views/index.html.erb +25 -0
- data/lib/generators/ctheme_template/app/apps/themes/my_theme/views/layouts/index.html.erb +71 -0
- data/lib/generators/ctheme_template/app/apps/themes/my_theme/views/partials/readme.txt +1 -0
- data/lib/tasks/camaleon_cms_tasks.rake +4 -0
- data/test/camaleon_cms_test.rb +7 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/test_helper.rb +19 -0
- metadata +699 -0
@@ -0,0 +1,19 @@
|
|
1
|
+
=begin
|
2
|
+
Camaleon CMS is a content management system
|
3
|
+
Copyright (C) 2015 by Owen Peredo Diaz
|
4
|
+
Email: owenperedo@gmail.com
|
5
|
+
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
6
|
+
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
7
|
+
See the GNU Affero General Public License (GPLv3) for more details.
|
8
|
+
=end
|
9
|
+
module MetasDecoratorMethods
|
10
|
+
# return meta value translated for key in this model
|
11
|
+
def the_option(key)
|
12
|
+
object.get_meta(key, "").translate(@_deco_locale)
|
13
|
+
end
|
14
|
+
|
15
|
+
# return option value translated for key in this model
|
16
|
+
def the_option(key)
|
17
|
+
object.get_option(key, "").translate(@_deco_locale)
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
=begin
|
2
|
+
Camaleon CMS is a content management system
|
3
|
+
Copyright (C) 2015 by Owen Peredo Diaz
|
4
|
+
Email: owenperedo@gmail.com
|
5
|
+
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
6
|
+
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
7
|
+
See the GNU Affero General Public License (GPLv3) for more details.
|
8
|
+
=end
|
9
|
+
class PostCommentDecorator < Draper::Decorator
|
10
|
+
delegate_all
|
11
|
+
|
12
|
+
# return created at date formatted
|
13
|
+
def the_created_at(format = :long)
|
14
|
+
h.l(object.created_at, format: format.to_sym)
|
15
|
+
end
|
16
|
+
|
17
|
+
# return owner of this comment
|
18
|
+
def the_user
|
19
|
+
object.user
|
20
|
+
end
|
21
|
+
|
22
|
+
def the_content
|
23
|
+
object.content
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,162 @@
|
|
1
|
+
=begin
|
2
|
+
Camaleon CMS is a content management system
|
3
|
+
Copyright (C) 2015 by Owen Peredo Diaz
|
4
|
+
Email: owenperedo@gmail.com
|
5
|
+
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
6
|
+
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
7
|
+
See the GNU Affero General Public License (GPLv3) for more details.
|
8
|
+
=end
|
9
|
+
class PostDecorator < ApplicationDecorator
|
10
|
+
include CustomFieldsConcern
|
11
|
+
delegate_all
|
12
|
+
|
13
|
+
|
14
|
+
def the_title
|
15
|
+
r = {title: object.title.to_s.translate(get_locale), post: object}
|
16
|
+
h.hooks_run("post_the_title", r)
|
17
|
+
r[:title]
|
18
|
+
end
|
19
|
+
|
20
|
+
# return the excerpt of this post
|
21
|
+
def the_excerpt(qty_chars = 200)
|
22
|
+
excerpt = object.meta[:summary].to_s.translate(get_locale)
|
23
|
+
r = {content: (excerpt.present? ? excerpt : object.content.to_s.translate(get_locale).strip_tags.gsub(/ |\n/, " ").truncate(qty_chars)), post: object}
|
24
|
+
h.hooks_run("post_the_excerpt", r)
|
25
|
+
r[:content]
|
26
|
+
end
|
27
|
+
|
28
|
+
# return the content of this post
|
29
|
+
def the_content
|
30
|
+
r = {content: object.content.to_s.translate(get_locale), post: object}
|
31
|
+
h.hooks_run("post_the_content", r)
|
32
|
+
h.do_shortcode(r[:content], self)
|
33
|
+
end
|
34
|
+
|
35
|
+
# return thumbnail image for this post
|
36
|
+
# default: default image if thumbails not exist
|
37
|
+
# if default is empty, post_type default thumb will be returned
|
38
|
+
def the_thumb_url(default = nil)
|
39
|
+
th = object.meta[:thumb]
|
40
|
+
th.present? ? th : (default || object.post_type.get_option('default_thumb', nil) || h.asset_url("image-not-found.png"))
|
41
|
+
end
|
42
|
+
|
43
|
+
# check if this page has registered the thumbnail
|
44
|
+
def has_thumb?
|
45
|
+
object.meta[:thumb].present?
|
46
|
+
end
|
47
|
+
|
48
|
+
# return front url for this post
|
49
|
+
def the_url(*args)
|
50
|
+
args = args.extract_options!
|
51
|
+
args[:slug] = the_slug
|
52
|
+
args[:locale] = get_locale unless args.include?(:locale)
|
53
|
+
args[:format] = "html"
|
54
|
+
as_path = args.delete(:as_path)
|
55
|
+
h.url_to_fixed("post_#{as_path.present? ? "path" : "url"}", args)
|
56
|
+
end
|
57
|
+
|
58
|
+
# return a hash of frontend urls for this post
|
59
|
+
# sample: {es: 'http://mydomain.com/es/articulo-3.html', en: 'http://mydomain.com/en/post-3.html'}
|
60
|
+
def the_urls(*args)
|
61
|
+
args = args.extract_options!
|
62
|
+
res = {}
|
63
|
+
h.current_site.the_languages.each do |l|
|
64
|
+
args[:locale] = l
|
65
|
+
res[l] = the_url(args.clone)
|
66
|
+
end
|
67
|
+
res
|
68
|
+
end
|
69
|
+
|
70
|
+
# return edit url for this post
|
71
|
+
def the_edit_url
|
72
|
+
h.edit_admin_post_type_post_url(object.post_type.id, object)
|
73
|
+
end
|
74
|
+
|
75
|
+
# show thumbnail image as html
|
76
|
+
def the_thumb(img_args = {})
|
77
|
+
r = {image: h.image_tag(the_thumb_url, img_args), post: object}
|
78
|
+
h.hooks_run("post_the_thumb", r)
|
79
|
+
r[:image]
|
80
|
+
end
|
81
|
+
|
82
|
+
# show link and thumbnail included as html
|
83
|
+
# link_args: html attributes for link
|
84
|
+
# img_args: html attributes for image
|
85
|
+
def the_link_thumb(link_args = {}, img_args = {})
|
86
|
+
h.link_to(the_thumb(img_args), the_url, link_args)
|
87
|
+
end
|
88
|
+
|
89
|
+
def the_status
|
90
|
+
case self.status
|
91
|
+
when "published"
|
92
|
+
color = "info"
|
93
|
+
status = I18n.t('admin.post_type.published')
|
94
|
+
when "draft"
|
95
|
+
color = "warning"
|
96
|
+
status = I18n.t('admin.table.draft')
|
97
|
+
when "trash"
|
98
|
+
color = "danger"
|
99
|
+
status = I18n.t('admin.table.trash')
|
100
|
+
when "pending"
|
101
|
+
color = "default"
|
102
|
+
status = I18n.t('admin.table.pending')
|
103
|
+
else
|
104
|
+
color = "default"
|
105
|
+
status = self.status
|
106
|
+
end
|
107
|
+
"<span class='label label-#{color} label-form'>#{status.titleize}</span>"
|
108
|
+
end
|
109
|
+
|
110
|
+
# return all categories assigned for this post filtered by permissions + hidden posts + roles + etc...
|
111
|
+
def the_categories
|
112
|
+
object.categories
|
113
|
+
end
|
114
|
+
|
115
|
+
# return all post_tags assigned for this post
|
116
|
+
def the_tags
|
117
|
+
object.post_tags
|
118
|
+
end
|
119
|
+
|
120
|
+
# return all comments for this post filtered by permissions + hidden posts + roles + etc...
|
121
|
+
def the_comments
|
122
|
+
object.comments.main.approveds.eager_load(:user)
|
123
|
+
end
|
124
|
+
|
125
|
+
# check if the post can be visited by current visitor
|
126
|
+
def can_visit?
|
127
|
+
r = {flag: true, post: object}
|
128
|
+
h.hooks_run("post_can_visit", r)
|
129
|
+
r[:flag] && object.status == 'published'
|
130
|
+
end
|
131
|
+
|
132
|
+
# check if the post can be commented
|
133
|
+
def can_commented?
|
134
|
+
object.meta[:has_comments].to_s.to_bool rescue false
|
135
|
+
end
|
136
|
+
|
137
|
+
|
138
|
+
# add_post_type: true/false to include post type link
|
139
|
+
# children: true/false (show/hide last item link)
|
140
|
+
# show_categories: true/false, true: add categories tree to the breadcrumb
|
141
|
+
def generate_breadcrumb(show_categories = true, add_post_type = true)
|
142
|
+
f_cat = object.categories.first
|
143
|
+
if f_cat.present? && show_categories
|
144
|
+
f_cat.decorate.generate_breadcrumb(add_post_type, true)
|
145
|
+
else
|
146
|
+
object.post_type.decorate.generate_breadcrumb(add_post_type, true)
|
147
|
+
end
|
148
|
+
h.breadcrumb_add(self.the_title)
|
149
|
+
end
|
150
|
+
|
151
|
+
# return the post type of this post
|
152
|
+
def the_post_type
|
153
|
+
object.post_type.decorate
|
154
|
+
end
|
155
|
+
|
156
|
+
# cache identifier, the format is: [current-site-prefix]/[object-id]-[object-last_updated]/[current locale]
|
157
|
+
# key: additional key for the model
|
158
|
+
def cache_prefix(key = "")
|
159
|
+
"#{h.current_site.cache_prefix}/post#{object.id}#{"/#{key}" if key.present?}"
|
160
|
+
end
|
161
|
+
|
162
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
=begin
|
2
|
+
Camaleon CMS is a content management system
|
3
|
+
Copyright (C) 2015 by Owen Peredo Diaz
|
4
|
+
Email: owenperedo@gmail.com
|
5
|
+
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
6
|
+
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
7
|
+
See the GNU Affero General Public License (GPLv3) for more details.
|
8
|
+
=end
|
9
|
+
class PostTagDecorator < TermTaxonomyDecorator
|
10
|
+
delegate_all
|
11
|
+
|
12
|
+
# return the public url for this post tag
|
13
|
+
def the_url(*args)
|
14
|
+
args = args.extract_options!
|
15
|
+
args[:post_tag_id] = the_id
|
16
|
+
args[:title] = the_title
|
17
|
+
args[:locale] = get_locale unless args.include?(:locale)
|
18
|
+
args[:format] = "html"
|
19
|
+
as_path = args.delete(:as_path)
|
20
|
+
h.url_to_fixed("post_tag#{_calc_locale(args[:locale])}_#{as_path.present? ? "path" : "url"}", args)
|
21
|
+
end
|
22
|
+
|
23
|
+
# return the post type of this post tag
|
24
|
+
def the_post_type
|
25
|
+
object.post_type.decorate
|
26
|
+
end
|
27
|
+
|
28
|
+
# ---------------------
|
29
|
+
# add_post_type: true/false to include post type link
|
30
|
+
# is_parent: true/false (internal control)
|
31
|
+
def generate_breadcrumb(add_post_type = true, is_parent = false)
|
32
|
+
object.post_type.decorate.generate_breadcrumb(add_post_type, true)
|
33
|
+
h.breadcrumb_add(self.the_title)
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
=begin
|
2
|
+
Camaleon CMS is a content management system
|
3
|
+
Copyright (C) 2015 by Owen Peredo Diaz
|
4
|
+
Email: owenperedo@gmail.com
|
5
|
+
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
6
|
+
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
7
|
+
See the GNU Affero General Public License (GPLv3) for more details.
|
8
|
+
=end
|
9
|
+
class PostTypeDecorator < TermTaxonomyDecorator
|
10
|
+
delegate_all
|
11
|
+
|
12
|
+
# return the public url for this post type
|
13
|
+
def the_url(*args)
|
14
|
+
args = args.extract_options!
|
15
|
+
args[:post_type_id] = the_id
|
16
|
+
args[:title] = the_title.parameterize
|
17
|
+
args[:locale] = get_locale unless args.include?(:locale)
|
18
|
+
args[:format] = "html"
|
19
|
+
as_path = args.delete(:as_path)
|
20
|
+
h.url_to_fixed("post_type#{_calc_locale(args[:locale])}_#{as_path.present? ? "path" : "url"}", args)
|
21
|
+
end
|
22
|
+
|
23
|
+
# add_post_type: true/false to include post type link
|
24
|
+
# is_parent: true/false (internal control)
|
25
|
+
def generate_breadcrumb(add_post_type = true, is_parent = false)
|
26
|
+
h.breadcrumb_add(self.the_title, is_parent ? self.the_url : nil) if add_post_type
|
27
|
+
end
|
28
|
+
|
29
|
+
# return all categories for the post_type (active_record) filtered by permissions + hidden posts + roles + etc...
|
30
|
+
# in return object, you can add custom where's or pagination like here:
|
31
|
+
# http://edgeguides.rubyonrails.org/active_record_querying.html
|
32
|
+
def the_categories
|
33
|
+
object.categories
|
34
|
+
end
|
35
|
+
|
36
|
+
# return a category from this post_type with id (integer) or by slug (string)
|
37
|
+
def the_category(slug_or_id)
|
38
|
+
return object.full_categories.where(id: slug_or_id).first if slug_or_id.is_a?(Integer)
|
39
|
+
return object.full_categories.find_by_slug(slug_or_id) if slug_or_id.is_a?(String)
|
40
|
+
end
|
41
|
+
|
42
|
+
# return all post_tags for the post_type (active_record) filtered by permissions + hidden posts + roles + etc...
|
43
|
+
# in return object, you can add custom where's or pagination like here:
|
44
|
+
# http://edgeguides.rubyonrails.org/active_record_querying.html
|
45
|
+
def the_post_tags
|
46
|
+
object.post_tags
|
47
|
+
end
|
48
|
+
|
49
|
+
# return thumbnail for this post type
|
50
|
+
# default: if thumbnail is not present, will render default
|
51
|
+
def the_thumb_url(default = nil)
|
52
|
+
th = object.get_option("thumb")
|
53
|
+
th.present? ? th : (default || h.asset_url("image-not-found.png"))
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
@@ -0,0 +1,136 @@
|
|
1
|
+
=begin
|
2
|
+
Camaleon CMS is a content management system
|
3
|
+
Copyright (C) 2015 by Owen Peredo Diaz
|
4
|
+
Email: owenperedo@gmail.com
|
5
|
+
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
6
|
+
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
7
|
+
See the GNU Affero General Public License (GPLv3) for more details.
|
8
|
+
=end
|
9
|
+
class SiteDecorator < TermTaxonomyDecorator
|
10
|
+
delegate_all
|
11
|
+
|
12
|
+
def the_description
|
13
|
+
the_content
|
14
|
+
end
|
15
|
+
|
16
|
+
# return logo url for this site
|
17
|
+
# default: this url will be returned if logo is not present.
|
18
|
+
def the_logo(default = nil)
|
19
|
+
object.options[:logo] || (default || "#{h.asset_path("camaleon.png")}")
|
20
|
+
end
|
21
|
+
|
22
|
+
def the_icon
|
23
|
+
object.options[:icon] || '/favicon.ico'
|
24
|
+
end
|
25
|
+
|
26
|
+
# return all contents from this site registered for post_type = slug (filter visibility, hidden, expired, ...)
|
27
|
+
# slug_or_id: slug or id of the post_type, default 'post'
|
28
|
+
def the_contents(slug_or_id = "post")
|
29
|
+
return h.verify_front_visibility(object.posts.where("term_taxonomy.id = ?", slug_or_id)) if slug_or_id.is_a?(Integer)
|
30
|
+
return h.verify_front_visibility(object.posts.where("term_taxonomy.slug = ?", slug_or_id)) if slug_or_id.is_a?(String)
|
31
|
+
end
|
32
|
+
|
33
|
+
# return all contents for this site registered for post_type = slug (filter visibility, hidden, expired, ...)
|
34
|
+
# slug: slug of the post_type
|
35
|
+
# if slug is not present, then this will return all posts for this site
|
36
|
+
def the_posts(slug_or_id = nil)
|
37
|
+
if slug_or_id.present?
|
38
|
+
the_contents(slug_or_id)
|
39
|
+
else
|
40
|
+
h.verify_front_visibility(object.posts)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# return all main_categories for ths site
|
45
|
+
def the_categories
|
46
|
+
object.categories
|
47
|
+
end
|
48
|
+
|
49
|
+
# return the category with id or slug from this site
|
50
|
+
def the_category(slug_or_id)
|
51
|
+
return the_full_categories.where(id: slug_or_id).first if slug_or_id.is_a?(Integer)
|
52
|
+
return the_full_categories.find_by_slug(slug_or_id) if slug_or_id.is_a?(String)
|
53
|
+
end
|
54
|
+
|
55
|
+
# return all categories for ths site (include all children categories)
|
56
|
+
def the_full_categories
|
57
|
+
object.full_categories
|
58
|
+
end
|
59
|
+
|
60
|
+
# return all post tags for ths site
|
61
|
+
def the_tags
|
62
|
+
object.post_tags
|
63
|
+
end
|
64
|
+
|
65
|
+
# return all post types for ths site
|
66
|
+
def the_post_types
|
67
|
+
object.post_types.eager_load(:metas)
|
68
|
+
end
|
69
|
+
|
70
|
+
# return the post type with slug = slug
|
71
|
+
def the_post_type(slug)
|
72
|
+
object.post_types.find_by_slug(slug).decorate rescue nil
|
73
|
+
end
|
74
|
+
|
75
|
+
# draw languages configured for this site
|
76
|
+
# list_class: (String) Custom css classes for ul list
|
77
|
+
# current_page: (boolean) true: link with translation to current url, false: link with translation to root url
|
78
|
+
def draw_languages(list_class = "language_list list-inline pull-right", current_page = false, current_class = "current_l")
|
79
|
+
lan = object.get_languages
|
80
|
+
return if lan.size < 2
|
81
|
+
res = ["<ul class='#{list_class}'>"]
|
82
|
+
lan.each do |lang|
|
83
|
+
path = lang.to_s+'.png'
|
84
|
+
img = "<img src='#{h.root_url(locale: nil)}assets/language/#{path}'/>"
|
85
|
+
res << "<li class='#{ current_class if I18n.locale.to_s == lang.to_s}'> <a href='#{h.url_to_fixed(current_page ? "url_for" : "root_url", {locale: lang})}'>#{img}</a> </li>"
|
86
|
+
end
|
87
|
+
res << "</ul>"
|
88
|
+
res.join("")
|
89
|
+
end
|
90
|
+
|
91
|
+
# return Array of frontend languages configured for this site
|
92
|
+
def the_languages
|
93
|
+
object.get_languages
|
94
|
+
end
|
95
|
+
|
96
|
+
# return the role_id of current visitor for this site
|
97
|
+
# if the visitor was not logged in, then return -1
|
98
|
+
def visitor_role
|
99
|
+
h.signin? ? h.current_user.get_role(object).slug : "-1"
|
100
|
+
end
|
101
|
+
|
102
|
+
# check if plugin_key is already installed for this site
|
103
|
+
def plugin_installed?(plugin_key)
|
104
|
+
res = false
|
105
|
+
PluginRoutes.enabled_plugins(object).each{|plugin| res = true if plugin["key"] == plugin_key }
|
106
|
+
res
|
107
|
+
end
|
108
|
+
|
109
|
+
# return root url for this site
|
110
|
+
def the_url(*args)
|
111
|
+
args = args.extract_options!
|
112
|
+
base_domain = PluginRoutes.system_info["base_domain"]
|
113
|
+
args[:host] = object.main_site? ? base_domain : (object.slug.include?(".") ? object.slug : "#{object.slug}.#{base_domain}" )
|
114
|
+
args[:port] = (args[:host].split(":")[1] rescue nil)
|
115
|
+
args[:locale] = @_deco_locale unless args.include?(:locale)
|
116
|
+
args[:host] = args[:host].split(":").first
|
117
|
+
args.delete(:as_path)
|
118
|
+
h.url_to_fixed("root_url", args)
|
119
|
+
end
|
120
|
+
|
121
|
+
# =============================== ADMIN =======================
|
122
|
+
# admin root url for this site
|
123
|
+
def the_admin_url
|
124
|
+
base_domain = PluginRoutes.system_info["base_domain"]
|
125
|
+
host = object.main_site? ? base_domain : (object.slug.include?(".") ? object.slug : "#{object.slug}.#{base_domain}" )
|
126
|
+
port = (host.split(":")[1] rescue nil)
|
127
|
+
h.url_to_fixed("admin_dashboard_url", host: host, port: port, locale: false)
|
128
|
+
end
|
129
|
+
|
130
|
+
# check if current user can manage sites
|
131
|
+
def manage_sites?
|
132
|
+
self.main_site? && h.current_user.admin?
|
133
|
+
end
|
134
|
+
|
135
|
+
|
136
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
=begin
|
2
|
+
Camaleon CMS is a content management system
|
3
|
+
Copyright (C) 2015 by Owen Peredo Diaz
|
4
|
+
Email: owenperedo@gmail.com
|
5
|
+
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
6
|
+
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
7
|
+
See the GNU Affero General Public License (GPLv3) for more details.
|
8
|
+
=end
|
9
|
+
class TermTaxonomyDecorator < ApplicationDecorator
|
10
|
+
include CustomFieldsConcern
|
11
|
+
delegate_all
|
12
|
+
|
13
|
+
# return the title for current locale
|
14
|
+
def the_title
|
15
|
+
r = {title: object.name.translate(get_locale), object: object}
|
16
|
+
h.hooks_run("taxonomy_the_title", r) rescue nil # avoid error for command the_url for categories
|
17
|
+
r[:title]
|
18
|
+
end
|
19
|
+
|
20
|
+
# return the slug for current locale
|
21
|
+
def the_slug
|
22
|
+
object.slug.translate(get_locale)
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
# return the content for current locale + shortcodes executed
|
27
|
+
def the_content
|
28
|
+
r = {content: object.description.to_s.translate(get_locale), object: object}
|
29
|
+
h.hooks_run("taxonomy_the_content", r)
|
30
|
+
h.do_shortcode(r[:content], self)
|
31
|
+
end
|
32
|
+
|
33
|
+
def the_status
|
34
|
+
if status.to_s.to_bool
|
35
|
+
"<span class='label label-success'> #{I18n.t('admin.button.actived')} </span>"
|
36
|
+
else
|
37
|
+
"<span class='label label-default'> #{I18n.t('admin.button.not_actived')} </span>"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# return excerpt for this post type
|
42
|
+
# qty_chars: total or characters maximum
|
43
|
+
def the_excerpt(qty_chars = 200)
|
44
|
+
r = {content: object.description.to_s.translate(get_locale).strip_tags.gsub(/ |\n/, " ").truncate(qty_chars), object: object}
|
45
|
+
h.hooks_run("taxonomy_the_excerpt", r)
|
46
|
+
r[:content]
|
47
|
+
end
|
48
|
+
|
49
|
+
# ---------------------- filters
|
50
|
+
# return all posts for this model (active_record) filtered by permissions + hidden posts + roles + etc...
|
51
|
+
# in return object, you can add custom where's or pagination like here:
|
52
|
+
# http://edgeguides.rubyonrails.org/active_record_querying.html
|
53
|
+
def the_posts
|
54
|
+
h.verify_front_visibility(object.posts)
|
55
|
+
end
|
56
|
+
|
57
|
+
# search a post with id (integer) or slug (string)
|
58
|
+
def the_post(slug_or_id)
|
59
|
+
return nil unless slug_or_id.present?
|
60
|
+
return object.posts.where(id: slug_or_id).first.decorate rescue nil if slug_or_id.is_a?(Integer)
|
61
|
+
return object.posts.find_by_slug(slug_or_id).decorate rescue nil if slug_or_id.is_a?(String)
|
62
|
+
end
|
63
|
+
|
64
|
+
# return edit url for current taxonomy: PostType, PostTag, Category
|
65
|
+
def the_edit_url
|
66
|
+
link = ""
|
67
|
+
case object.class.name
|
68
|
+
when "PostType"
|
69
|
+
link = h.edit_admin_settings_post_type_url(object)
|
70
|
+
when "Category"
|
71
|
+
link = h.edit_admin_post_type_category_url(object.post_type.id, object)
|
72
|
+
when "PostTag"
|
73
|
+
link = h.edit_admin_post_type_post_tag_url(object.post_type.id, object)
|
74
|
+
when "Site"
|
75
|
+
link = h.admin_settings_site_url
|
76
|
+
end
|
77
|
+
link
|
78
|
+
end
|
79
|
+
|
80
|
+
# cache identifier, the format is: [current-site-prefix]/[object-id]-[object-last_updated]/[current locale]
|
81
|
+
# key: additional key for the model
|
82
|
+
def cache_prefix(key = "")
|
83
|
+
res = ""
|
84
|
+
case object.class.name
|
85
|
+
when "PostType"
|
86
|
+
res = "#{h.current_site.cache_prefix}/ptype#{object.id}#{"/#{key}" if key.present?}"
|
87
|
+
when "Category"
|
88
|
+
res = "#{h.current_site.cache_prefix}/pcat#{object.id}#{"/#{key}" if key.present?}"
|
89
|
+
when "PostTag"
|
90
|
+
res = "#{h.current_site.cache_prefix}/ptag#{object.id}#{"/#{key}" if key.present?}"
|
91
|
+
when "Site"
|
92
|
+
res = "/#{object.id}/#{I18n.locale}#{"/#{key}" if key.present?}"
|
93
|
+
end
|
94
|
+
res
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|