camaleon_cms 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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,129 @@
|
|
|
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 PluginsHelper
|
|
10
|
+
# load all plugins + theme installed for current site
|
|
11
|
+
# METHOD IGNORED (is a partial solution to avoid load helpers and cache it for all sites)
|
|
12
|
+
# this method try to load helpers for each request without caching
|
|
13
|
+
def plugins_initialize(klass = nil)
|
|
14
|
+
mod = Module.new
|
|
15
|
+
PluginRoutes.enabled_apps(current_site).each{|plugin|
|
|
16
|
+
next if !plugin.present? || !plugin["helpers"].present?
|
|
17
|
+
plugin["helpers"].each do |h|
|
|
18
|
+
mod.send :include, h.constantize
|
|
19
|
+
end
|
|
20
|
+
}
|
|
21
|
+
(klass || self).send :extend, mod
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# install a plugin for current site
|
|
25
|
+
# plugin_key: key of the plugin
|
|
26
|
+
# return model of the plugin
|
|
27
|
+
def plugin_install(plugin_key)
|
|
28
|
+
plugin_model = current_site.plugins.where(slug: plugin_key).first_or_create!
|
|
29
|
+
return plugin_model if plugin_model.active?
|
|
30
|
+
plugin_model.active
|
|
31
|
+
PluginRoutes.reload
|
|
32
|
+
# plugins_initialize(self)
|
|
33
|
+
hook_run(plugin_model.settings, "on_active", plugin_model)
|
|
34
|
+
plugin_model
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# uninstall a plugin from current site
|
|
38
|
+
# plugin_key: key of the plugin
|
|
39
|
+
# return model of the plugin
|
|
40
|
+
def plugin_uninstall(plugin_key)
|
|
41
|
+
plugin_model = current_site.plugins.where(slug: plugin_key).first_or_create!
|
|
42
|
+
return plugin_model unless plugin_model.active?
|
|
43
|
+
plugin_model.inactive
|
|
44
|
+
PluginRoutes.reload
|
|
45
|
+
# plugins_initialize(self)
|
|
46
|
+
hook_run(plugin_model.settings, "on_inactive", plugin_model)
|
|
47
|
+
plugin_model
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# remove a plugin from current site
|
|
51
|
+
# plugin_key: key of the plugin
|
|
52
|
+
# return model of the plugin removed
|
|
53
|
+
def plugin_destroy(plugin_key)
|
|
54
|
+
plugin_model = current_site.plugins.where(slug: plugin_key).first_or_create
|
|
55
|
+
if !plugin_can_be_deleted?(params[:id]) || true
|
|
56
|
+
plugin_model.error = false
|
|
57
|
+
plugin_model
|
|
58
|
+
else
|
|
59
|
+
hook_run(plugin_model.settings, "on_destroy", plugin_model)
|
|
60
|
+
plugin_model.destroy
|
|
61
|
+
PluginRoutes.destroy_plugin(params[:id])
|
|
62
|
+
plugin_model.error = true
|
|
63
|
+
end
|
|
64
|
+
plugin_model
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# return plugin full layout path
|
|
68
|
+
# plugin_key: plugin name
|
|
69
|
+
def plugin_layout(plugin_key, layout_name)
|
|
70
|
+
"#{plugin_key}/views/layouts/#{layout_name}"
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# return plugin full view path
|
|
74
|
+
# plugin_key: plugin name
|
|
75
|
+
def plugin_view(plugin_key, view_name)
|
|
76
|
+
"#{plugin_key}/views/#{view_name}"
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# return plugin full asset path
|
|
80
|
+
# plugin_key: plugin name
|
|
81
|
+
# if asset is present return full path to this asset
|
|
82
|
+
# sample: <script src="<%= plugin_asset_path("my_plugin", "js/admin.js") %>"></script>
|
|
83
|
+
def plugin_asset_path(plugin_key, asset = nil)
|
|
84
|
+
# "#{root_url(locale: nil)}assets/plugins/#{plugin_key}/assets/#{asset}"
|
|
85
|
+
"plugins/#{plugin_key}/assets/#{asset}"
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# auto load all helpers of this plugin
|
|
89
|
+
def plugin_load_helpers(plugin)
|
|
90
|
+
return if !plugin.present? || !plugin["helpers"].present?
|
|
91
|
+
plugin["helpers"].each do |h|
|
|
92
|
+
begin
|
|
93
|
+
next if self.class.include?(h.constantize)
|
|
94
|
+
self.class_eval do
|
|
95
|
+
include h.constantize
|
|
96
|
+
end
|
|
97
|
+
rescue => e
|
|
98
|
+
Rails.logger.info "---------------------------app loading error for #{h}: #{e.message}. Please check the plugins and themes presence"
|
|
99
|
+
# flash.now[:error] = "app loading error for #{h}: #{e.message}. Please check the plugins and themes presence"
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
#self.class.helper h.constantize rescue ActionController::Base.helper(h.constantize)
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
############# admin helpers ##############
|
|
107
|
+
# check if this plugin can be deleted
|
|
108
|
+
def plugin_can_be_deleted?(key)
|
|
109
|
+
c = 0
|
|
110
|
+
Site.all.each do |site|
|
|
111
|
+
c += site.plugins.where(slug: key).count
|
|
112
|
+
end
|
|
113
|
+
c == 0
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# return plugin key for current plugin file (helper|controller|view)
|
|
117
|
+
def self_plugin_key
|
|
118
|
+
k = "app/apps/plugins/"
|
|
119
|
+
f = caller.first
|
|
120
|
+
f.split(k).last.split("/").first if f.include?(k)
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# method called only from files within plugins directory
|
|
124
|
+
# return the plugin model for current site
|
|
125
|
+
def current_plugin
|
|
126
|
+
current_site.get_plugin(self_plugin_key)
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
end
|
|
@@ -0,0 +1,108 @@
|
|
|
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 SessionHelper
|
|
10
|
+
|
|
11
|
+
# log in the user in to system
|
|
12
|
+
# user: User model
|
|
13
|
+
# remember_me: true/false (remember session permanently)
|
|
14
|
+
def login_user(user, remember_me = false, redirect_url = nil)
|
|
15
|
+
c = {value: [user.auth_token, request.user_agent, request.ip], expires: 24.hours.from_now }
|
|
16
|
+
# c[:domain] = :all if PluginRoutes.system_info["users_share_sites"].present? && Site.main_site.get_meta("share_sessions", true) && !cookies[:login].present?
|
|
17
|
+
c[:domain] = :all if PluginRoutes.system_info["users_share_sites"].present? && Site.count > 1
|
|
18
|
+
c[:expires] = 1.month.from_now if remember_me
|
|
19
|
+
|
|
20
|
+
Site.main_site.set_meta("share_sessions", false) if cookies.delete(:login).present?
|
|
21
|
+
user.update({last_login_at: Time.zone.now})
|
|
22
|
+
|
|
23
|
+
cookies[:auth_token] = c
|
|
24
|
+
cookies[:login] = true
|
|
25
|
+
|
|
26
|
+
# user redirection
|
|
27
|
+
flash[:notice] = t('admin.login.message.success', locale: current_site.get_admin_language)
|
|
28
|
+
if redirect_url.present?
|
|
29
|
+
redirect_to redirect_url
|
|
30
|
+
elsif (return_to = cookies.delete(:return_to)).present?
|
|
31
|
+
redirect_to return_to
|
|
32
|
+
else
|
|
33
|
+
redirect_to admin_dashboard_path
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# check if current host is heroku
|
|
38
|
+
def on_heroku?
|
|
39
|
+
ENV.keys.any? {|var_name| var_name.match(/(heroku|dyno)/i) }
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# switch current session user into other (user)
|
|
43
|
+
# after switched, this will be redirected to redirect_url or admin dashboard
|
|
44
|
+
def session_switch_user(user, redirect_url = nil)
|
|
45
|
+
if signin?
|
|
46
|
+
cookies[:parent_auth_token] = cookies[:auth_token]
|
|
47
|
+
login_user(user, false, redirect_url)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# switch current session into parent session called by session_switch_user
|
|
52
|
+
# after returned into parent session, this will be redirected to redirect_url or admin dashboard
|
|
53
|
+
def session_back_to_parent(redirect_url = nil)
|
|
54
|
+
if signin? && cookies[:parent_auth_token].present?
|
|
55
|
+
cookies[:auth_token] = cookies[:parent_auth_token]
|
|
56
|
+
redirect_to (redirect_url||admin_dashboard_path), notice: "Welcome back!"
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# logout current user
|
|
61
|
+
def logout_user
|
|
62
|
+
cookies.delete(:auth_token, domain: :all)
|
|
63
|
+
cookies.delete(:auth_token, domain: nil)
|
|
64
|
+
cookies[:auth_token] = {value: nil, expires: 24.hours.ago, domain: (PluginRoutes.system_info["users_share_sites"] && Site.count > 1 ? :all : nil)}
|
|
65
|
+
cookies.delete :login
|
|
66
|
+
redirect_to params[:return_to].present? ? params[:return_to] : admin_login_path, :notice => t('admin.logout.message.closed')
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# check if current user is already signed
|
|
70
|
+
def signin?
|
|
71
|
+
!current_user.nil?
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# return the role for current user
|
|
75
|
+
# if not logged in, then return 'public'
|
|
76
|
+
def current_role
|
|
77
|
+
(signin?)? current_user.role : 'public'
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# return current user logged in
|
|
81
|
+
def current_user
|
|
82
|
+
return @current_user if defined?(@current_user)
|
|
83
|
+
return nil unless cookies[:auth_token].present?
|
|
84
|
+
c = cookies[:auth_token].split("&")
|
|
85
|
+
return nil unless c.size == 3
|
|
86
|
+
|
|
87
|
+
if c[1] == request.user_agent && request.ip == c[2]
|
|
88
|
+
@current_user = (current_site.users_include_admins.find_by_auth_token(c[0]).decorate rescue nil)
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# check if a visitor was logged in
|
|
93
|
+
# if the user was not logged in, then redirect to login url
|
|
94
|
+
def authenticate(redirect_uri = nil)
|
|
95
|
+
params[:return_to] = redirect_uri
|
|
96
|
+
unless signin?
|
|
97
|
+
flash[:error] = "Required Login"
|
|
98
|
+
cookies[:return_to] = params[:return_to].present? ? params[:return_to] : ((request.get? && params[:controller] != "admin/sessions") ? request.original_url : nil)
|
|
99
|
+
redirect_to admin_login_path
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# return the session id
|
|
104
|
+
def get_session_id
|
|
105
|
+
session[:autor] = "Owen Peredo Diaz" unless request.session_options[:id].present?
|
|
106
|
+
request.session_options[:id]
|
|
107
|
+
end
|
|
108
|
+
end
|
|
@@ -0,0 +1,82 @@
|
|
|
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 ShortCodeHelper
|
|
10
|
+
|
|
11
|
+
# Internal method
|
|
12
|
+
def shortcodes_init
|
|
13
|
+
@_shortcodes = ["widget"]
|
|
14
|
+
@_shortcodes_template = {}
|
|
15
|
+
@_shortcodes_descr = {}
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# add shortcode
|
|
19
|
+
# key: chortcode key
|
|
20
|
+
# template: template to render, if nil will render "shortcode_templates/<key>"
|
|
21
|
+
# descr: description for shortcode
|
|
22
|
+
def shortcode_add(key, template = nil, descr = '')
|
|
23
|
+
@_shortcodes << key
|
|
24
|
+
@_shortcodes_template = @_shortcodes_template.merge({"#{key}"=> template}) if template.present?
|
|
25
|
+
@_shortcodes_descr[key] = descr if descr.present?
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# add or update shortcode template
|
|
29
|
+
# key: chortcode key to add or update
|
|
30
|
+
# template: template to render, if nil will render "shortcode_templates/<key>"
|
|
31
|
+
def shortcode_change_template(key, template = nil)
|
|
32
|
+
@_shortcodes_template[key] = template
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# delete shortcode
|
|
36
|
+
# key: chortcode key to delete
|
|
37
|
+
def shortcode_delete(key)
|
|
38
|
+
@_shortcodes.delete(key)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# run all shortcodes in the content
|
|
42
|
+
# content: (string) text to find a short codes
|
|
43
|
+
# args: custom arguments to pass for short codes render, sample: {owner: my_model, a: true}
|
|
44
|
+
# if args != Hash, this will re send as args = {owner: args}
|
|
45
|
+
def do_shortcode(content, args = {})
|
|
46
|
+
args = {owner: args} unless args.is_a?(Hash)
|
|
47
|
+
content.scan(/(\[(#{@_shortcodes.join("|")})\s?(.*?)\])/) do |item|
|
|
48
|
+
shortcode, code, attrs = item
|
|
49
|
+
res = render :file => (@_shortcodes_template[code].present? ? @_shortcodes_template[code] : "shortcode_templates/#{code}"), :locals => {attributes: _shortcode_parse_attr(attrs), args: args}
|
|
50
|
+
content = content.sub(shortcode, res)
|
|
51
|
+
end
|
|
52
|
+
content
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# render direct a shortcode
|
|
56
|
+
# template: custom template to be rendered for this short code
|
|
57
|
+
# sample: render_shortcode("[slider_basic as]")
|
|
58
|
+
# sample2: render_shortcode("[slider_basic as]", theme_view("custom_slider"))
|
|
59
|
+
def render_shortcode(shortcode, template = nil)
|
|
60
|
+
shortcode, code, attrs = shortcode.scan(/(\[(#{@_shortcodes.join("|")})\s?(.*?)\])/).first
|
|
61
|
+
template ||= (@_shortcodes_template[code].present? ? @_shortcodes_template[code] : "shortcode_templates/#{code}")
|
|
62
|
+
render :file => template, :locals => {attributes: _shortcode_parse_attr(attrs)}
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
private
|
|
66
|
+
def _shortcode_parse_attr(text)
|
|
67
|
+
res = {}
|
|
68
|
+
return res unless text.present?
|
|
69
|
+
text.scan(/(\w+)\s*=\s*"([^"]*)"(?:\s|$)|(\w+)\s*=\s*\'([^\']*)\'(?:\s|$)|(\w+)\s*=\s*([^\s\'"]+)(?:\s|$)|"([^"]*)"(?:\s|$)|(\S+)(?:\s|$)/).each do |item|
|
|
70
|
+
item.each_with_index do |c, index|
|
|
71
|
+
if c.present?
|
|
72
|
+
res[c] = item[index+1]
|
|
73
|
+
break
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
res
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
end
|
|
@@ -0,0 +1,124 @@
|
|
|
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 SiteHelper
|
|
10
|
+
|
|
11
|
+
# return current site or assign a site as a current site
|
|
12
|
+
def current_site(site = nil)
|
|
13
|
+
@current_site = site.decorate if site.present?
|
|
14
|
+
return $current_site if defined?($current_site)
|
|
15
|
+
return @current_site if defined?(@current_site)
|
|
16
|
+
all_sites = Site.all
|
|
17
|
+
if all_sites.size == 1
|
|
18
|
+
site = all_sites.first.decorate
|
|
19
|
+
else
|
|
20
|
+
host = request.original_url.to_s.parse_domain
|
|
21
|
+
if host == PluginRoutes.system_info["base_domain"]
|
|
22
|
+
site = Site.first.decorate rescue nil
|
|
23
|
+
else
|
|
24
|
+
s = [host]
|
|
25
|
+
s << request.subdomain if request.subdomain.present?
|
|
26
|
+
site = Site.where(slug: s).first.decorate rescue nil
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
puts "============================ Please define the $current_site = Site.first.decorate " unless site.present?
|
|
30
|
+
@current_site = site
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# initialize ability for current user
|
|
34
|
+
def current_ability
|
|
35
|
+
@current_ability ||= Ability.new(current_user, current_site)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# check if current site exist, if not, this will be redirected to main domain
|
|
39
|
+
def site_check_existence()
|
|
40
|
+
if !current_site.present?
|
|
41
|
+
if (site = Site.first).present?
|
|
42
|
+
base_domain = PluginRoutes.system_info["base_domain"]
|
|
43
|
+
redirect_to root_url(host: base_domain.split(":").first, port: (base_domain.split(":")[1] rescue nil))
|
|
44
|
+
else
|
|
45
|
+
redirect_to admin_installers_path
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# return current theme model for current site
|
|
51
|
+
def current_theme
|
|
52
|
+
@_current_theme ||= current_site.get_theme.decorate
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# get list templates files
|
|
56
|
+
def get_list_template_files
|
|
57
|
+
base_path = Rails.root.join("app", "apps", 'themes', current_theme.slug, 'views')
|
|
58
|
+
base_path = Pathname.new(base_path)
|
|
59
|
+
contained_files = []
|
|
60
|
+
Dir[File.join(base_path, '*.html.erb')].each do |full_path|
|
|
61
|
+
path = Pathname.new(full_path).relative_path_from(base_path).to_s
|
|
62
|
+
contained_files << path if path.include?('template_')
|
|
63
|
+
end
|
|
64
|
+
contained_files
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# get locale language
|
|
68
|
+
def current_locale
|
|
69
|
+
I18n.locale.to_s
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
#***************** administration HELPERS ***********************
|
|
73
|
+
# do common actions after site installation
|
|
74
|
+
# theme_key: theme slug of the theme for site
|
|
75
|
+
def site_after_install(site, theme_key = nil)
|
|
76
|
+
theme_key ||= site.get_theme_slug
|
|
77
|
+
_s = current_site
|
|
78
|
+
current_site(site)
|
|
79
|
+
PluginRoutes.system_info[:default_plugins].each{|p| plugin_install(p) } # auto install plugins
|
|
80
|
+
site_install_theme(theme_key)
|
|
81
|
+
current_site(_s)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# install theme for current site
|
|
85
|
+
def site_install_theme(key)
|
|
86
|
+
#uninstall previous theme
|
|
87
|
+
site_uninstall_theme()
|
|
88
|
+
|
|
89
|
+
# new theme
|
|
90
|
+
current_site.set_option('_theme', key)
|
|
91
|
+
theme = PluginRoutes.theme_info(key)
|
|
92
|
+
theme_model = current_site.themes.where(slug: key).first_or_create!{|t| t.name = theme[:name]; }
|
|
93
|
+
hook_run(theme, "on_active", theme_model)
|
|
94
|
+
PluginRoutes.reload
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# uninstall current theme form current site
|
|
98
|
+
def site_uninstall_theme()
|
|
99
|
+
key = current_site.get_theme_slug
|
|
100
|
+
theme = PluginRoutes.theme_info(key)
|
|
101
|
+
theme_model = current_site.get_theme(key)
|
|
102
|
+
hook_run(theme, "on_inactive", theme_model) if theme_model.present?
|
|
103
|
+
theme_model.destroy
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
# load all custom models customized by plugins or templates in custom_models.rb
|
|
108
|
+
def site_load_custom_models(site)
|
|
109
|
+
PluginRoutes.enabled_apps(site).each{ |app|
|
|
110
|
+
s = File.join(app["path"], "config", "custom_models.rb")
|
|
111
|
+
require_relative s if File.exist?(s)
|
|
112
|
+
}
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
#################### ONLY FOR CONSOLE ####################
|
|
116
|
+
# switch console sessions and redefine current for the console session
|
|
117
|
+
# site: Site model used as current site
|
|
118
|
+
# return nil
|
|
119
|
+
def site_console_switch(site = nil)
|
|
120
|
+
$current_site = site
|
|
121
|
+
site_load_custom_models($current_site)
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
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 ThemeHelper
|
|
10
|
+
|
|
11
|
+
def theme_init()
|
|
12
|
+
@_front_breadcrumb = []
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# assign the layout for this request
|
|
16
|
+
# asset: asset file name, if asset is present return full path to this asset
|
|
17
|
+
# layout_name: layout name
|
|
18
|
+
def theme_layout(layout_name, theme_name = nil)
|
|
19
|
+
path = "#{theme_name || current_theme.slug}/views/layouts/#{layout_name}"
|
|
20
|
+
self.class.send(:layout, path)
|
|
21
|
+
path
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# return theme full asset path
|
|
25
|
+
# theme_name: theme name, if nil, then will use current theme
|
|
26
|
+
# asset: asset file name, if asset is present return full path to this asset
|
|
27
|
+
# sample: <script src="<%= theme_asset_path("js/admin.js") %>"></script>
|
|
28
|
+
def theme_asset_path(asset = nil, theme_name = nil)
|
|
29
|
+
# "#{root_url(locale: nil)}assets/themes/#{theme_name || current_theme.slug }/assets/#{asset}"
|
|
30
|
+
"themes/#{theme_name || current_theme.slug }/assets/#{asset}"
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# return theme full view path
|
|
34
|
+
# theme_key: theme folder name
|
|
35
|
+
# view_name: name of the view or template
|
|
36
|
+
def theme_view(theme_key, view_name)
|
|
37
|
+
begin
|
|
38
|
+
p = "themes/" if request.env['PATH_INFO'].start_with?("/admin")
|
|
39
|
+
rescue
|
|
40
|
+
p = ""
|
|
41
|
+
end
|
|
42
|
+
"#{p if p.present?}#{theme_key}/views/#{view_name}"
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# return theme key for current theme file (helper|controller|view)
|
|
46
|
+
def self_theme_key
|
|
47
|
+
k = "app/apps/themes/"
|
|
48
|
+
f = caller.first
|
|
49
|
+
f.split(k).last.split("/").first if f.include?(k)
|
|
50
|
+
end
|
|
51
|
+
end
|