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,221 @@
|
|
|
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 CustomFieldsRead extend ActiveSupport::Concern
|
|
10
|
+
included do
|
|
11
|
+
has_many :fields, ->(object){ where(:object_class => object.class.to_s.gsub("Decorator",""))} , :class_name => "CustomField" ,foreign_key: :objectid
|
|
12
|
+
has_many :field_values, ->(object){where(object_class: object.class.to_s.gsub("Decorator",""))}, :class_name => "CustomFieldsRelationship", foreign_key: :objectid, dependent: :destroy
|
|
13
|
+
before_destroy :_destroy_custom_field_groups
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# get custom field groups for current object
|
|
18
|
+
# only: Post_type, Post, Category, PostTag, Widget, Site and a Custom model pre configured
|
|
19
|
+
# return collections CustomFieldGroup
|
|
20
|
+
# args: (Hash)
|
|
21
|
+
# kind: argument only for PostType Objects: (Post (Default) | Category | PostTag).
|
|
22
|
+
# If kind = "post_type" this will return groups for all post_types
|
|
23
|
+
# include_parent: (boolean, default false) Permit to recover groups from self + parent post_type (argument valid only for Post | PostTag | Category)
|
|
24
|
+
# args: (String) => is a value for kind attribute
|
|
25
|
+
def get_field_groups(args = {})
|
|
26
|
+
args = args.is_a?(String) ? {kind: args, include_parent: false } : {kind: "post", include_parent: false }.merge(args)
|
|
27
|
+
class_name = self.class.to_s.gsub("Decorator","")
|
|
28
|
+
case class_name
|
|
29
|
+
when 'Category','Post','PostTag'
|
|
30
|
+
if args[:include_parent]
|
|
31
|
+
self.post_type.site.custom_field_groups.where("(objectid = ? AND object_class = ?) OR (objectid = ? AND object_class = ?)", self.id || -1, class_name, self.post_type.id, "PostType_#{class_name}")
|
|
32
|
+
else
|
|
33
|
+
self.post_type.site.custom_field_groups.where(objectid: self.id || -1, object_class: class_name)
|
|
34
|
+
end
|
|
35
|
+
when 'Widget::Main'
|
|
36
|
+
self.site.custom_field_groups.where(object_class: class_name, objectid: self.id)
|
|
37
|
+
when 'Theme'
|
|
38
|
+
self.site.custom_field_groups.where(object_class: class_name, objectid: self.id)
|
|
39
|
+
when 'Site'
|
|
40
|
+
self.custom_field_groups.where(object_class: class_name)
|
|
41
|
+
when 'PostType'
|
|
42
|
+
if args[:kind] == "all"
|
|
43
|
+
self.site.custom_field_groups.where(object_class: ["PostType_Post", "PostType_Post", "PostType_PostTag", "PostType"], objectid: self.id )
|
|
44
|
+
elsif args[:kind] == "post_type"
|
|
45
|
+
self.site.custom_field_groups.where(object_class: class_name)
|
|
46
|
+
else
|
|
47
|
+
self.site.custom_field_groups.where(object_class: "PostType_#{args[:kind]}", objectid: self.id )
|
|
48
|
+
end
|
|
49
|
+
else # 'Plugin' or other class
|
|
50
|
+
self.site.custom_field_groups.where(object_class: class_name, objectid: self.id) if defined?(self.site)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# get custom field groups for current user
|
|
55
|
+
# return collections CustomFieldGroup
|
|
56
|
+
# site: site object
|
|
57
|
+
def get_user_field_groups(site)
|
|
58
|
+
class_name = self.class.to_s.gsub("Decorator","")
|
|
59
|
+
site.custom_field_groups.where(object_class: class_name)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
# get custom field value
|
|
64
|
+
# _key: custom field key
|
|
65
|
+
# if value is not present, then return default
|
|
66
|
+
def get_field_value(_key, _default = nil)
|
|
67
|
+
v = _default
|
|
68
|
+
v = get_field_values(_key).first rescue _default
|
|
69
|
+
v = _default if v.nil?
|
|
70
|
+
v
|
|
71
|
+
end
|
|
72
|
+
alias_method :get_field, :get_field_value
|
|
73
|
+
|
|
74
|
+
# get custom field values
|
|
75
|
+
# _key: custom field key
|
|
76
|
+
def get_field_values(_key)
|
|
77
|
+
self.field_values.where(custom_field_slug: _key).pluck(:value)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# ------------- new function update field value -------------
|
|
81
|
+
def update_field_value(_key, value = nil)
|
|
82
|
+
self.field_values.where(custom_field_slug: _key).first.update_column('value', value) rescue nil
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
# return all values
|
|
87
|
+
# {key1: value3, key2: [value1, value2], key3: value4}
|
|
88
|
+
def get_field_values_hash
|
|
89
|
+
fields = {}
|
|
90
|
+
self.field_values.to_a.uniq.each do |field_value|
|
|
91
|
+
custom_field = field_value.custom_fields
|
|
92
|
+
values = custom_field.values.where(objectid: self.id).pluck(:value)
|
|
93
|
+
fields[field_value.custom_field_slug] = custom_field.options[:multiple].to_s.to_bool ? values : values.first
|
|
94
|
+
end
|
|
95
|
+
fields.to_sym
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# return all custom fields
|
|
99
|
+
def get_fields_object(only_frontend = false)
|
|
100
|
+
fields = {}
|
|
101
|
+
self.field_values.to_a.uniq.each do |field_value|
|
|
102
|
+
custom_field = field_value.custom_fields
|
|
103
|
+
if !only_frontend || custom_field.options[:show_frontend].to_s.to_bool
|
|
104
|
+
values = custom_field.values.where(objectid: self.id).pluck(:value)
|
|
105
|
+
fields[field_value.custom_field_slug] = custom_field.attributes.merge(options: custom_field.options, values: custom_field.options[:multiple].to_s.to_bool ? values : values.first)
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
fields.to_sym
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
# add a custom field group for current model
|
|
113
|
+
# values:
|
|
114
|
+
# name: name for the group
|
|
115
|
+
# slug: key for group (if slug = _default => this will never show title and description)
|
|
116
|
+
# descr: description for the group (optional)
|
|
117
|
+
# Model supported: PostType, Category, Post, Posttag, Widget, Plugin, Theme, User and Custom models pre configured
|
|
118
|
+
# Note 1: If you need add fields for all post's or all categories, then you need to add the fields into the
|
|
119
|
+
# post_type.add_custom_field_group(values, kind = "Post")
|
|
120
|
+
# post_type.add_custom_field_group(values, kind = "Category")
|
|
121
|
+
# Note 2: If you need add fields for only the Post_type, you have to use options or metas
|
|
122
|
+
# return: CustomFieldGroup object
|
|
123
|
+
# kind: argument only for PostType model: (Post | Category | PostTag), default => Post. If kind = "" this will add group for all post_types
|
|
124
|
+
def add_custom_field_group(values, kind = "Post")
|
|
125
|
+
values = values.with_indifferent_access
|
|
126
|
+
group = get_field_groups(kind).where(slug: values[:slug]).first
|
|
127
|
+
unless group.present?
|
|
128
|
+
group = get_field_groups(kind).create(values)
|
|
129
|
+
end
|
|
130
|
+
group
|
|
131
|
+
end
|
|
132
|
+
alias_method :add_field_group, :add_custom_field_group
|
|
133
|
+
|
|
134
|
+
# Add custom fields for a default group:
|
|
135
|
+
# This will create a new group with slug=_default if it doesn't exist yet
|
|
136
|
+
# more details in add_manual_field(item, options) from custom field groups
|
|
137
|
+
# kind: argument only for PostType model: (Post | Category | PostTag), default => Post
|
|
138
|
+
def add_custom_field_to_default_group(item, options, kind = "Post")
|
|
139
|
+
g = get_field_groups(kind).where(slug: "_default").first
|
|
140
|
+
g = add_custom_field_group({name: "Default Field Group", slug: "_default"}, kind) unless g.present?
|
|
141
|
+
f = g.add_manual_field(item, options)
|
|
142
|
+
end
|
|
143
|
+
alias_method :add_field, :add_custom_field_to_default_group
|
|
144
|
+
|
|
145
|
+
# only custom field plugin (protected)
|
|
146
|
+
# example:
|
|
147
|
+
# id: custom_field_id
|
|
148
|
+
# {
|
|
149
|
+
# :key : {id: 123, values: ['uno','dos']}
|
|
150
|
+
# :key2 : {id: 455, values: ['uno','dos']}
|
|
151
|
+
# :key3 : {id: 4555, values: ['uno','dos']}
|
|
152
|
+
# }
|
|
153
|
+
def set_field_values(datas = {})
|
|
154
|
+
ids_old = self.field_values.pluck(:id)
|
|
155
|
+
ids_saved = []
|
|
156
|
+
if datas.present?
|
|
157
|
+
datas.each do |key, values|
|
|
158
|
+
if values[:values].present?
|
|
159
|
+
order_value = 0
|
|
160
|
+
values[:values].each do |value|
|
|
161
|
+
item = self.field_values.where({custom_field_id: values[:id], custom_field_slug: key, value: fix_meta_value(value)}).first_or_create!()
|
|
162
|
+
if defined?(item.id)
|
|
163
|
+
item.update_column('term_order', order_value)
|
|
164
|
+
ids_saved << item.id
|
|
165
|
+
order_value += 1
|
|
166
|
+
end
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
ids_deletes = ids_old - ids_saved
|
|
173
|
+
self.field_values.where(id: ids_deletes).destroy_all if ids_deletes.present?
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
# return field object for current model
|
|
177
|
+
def get_field_object(slug)
|
|
178
|
+
CustomField.where(parent_id: get_field_groups.pluck(:id), slug: slug).first || CustomField.where(slug: slug, parent_id: get_field_groups({include_parent: true})).first
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
# clear and register values for this custom field
|
|
182
|
+
# key: slug of the custom field
|
|
183
|
+
# value: array of values for multiple values support
|
|
184
|
+
# value: string value
|
|
185
|
+
def save_field_value(key, value, order = 0, clear = true)
|
|
186
|
+
field = get_field_object(key)
|
|
187
|
+
return unless field.present?
|
|
188
|
+
self.field_values.where({custom_field_slug: key}).destroy_all if clear
|
|
189
|
+
if value.is_a?(Array)
|
|
190
|
+
value.each do |val|
|
|
191
|
+
self.field_values.create!({custom_field_id: field.id, custom_field_slug: key, value: fix_meta_value(val), term_order: order})
|
|
192
|
+
end
|
|
193
|
+
else
|
|
194
|
+
self.field_values.create!({custom_field_id: field.id, custom_field_slug: key, value: fix_meta_value(value), term_order: order})
|
|
195
|
+
end
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
private
|
|
199
|
+
def fix_meta_value(value)
|
|
200
|
+
if (value.is_a?(Array) || value.is_a?(Hash))
|
|
201
|
+
value = value.to_json
|
|
202
|
+
end
|
|
203
|
+
value
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
def _destroy_custom_field_groups
|
|
207
|
+
class_name = self.class.to_s.gsub("Decorator","")
|
|
208
|
+
if ['Category','Post','PostTag'].include?(class_name)
|
|
209
|
+
# get_field_groups("Post").destroy_all
|
|
210
|
+
CustomFieldGroup.where(objectid: self.id, object_class: class_name).destroy_all
|
|
211
|
+
elsif ['PostType'].include?(class_name)
|
|
212
|
+
get_field_groups("Post").destroy_all
|
|
213
|
+
get_field_groups("Category").destroy_all
|
|
214
|
+
get_field_groups("PostTag").destroy_all
|
|
215
|
+
elsif ["NavMenuItem"].include?(class_name)
|
|
216
|
+
|
|
217
|
+
else
|
|
218
|
+
get_field_groups().destroy_all if get_field_groups.present?
|
|
219
|
+
end
|
|
220
|
+
end
|
|
221
|
+
end
|
|
@@ -0,0 +1,133 @@
|
|
|
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 Metas extend ActiveSupport::Concern
|
|
10
|
+
included do
|
|
11
|
+
has_many :metas, ->(object){where(object_class: object.class.to_s.gsub("Decorator",""))}, :class_name => "Meta", foreign_key: :objectid, dependent: :destroy
|
|
12
|
+
end
|
|
13
|
+
@meta_data = nil
|
|
14
|
+
|
|
15
|
+
# return collect meta for current model: Post, PostType, Categories, PostTag Site, User, Custom Fields
|
|
16
|
+
def meta
|
|
17
|
+
after_finding_meta
|
|
18
|
+
@meta_data
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Add meta with value or Update meta with key: key
|
|
22
|
+
# return true or false
|
|
23
|
+
def set_meta(key, value)
|
|
24
|
+
metas.where(key: key).update_or_create({value: fix_meta_value(value)})
|
|
25
|
+
after_finding_meta(true)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# return value of meta with key: key,
|
|
29
|
+
# if meta not exist, return default
|
|
30
|
+
def get_meta(key, default = nil)
|
|
31
|
+
option = metas.where(key: key).first
|
|
32
|
+
if option.present?
|
|
33
|
+
value = JSON.parse(option.value) rescue option.value
|
|
34
|
+
(value.is_a?(Hash) ? value.to_sym : value) rescue option.value
|
|
35
|
+
else
|
|
36
|
+
default
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
# delete meta
|
|
40
|
+
def delete_meta(key)
|
|
41
|
+
option = metas.where(key: key).first
|
|
42
|
+
option.destroy if option.present?
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
# return configurations for current object, sample: {"type":"post_type","object_id":"127"}
|
|
47
|
+
def options
|
|
48
|
+
after_finding_meta
|
|
49
|
+
@meta_data[:_default] || {}
|
|
50
|
+
end
|
|
51
|
+
# add configuration for current object
|
|
52
|
+
# key: attribute name
|
|
53
|
+
# value: attribute value
|
|
54
|
+
def set_option(key, value = nil)
|
|
55
|
+
return if key.nil?
|
|
56
|
+
data = options
|
|
57
|
+
data[key] = fix_meta_var(value)
|
|
58
|
+
set_meta('_default', data)
|
|
59
|
+
end
|
|
60
|
+
# return configuration for current object
|
|
61
|
+
# key: attribute name
|
|
62
|
+
# default: if attribute not exist, return default
|
|
63
|
+
# return value for attribute
|
|
64
|
+
def get_option(key = nil, default = nil)
|
|
65
|
+
values = options.present? ? options : {}
|
|
66
|
+
key = key.to_sym
|
|
67
|
+
values.has_key?(key) ? values[key] : default
|
|
68
|
+
end
|
|
69
|
+
# delete attribute from configuration
|
|
70
|
+
def delete_option(key)
|
|
71
|
+
values = options
|
|
72
|
+
key = key.to_sym
|
|
73
|
+
values.delete(key) if values.has_key?(key)
|
|
74
|
+
set_meta('_default', values)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# set multiple configuration
|
|
78
|
+
# h: {ket1: "sdsds", ff: "fdfdfdfd"}
|
|
79
|
+
def set_multiple_options(h = {})
|
|
80
|
+
if h.present?
|
|
81
|
+
data = options
|
|
82
|
+
h.each do |key, value|
|
|
83
|
+
data[key] = fix_meta_var(value)
|
|
84
|
+
end
|
|
85
|
+
set_meta('_default', data)
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# set multiple datas
|
|
90
|
+
# a: [{key: "sdsds", value: "fdfdfdfd"}, {key: "other", value: "texts"}]
|
|
91
|
+
# update: true => update data, false => create new data
|
|
92
|
+
def set_meta_data(a, update = false)
|
|
93
|
+
if a.present?
|
|
94
|
+
data = update ? meta[:set_meta_data] : {}
|
|
95
|
+
a.each do |row|
|
|
96
|
+
data[row[:key]] = fix_meta_var(row[:value])
|
|
97
|
+
end
|
|
98
|
+
set_meta('_set_meta_data', data)
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
# return meta data
|
|
102
|
+
def meta_data
|
|
103
|
+
meta[:_set_meta_data] || {}
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
private
|
|
107
|
+
|
|
108
|
+
def after_finding_meta(reset = false)
|
|
109
|
+
if @meta_data.nil? || reset
|
|
110
|
+
options = {}
|
|
111
|
+
if metas.count > 0
|
|
112
|
+
metas.all.each do |item|
|
|
113
|
+
options[item.key] = JSON.parse(item.value) rescue item.value
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
@meta_data = options.to_sym
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
def fix_meta_value(value)
|
|
121
|
+
if (value.is_a?(Array) || value.is_a?(Hash))
|
|
122
|
+
value = value.to_json
|
|
123
|
+
end
|
|
124
|
+
fix_meta_var(value)
|
|
125
|
+
end
|
|
126
|
+
def fix_meta_var(value)
|
|
127
|
+
if value.is_a?(String)
|
|
128
|
+
value = value.to_var
|
|
129
|
+
end
|
|
130
|
+
value
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
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 MetasSaved extend ActiveSupport::Concern
|
|
10
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
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 SitePublic
|
|
10
|
+
extend ActiveSupport::Concern
|
|
11
|
+
|
|
12
|
+
def get_post_type(key)
|
|
13
|
+
post_types.where(slug: key).first
|
|
14
|
+
end
|
|
15
|
+
def get_template_name
|
|
16
|
+
get_option('_theme', 'default')
|
|
17
|
+
end
|
|
18
|
+
def get_field(key)
|
|
19
|
+
get_field_value(key)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
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 CustomField < ActiveRecord::Base
|
|
10
|
+
include Metas
|
|
11
|
+
has_many :metas, ->{ where(object_class: 'CustomField')}, :class_name => "Meta", foreign_key: :objectid, dependent: :destroy
|
|
12
|
+
self.table_name = "custom_fields"
|
|
13
|
+
default_scope {order("custom_fields.field_order ASC")}
|
|
14
|
+
# status: nil -> visible on list group fields
|
|
15
|
+
attr_accessible :object_class, :objectid, :description, :parent_id, :count, :name, :slug, :field_order, :status, :is_repeat
|
|
16
|
+
validates :name, :object_class, presence: true
|
|
17
|
+
has_many :values, :class_name => "CustomFieldsRelationship", :foreign_key => :custom_field_id, dependent: :destroy
|
|
18
|
+
belongs_to :custom_field_group, class_name: "CustomFieldGroup"
|
|
19
|
+
belongs_to :parent, class_name: "CustomField", :foreign_key => :parent_id
|
|
20
|
+
|
|
21
|
+
scope :configuration, -> {where(parent_id: -1)}
|
|
22
|
+
scope :visible_group, -> {where(status: nil)}
|
|
23
|
+
|
|
24
|
+
before_validation :before_validating
|
|
25
|
+
|
|
26
|
+
private
|
|
27
|
+
|
|
28
|
+
def before_validating
|
|
29
|
+
self.slug = self.name if self.slug.blank?
|
|
30
|
+
self.slug = self.slug.to_s.parameterize
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
end
|
|
@@ -0,0 +1,121 @@
|
|
|
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 CustomFieldGroup < CustomField
|
|
10
|
+
# attrs required: name, slug, description
|
|
11
|
+
default_scope { where.not(object_class: '_fields').reorder('custom_fields.field_order ASC') }
|
|
12
|
+
|
|
13
|
+
has_many :metas, ->{ where(object_class: 'CustomFieldGroup')}, :class_name => "Meta", foreign_key: :objectid, dependent: :destroy
|
|
14
|
+
has_many :fields, -> {where(object_class: '_fields')}, :class_name => "CustomField", foreign_key: :parent_id, dependent: :destroy
|
|
15
|
+
belongs_to :site, :class_name => "Site", foreign_key: :parent_id
|
|
16
|
+
before_validation :before_validating
|
|
17
|
+
|
|
18
|
+
# ------------------- fields -----------------
|
|
19
|
+
# add fields to group
|
|
20
|
+
# item:
|
|
21
|
+
# - sample: {"name"=>"Label", "slug"=>"my_slug", "description"=>"my description (optional)"}
|
|
22
|
+
# - options (textbox sample): {"field_key":"text_box","multiple":"1","required":"1","translate":"1"}
|
|
23
|
+
|
|
24
|
+
# check all options for each case in Admin::CustomFieldsHelper
|
|
25
|
+
# for select, radio and checkboxes add:
|
|
26
|
+
# -- multiple_options: [{"title"=>"Option Title", "value"=>"2", "default"=>"1"}, {"title"=>"abcde", "value"=>"3"}]
|
|
27
|
+
# -- add default for default value
|
|
28
|
+
|
|
29
|
+
def add_manual_field(item, options)
|
|
30
|
+
c = get_field(item[:slug] || item["slug"])
|
|
31
|
+
return c if c.present?
|
|
32
|
+
|
|
33
|
+
field_item = self.fields.create!(item)
|
|
34
|
+
field_item.set_meta('_default', options)
|
|
35
|
+
auto_save_default_values(field_item, options)
|
|
36
|
+
field_item
|
|
37
|
+
end
|
|
38
|
+
alias_method :add_field, :add_manual_field
|
|
39
|
+
|
|
40
|
+
# return a field with slug = slug from current group
|
|
41
|
+
def get_field(slug)
|
|
42
|
+
self.fields.where(slug: slug).first
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# only used by form on admin panel (protected)
|
|
46
|
+
def add_fields(items, item_options)
|
|
47
|
+
ids_old = self.fields.pluck('custom_fields.id')
|
|
48
|
+
ids_saved = []
|
|
49
|
+
order_index = 0
|
|
50
|
+
if items.present?
|
|
51
|
+
items.each do |i,item|
|
|
52
|
+
item[:field_order] = order_index
|
|
53
|
+
options = item_options[i] || {}
|
|
54
|
+
if item[:id].present?
|
|
55
|
+
field_item = self.fields.find(item[:id])
|
|
56
|
+
saved = field_item.update(item)
|
|
57
|
+
else
|
|
58
|
+
field_item = self.fields.new(item)
|
|
59
|
+
saved = field_item.save
|
|
60
|
+
auto_save_default_values(field_item, options) if saved
|
|
61
|
+
end
|
|
62
|
+
if saved
|
|
63
|
+
field_item.set_meta('_default', options)
|
|
64
|
+
ids_saved << field_item.id
|
|
65
|
+
order_index += 1
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
ids_deletes = ids_old - ids_saved
|
|
70
|
+
self.fields.where(id: ids_deletes).destroy_all if ids_deletes.present?
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# generate the caption for this group
|
|
74
|
+
def get_caption
|
|
75
|
+
caption = ""
|
|
76
|
+
begin
|
|
77
|
+
case self.object_class
|
|
78
|
+
when "PostType_Post"
|
|
79
|
+
caption = "Fields for Contents in <b>#{self.site.post_types.find(self.objectid).decorate.the_title}</b>"
|
|
80
|
+
when 'PostType_Category'
|
|
81
|
+
caption = "Fields for Categories in <b>#{self.site.post_types.find(self.objectid).decorate.the_title}</b>"
|
|
82
|
+
when 'PostType_PostTag'
|
|
83
|
+
caption = "Fields for Post tags in <b>#{self.site.post_types.find(self.objectid).decorate.the_title}</b>"
|
|
84
|
+
when 'Widget::Main'
|
|
85
|
+
caption = "Fields for Widget <b>(#{Widget::Main.find(self.objectid).name.translate})</b>"
|
|
86
|
+
when 'Theme'
|
|
87
|
+
caption = "Field settings for Theme <b>(#{self.objectid})</b>"
|
|
88
|
+
when 'Site'
|
|
89
|
+
caption = "Field settings the site"
|
|
90
|
+
when 'PostType'
|
|
91
|
+
caption = "Fields for all <b>Post_Types</b>"
|
|
92
|
+
when 'Post'
|
|
93
|
+
p = Post.find(self.objectid).decorate
|
|
94
|
+
caption = "Fields for content <b>(#{p.the_title})</b>"
|
|
95
|
+
else # 'Plugin' or other class
|
|
96
|
+
caption = "Fields for <b>#{self.object_class}</b>"
|
|
97
|
+
end
|
|
98
|
+
rescue => e
|
|
99
|
+
Rails.logger.info "----------#{e.message}----#{self.attributes}"
|
|
100
|
+
end
|
|
101
|
+
caption
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
private
|
|
105
|
+
def before_validating
|
|
106
|
+
self.slug = "_group-#{self.name.to_s.parameterize}" unless self.slug.present?
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# auto save the default field values
|
|
110
|
+
def auto_save_default_values(field, options)
|
|
111
|
+
class_name = self.object_class.split("_").first
|
|
112
|
+
if ["Post", "Category", "Plugin", "Theme"].include?(class_name) && self.objectid.present? && options[:default_value].present?
|
|
113
|
+
if class_name == "Theme"
|
|
114
|
+
owner = class_name.constantize.where(id: self.objectid).first # owner model
|
|
115
|
+
else
|
|
116
|
+
owner = class_name.constantize.find(self.objectid) rescue class_name.constantize.where(slug: self.objectid).first # owner model
|
|
117
|
+
end
|
|
118
|
+
owner.field_values.create!({custom_field_id: field.id, custom_field_slug: field.slug, value: fix_meta_value(options["default_value"]||options[:default_value])}) if owner.present?
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|