trusty-cms 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -1
- data/CHANGELOG.md +1 -1
- data/Gemfile +12 -8
- data/Gemfile.lock +141 -82
- data/LICENSE.md +1 -1
- data/README.md +48 -5
- data/Vagrantfile +122 -0
- data/{public → app/assets}/images/admin/add_tab.png +0 -0
- data/app/assets/images/admin/animated-overlay.gif +0 -0
- data/{public → app/assets}/images/admin/avatar_32x32.png +0 -0
- data/{public → app/assets}/images/admin/avatar_64x64.png +0 -0
- data/{public → app/assets}/images/admin/avatar_96x96.png +0 -0
- data/{public → app/assets}/images/admin/brown_bottom_line.gif +0 -0
- data/{public → app/assets}/images/admin/calendar_down.gif +0 -0
- data/{public → app/assets}/images/admin/collapse.png +0 -0
- data/{public/images/admin/expand.png → app/assets/images/admin/collapsed.png} +0 -0
- data/{public → app/assets}/images/admin/draft_page.png +0 -0
- data/{public → app/assets}/images/admin/image.png +0 -0
- data/{public → app/assets}/images/admin/javascript.png +0 -0
- data/{public → app/assets}/images/admin/layout.png +0 -0
- data/{public → app/assets}/images/admin/metadata_toggle.png +0 -0
- data/{public → app/assets}/images/admin/minus.png +0 -0
- data/{public → app/assets}/images/admin/minus_disabled.png +0 -0
- data/{public → app/assets}/images/admin/minus_grey.png +0 -0
- data/{public → app/assets}/images/admin/navigation_secondary_separator.gif +0 -0
- data/{public → app/assets}/images/admin/page.png +0 -0
- data/{public → app/assets}/images/admin/plus.png +0 -0
- data/{public → app/assets}/images/admin/plus_disabled.png +0 -0
- data/{public → app/assets}/images/admin/plus_grey.png +0 -0
- data/{public → app/assets}/images/admin/popup_border_background.png +0 -0
- data/{public → app/assets}/images/admin/popup_border_bottom_left.png +0 -0
- data/{public → app/assets}/images/admin/popup_border_bottom_right.png +0 -0
- data/{public → app/assets}/images/admin/popup_border_top_left.png +0 -0
- data/{public → app/assets}/images/admin/popup_border_top_right.png +0 -0
- data/{public → app/assets}/images/admin/search.png +0 -0
- data/{public → app/assets}/images/admin/single_form_shadow.png +0 -0
- data/{public → app/assets}/images/admin/snippet.png +0 -0
- data/{public → app/assets}/images/admin/spinner.gif +0 -0
- data/{public → app/assets}/images/admin/status_background.png +0 -0
- data/{public → app/assets}/images/admin/status_bottom_left.png +0 -0
- data/{public → app/assets}/images/admin/status_bottom_right.png +0 -0
- data/{public → app/assets}/images/admin/status_spinner.gif +0 -0
- data/{public → app/assets}/images/admin/status_top_left.png +0 -0
- data/{public → app/assets}/images/admin/status_top_right.png +0 -0
- data/{public → app/assets}/images/admin/stylesheet.png +0 -0
- data/{public → app/assets}/images/admin/tab_close.png +0 -0
- data/app/assets/images/admin/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/app/assets/images/admin/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/app/assets/images/admin/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/app/assets/images/admin/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/app/assets/images/admin/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/app/assets/images/admin/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/app/assets/images/admin/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/app/assets/images/admin/ui-icons_222222_256x240.png +0 -0
- data/app/assets/images/admin/ui-icons_2e83ff_256x240.png +0 -0
- data/app/assets/images/admin/ui-icons_454545_256x240.png +0 -0
- data/app/assets/images/admin/ui-icons_888888_256x240.png +0 -0
- data/app/assets/images/admin/ui-icons_cd0a0a_256x240.png +0 -0
- data/{public → app/assets}/images/admin/upload.png +0 -0
- data/{public → app/assets}/images/admin/virtual_page.png +0 -0
- data/{public → app/assets}/images/radiant/radiant-badge-color.png +0 -0
- data/app/assets/javascripts/admin.js +35 -0
- data/app/assets/javascripts/admin/autopopulate-breadcrumb.js +35 -0
- data/{public → app/assets}/javascripts/admin/cookie.js +13 -13
- data/app/assets/javascripts/admin/datecheck.js +7 -0
- data/app/assets/javascripts/admin/dropdown.js +26 -0
- data/app/assets/javascripts/admin/jquery-ui.js +2371 -0
- data/app/assets/javascripts/admin/jquery.treetable.js +629 -0
- data/app/assets/javascripts/admin/jquery.validate.min.js +4 -0
- data/app/assets/javascripts/admin/modernizr.js +409 -0
- data/app/assets/javascripts/admin/more-or-less.js +38 -0
- data/app/assets/javascripts/admin/page-edit.js +51 -0
- data/app/assets/javascripts/admin/pagefield.js +35 -0
- data/app/assets/javascripts/admin/persist.min.js +31 -0
- data/app/assets/javascripts/admin/popup.js +40 -0
- data/app/assets/javascripts/admin/preview.js +40 -0
- data/app/assets/javascripts/admin/tabcontrol.js.erb +81 -0
- data/app/assets/javascripts/admin/tags.js +41 -0
- data/app/assets/javascripts/admin/treetable.js +50 -0
- data/app/assets/javascripts/admin/utilities.js +5 -0
- data/app/assets/javascripts/admin/validation.js +7 -0
- data/app/assets/javascripts/admin/validations/user_validations.js +21 -0
- data/app/assets/javascripts/ckeditor/config.js +10 -0
- data/{config/initializers/configuration_extensions.rb → app/assets/javascripts/ckeditor/contents.css} +0 -0
- data/app/assets/javascripts/notes.md +40 -0
- data/app/assets/stylesheets/admin/_base.scss +17 -0
- data/app/assets/stylesheets/admin/main.scss +34 -0
- data/app/assets/stylesheets/admin/modules/_boxes.scss +7 -0
- data/app/assets/stylesheets/admin/modules/_gradients.scss +5 -0
- data/app/assets/stylesheets/admin/modules/_links.scss +24 -0
- data/app/assets/stylesheets/admin/partials/_actions.scss +118 -0
- data/app/assets/stylesheets/admin/partials/_avatars.scss +12 -0
- data/app/assets/stylesheets/admin/partials/_content.scss +74 -0
- data/app/assets/stylesheets/admin/partials/_dateinput.scss +71 -0
- data/app/assets/stylesheets/admin/partials/_deprecated.scss +65 -0
- data/app/assets/stylesheets/admin/partials/_dropdown.scss +34 -0
- data/app/assets/stylesheets/admin/partials/_footer.scss +14 -0
- data/app/assets/stylesheets/admin/partials/_forms.scss +419 -0
- data/app/assets/stylesheets/admin/partials/_header.scss +135 -0
- data/app/assets/stylesheets/admin/partials/_index.scss +198 -0
- data/app/assets/stylesheets/admin/partials/_jquery-ui-structure.scss +258 -0
- data/app/assets/stylesheets/admin/partials/_jquery-ui-theme.scss +410 -0
- data/app/assets/stylesheets/admin/partials/_jquery-ui.scss +650 -0
- data/app/assets/stylesheets/admin/partials/_layout.scss +14 -0
- data/app/assets/stylesheets/admin/partials/_messages.scss +13 -0
- data/app/assets/stylesheets/admin/partials/_popup.scss +263 -0
- data/app/assets/stylesheets/admin/partials/_tabcontrol.scss +94 -0
- data/app/assets/stylesheets/admin/partials/_toolbar.scss +40 -0
- data/app/assets/stylesheets/admin/partials/_treetable.scss +120 -0
- data/app/assets/stylesheets/admin/partials/_typography.scss +77 -0
- data/app/assets/stylesheets/admin/partials/_validations.scss +22 -0
- data/app/controllers/admin/configuration_controller.rb +9 -9
- data/app/controllers/admin/extensions_controller.rb +1 -1
- data/app/controllers/admin/page_parts_controller.rb +1 -1
- data/app/controllers/admin/pages_controller.rb +8 -5
- data/app/controllers/admin/preferences_controller.rb +8 -25
- data/app/controllers/admin/resource_controller.rb +19 -20
- data/app/controllers/admin/users_controller.rb +7 -7
- data/app/controllers/admin/welcome_controller.rb +9 -9
- data/app/controllers/application_controller.rb +13 -24
- data/app/controllers/site_controller.rb +2 -1
- data/app/helpers/admin/configuration_helper.rb +20 -19
- data/app/helpers/admin/extensions_helper.rb +1 -1
- data/app/helpers/admin/layouts_helper.rb +1 -19
- data/app/helpers/admin/node_helper.rb +21 -7
- data/app/helpers/admin/pages_helper.rb +4 -92
- data/app/helpers/admin/preferences_helper.rb +1 -1
- data/app/helpers/admin/regions_helper.rb +5 -4
- data/app/helpers/application_helper.rb +62 -64
- data/app/models/deprecated_tags.rb +1 -21
- data/app/models/file_not_found_page.rb +8 -8
- data/app/models/layout.rb +3 -2
- data/app/models/menu_renderer.rb +7 -7
- data/app/models/page.rb +8 -7
- data/app/models/page_context.rb +10 -10
- data/app/models/page_field.rb +1 -0
- data/app/models/page_part.rb +5 -5
- data/app/models/standard_tags.rb +95 -75
- data/app/models/status.rb +8 -8
- data/app/models/text_filter.rb +5 -5
- data/app/models/trusty_cms/config.rb +36 -42
- data/app/models/trusty_cms/page_response_cache_director.rb +2 -1
- data/app/models/user.rb +1 -10
- data/app/models/user_action_observer.rb +5 -5
- data/app/views/admin/configuration/edit.html.haml +5 -5
- data/app/views/admin/configuration/show.html.haml +11 -11
- data/app/views/admin/extensions/index.html.haml +4 -4
- data/app/views/admin/layouts/_form.html.haml +6 -7
- data/app/views/admin/layouts/_popups.html.haml +4 -0
- data/app/views/admin/layouts/edit.html.haml +4 -2
- data/app/views/admin/layouts/new.html.haml +1 -1
- data/app/views/admin/layouts/remove.html.haml +3 -3
- data/app/views/admin/page_fields/_page_field.html.haml +3 -2
- data/app/views/admin/page_parts/_page_part.html.haml +4 -5
- data/app/views/admin/pages/_fields.html.haml +2 -3
- data/app/views/admin/pages/_meta_row.html.haml +2 -2
- data/app/views/admin/pages/_node.html.haml +4 -9
- data/app/views/admin/pages/_popups.html.haml +9 -5
- data/app/views/admin/pages/children.html.haml +5 -1
- data/app/views/admin/pages/edit.html.haml +1 -3
- data/app/views/admin/pages/index.html.haml +2 -2
- data/app/views/admin/pages/new.html.haml +2 -4
- data/app/views/admin/pages/remove.html.haml +8 -7
- data/app/views/admin/preferences/edit.html.haml +14 -14
- data/app/views/admin/references/_tag_reference.haml +1 -1
- data/app/views/admin/references/filters.haml +1 -1
- data/app/views/admin/references/tags.haml +9 -27
- data/app/views/admin/users/_avatar.html.haml +2 -2
- data/app/views/admin/users/_form.html.haml +16 -16
- data/app/views/admin/users/_password_fields.html.haml +3 -3
- data/app/views/admin/users/edit.html.haml +1 -1
- data/app/views/admin/users/new.html.haml +2 -2
- data/app/views/admin/users/remove.html.haml +4 -4
- data/app/views/admin/welcome/login.html.haml +6 -6
- data/app/views/layouts/application.html.haml +22 -11
- data/app/views/site/not_found.html.haml +1 -1
- data/app/views/site/show_page.html.haml +1 -0
- data/bin/ci/before_script +0 -5
- data/config.ru +4 -0
- data/config/application.rb +118 -108
- data/config/boot.rb +1 -1
- data/config/database.mysql.yml +3 -6
- data/config/environments/development.rb +17 -5
- data/config/environments/production.rb +20 -3
- data/config/environments/test.rb +17 -0
- data/config/initializers/active_record_extensions.rb +1 -1
- data/config/initializers/haml.rb +1 -1
- data/config/initializers/rails_patch.rb +1 -1
- data/config/initializers/secret_token.rb +7 -0
- data/config/initializers/string_extensions.rb +1 -1
- data/config/initializers/symbol_extensions.rb +1 -1
- data/config/initializers/{radiant_config.rb → trusty_cms_config.rb} +2 -2
- data/config/locales/en.yml +33 -33
- data/config/locales/en_available_tags.yml +62 -62
- data/config/routes.rb +18 -10
- data/db/migrate/001_create_radiant_tables.rb +3 -3
- data/db/migrate/002_insert_initial_data.rb +2 -2
- data/db/migrate/005_add_virtual_column_to_page.rb +1 -1
- data/db/migrate/006_integer_columns_to_boolean.rb +9 -9
- data/db/migrate/007_remove_virtual_column_from_page.rb +1 -1
- data/db/migrate/008_add_virtual_column_to_page_again.rb +1 -1
- data/db/migrate/010_merge_behaviors_and_pages.rb +6 -6
- data/db/migrate/014_rename_config_default_parts_key.rb +3 -3
- data/db/migrate/015_add_optimistic_locking.rb +2 -2
- data/db/migrate/020_add_session_info_to_users.rb +1 -1
- data/db/migrate/20081203140407_add_indexes.rb +2 -2
- data/db/migrate/20090226140109_add_user_language.rb +2 -2
- data/db/migrate/20100805155020_convert_page_metas.rb +1 -1
- data/db/migrate/20110902203823_add_allowed_children_cache_to_pages.rb +1 -1
- data/db/migrate/20111016150725_extend_page_part_content_limit.rb +1 -1
- data/db/migrate/20120209231801_change_pages_allowed_children_cache_to_text.rb +3 -4
- data/db/schema.rb +0 -6
- data/lib/active_record_extensions/active_record_extensions.rb +3 -3
- data/lib/annotatable.rb +3 -3
- data/lib/configuration_extensions/configuration_extensions.rb +7 -42
- data/lib/generators/extension/extension_generator.rb +11 -11
- data/lib/generators/extension/templates/README.md +1 -1
- data/lib/generators/extension/templates/cucumber.yml +1 -1
- data/lib/generators/extension/templates/cucumber_env.rb +2 -2
- data/lib/generators/extension/templates/cucumber_paths.rb +7 -7
- data/lib/generators/extension/templates/en.yml +1 -1
- data/lib/generators/extension/templates/functional_test.rb +3 -3
- data/lib/generators/extension/templates/migration.rb +4 -4
- data/lib/generators/extension/templates/routes.rb +1 -1
- data/lib/generators/extension/templates/spec_helper.rb +1 -1
- data/lib/generators/extension/templates/tasks.rake +5 -5
- data/lib/generators/extension/templates/test_helper.rb +5 -5
- data/lib/generators/extension_controller/extension_controller_generator.rb +11 -11
- data/lib/generators/extension_controller/templates/helper.rb +1 -1
- data/lib/generators/extension_controller/templates/helper_spec.rb +2 -2
- data/lib/generators/extension_controller/templates/view.html.erb +1 -1
- data/lib/generators/extension_controller/templates/view_spec.rb +1 -1
- data/lib/generators/extension_mailer/extension_mailer_generator.rb +10 -10
- data/lib/generators/extension_mailer/templates/mailer.rb +2 -2
- data/lib/generators/extension_migration/extension_migration_generator.rb +5 -5
- data/lib/generators/extension_model/extension_model_generator.rb +10 -10
- data/lib/generators/generator_base_extension.rb +1 -1
- data/lib/generators/instance/instance_generator.rb +14 -14
- data/lib/generators/instance/templates/databases/db2.yml +3 -3
- data/lib/generators/instance/templates/databases/mysql.yml +2 -2
- data/lib/generators/instance/templates/instance_boot.rb +4 -4
- data/lib/generators/instance/templates/instance_environment.rb +13 -3
- data/lib/generators/instance/templates/instance_radiant_config.rb +2 -2
- data/lib/generators/language_extension/language_extension_generator.rb +14 -14
- data/lib/generators/language_extension/templates/available_tags.yml +91 -91
- data/lib/generators/language_extension/templates/cucumber.yml +1 -1
- data/lib/generators/language_extension/templates/cucumber_env.rb +3 -3
- data/lib/generators/language_extension/templates/cucumber_paths.rb +4 -4
- data/lib/generators/language_extension/templates/extension.rb +1 -1
- data/lib/generators/language_extension/templates/functional_test.rb +3 -3
- data/lib/generators/language_extension/templates/lang.yml +39 -39
- data/lib/generators/language_extension/templates/spec_helper.rb +1 -1
- data/lib/generators/language_extension/templates/tasks.rake +3 -3
- data/lib/generators/language_extension/templates/test_helper.rb +5 -5
- data/lib/inheritable_class_attributes.rb +11 -11
- data/lib/local_time.rb +2 -2
- data/lib/login_system.rb +5 -6
- data/lib/method_observer.rb +9 -9
- data/lib/simpleton.rb +7 -7
- data/lib/string_extensions/string_extensions.rb +5 -5
- data/lib/symbol_extensions/symbol_extensions.rb +1 -1
- data/lib/tasks/database.rake +17 -20
- data/lib/tasks/extensions.rake +2 -2
- data/lib/tasks/framework.rake +13 -13
- data/lib/tasks/instance.rake +1 -1
- data/lib/tasks/radiant_config.rake +3 -3
- data/lib/tasks/translate.rake +10 -10
- data/lib/tasks/undefine.rake +1 -5
- data/lib/translation_support.rb +7 -7
- data/lib/trusty_cms.rb +1 -1
- data/lib/trusty_cms/admin_ui.rb +34 -34
- data/lib/trusty_cms/admin_ui/region_partials.rb +3 -3
- data/lib/trusty_cms/admin_ui/region_set.rb +5 -5
- data/lib/trusty_cms/available_locales.rb +1 -1
- data/lib/trusty_cms/config/definition.rb +21 -21
- data/lib/trusty_cms/engine.rb +4 -7
- data/lib/trusty_cms/extension.rb +15 -15
- data/lib/trusty_cms/extension/script.rb +7 -7
- data/lib/trusty_cms/extension_loader.rb +23 -11
- data/lib/trusty_cms/extension_migrator.rb +9 -9
- data/lib/trusty_cms/extension_path.rb +23 -23
- data/lib/trusty_cms/initializer.rb +33 -15
- data/lib/trusty_cms/pagination/link_renderer.rb +3 -3
- data/lib/trusty_cms/resource_responses.rb +15 -15
- data/lib/trusty_cms/setup.rb +35 -33
- data/lib/trusty_cms/taggable.rb +18 -18
- data/public/404.html +1 -1
- data/public/500.html +1 -1
- data/public/loading-iframe.html +1 -1
- data/public/robots.txt +1 -1
- data/script/rails +0 -0
- data/spec/features/admin_login_spec.rb +92 -0
- data/spec/features/config_spec.rb +34 -0
- data/spec/features/javascript_smoke_spec.rb +59 -0
- data/spec/features/layouts_spec.rb +49 -0
- data/spec/features/pages_spec.rb +55 -0
- data/spec/fixtures/users.yml +16 -0
- data/spec/helpers/regions_helper_spec.rb +16 -0
- data/spec/rails_helper.rb +74 -0
- data/spec/spec_helper.rb +78 -0
- data/spec/support/custom_actions.rb +9 -0
- data/trusty_cms.gemspec +22 -25
- metadata +393 -242
- checksums.yaml +0 -15
- data/config/compass.config +0 -15
- data/config/database.db2.yml +0 -20
- data/config/database.postgresql.yml +0 -25
- data/config/database.sqlite.yml +0 -16
- data/config/database.sqlserver.yml +0 -20
- data/config/initializers/object_extensions.rb +0 -1
- data/config/preinitializer.rb +0 -18
- data/lib/object_extensions/object_extensions.rb +0 -5
- data/lib/tasks/prototype.rake +0 -31
- data/lib/tasks/release.rake +0 -131
- data/lib/trusty_cms/cache.rb +0 -100
- data/public/javascripts/admin/application.js +0 -94
- data/public/javascripts/admin/codearea.js +0 -165
- data/public/javascripts/admin/controls.js +0 -965
- data/public/javascripts/admin/dateinput.js +0 -402
- data/public/javascripts/admin/dragdrop.js +0 -974
- data/public/javascripts/admin/dropdown.js +0 -216
- data/public/javascripts/admin/effects.js +0 -1122
- data/public/javascripts/admin/lowpro.js +0 -340
- data/public/javascripts/admin/overrides.js +0 -1
- data/public/javascripts/admin/page_preview.js +0 -41
- data/public/javascripts/admin/pagefield.js +0 -54
- data/public/javascripts/admin/pagestatus.js +0 -17
- data/public/javascripts/admin/popup.js +0 -339
- data/public/javascripts/admin/prototype.js +0 -4874
- data/public/javascripts/admin/ruledtable.js +0 -13
- data/public/javascripts/admin/shortcuts.js +0 -33
- data/public/javascripts/admin/sitemap.js +0 -149
- data/public/javascripts/admin/status.js +0 -233
- data/public/javascripts/admin/tabcontrol.js +0 -123
- data/public/javascripts/admin/toggle.js +0 -430
- data/public/javascripts/admin/utility.js +0 -53
- data/public/javascripts/admin/validationerror.js +0 -18
- data/public/stylesheets/sass/admin/_base.sass +0 -18
- data/public/stylesheets/sass/admin/main.sass +0 -27
- data/public/stylesheets/sass/admin/modules/_boxes.sass +0 -6
- data/public/stylesheets/sass/admin/modules/_gradients.sass +0 -4
- data/public/stylesheets/sass/admin/modules/_links.sass +0 -18
- data/public/stylesheets/sass/admin/overrides.sass +0 -2
- data/public/stylesheets/sass/admin/partials/_actions.sass +0 -96
- data/public/stylesheets/sass/admin/partials/_avatars.sass +0 -10
- data/public/stylesheets/sass/admin/partials/_content.sass +0 -58
- data/public/stylesheets/sass/admin/partials/_dateinput.sass +0 -62
- data/public/stylesheets/sass/admin/partials/_deprecated.sass +0 -55
- data/public/stylesheets/sass/admin/partials/_dropdown.sass +0 -28
- data/public/stylesheets/sass/admin/partials/_footer.sass +0 -12
- data/public/stylesheets/sass/admin/partials/_forms.sass +0 -322
- data/public/stylesheets/sass/admin/partials/_header.sass +0 -114
- data/public/stylesheets/sass/admin/partials/_index.sass +0 -147
- data/public/stylesheets/sass/admin/partials/_layout.sass +0 -10
- data/public/stylesheets/sass/admin/partials/_messages.sass +0 -10
- data/public/stylesheets/sass/admin/partials/_popup.sass +0 -213
- data/public/stylesheets/sass/admin/partials/_tabcontrol.sass +0 -72
- data/public/stylesheets/sass/admin/partials/_toolbar.sass +0 -31
- data/public/stylesheets/sass/admin/partials/_typography.sass +0 -60
- data/public/stylesheets/sass/admin/partials/_validations.sass +0 -19
- data/rails/init.rb +0 -1
- data/script/about +0 -4
- data/script/breakpointer +0 -3
- data/script/console +0 -3
- data/script/dbconsole +0 -3
- data/script/destroy +0 -3
- data/script/generate +0 -3
- data/script/performance/benchmarker +0 -3
- data/script/performance/profiler +0 -3
- data/script/performance/request +0 -3
- data/script/plugin +0 -3
- data/script/process/inspector +0 -3
- data/script/process/reaper +0 -3
- data/script/process/spawner +0 -3
- data/script/process/spinner +0 -3
- data/script/runner +0 -3
- data/script/server +0 -3
- data/script/version +0 -5
- data/spec/ci/database.postgresql.yml +0 -4
- data/spec/ci/database.sqlite.yml +0 -3
@@ -12,31 +12,11 @@ module DeprecatedTags
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
deprecated_tag 'meta:description', :deadline => '2.0' do |tag|
|
16
|
-
show_tag = tag.attr['tag'] != 'false' || false
|
17
|
-
description = CGI.escapeHTML(tag.locals.page.field(:description).try(:content))
|
18
|
-
if show_tag
|
19
|
-
"<meta name=\"description\" content=\"#{description}\" />"
|
20
|
-
else
|
21
|
-
description
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
deprecated_tag 'meta:keywords', :deadline => '2.0' do |tag|
|
26
|
-
show_tag = tag.attr['tag'] != 'false' || false
|
27
|
-
keywords = CGI.escapeHTML(tag.locals.page.field(:keywords).try(:content))
|
28
|
-
if show_tag
|
29
|
-
"<meta name=\"keywords\" content=\"#{keywords}\" />"
|
30
|
-
else
|
31
|
-
keywords
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
15
|
deprecated_tag "rfc1123_date", :deadline => '2.0' do |tag|
|
36
16
|
page = tag.locals.page
|
37
17
|
if date = page.published_at || page.created_at
|
38
18
|
CGI.rfc1123_date(date.to_time)
|
39
19
|
end
|
40
20
|
end
|
41
|
-
|
21
|
+
|
42
22
|
end
|
@@ -1,32 +1,32 @@
|
|
1
1
|
class FileNotFoundPage < Page
|
2
|
-
|
2
|
+
|
3
3
|
def allowed_children
|
4
4
|
[]
|
5
5
|
end
|
6
|
-
|
6
|
+
|
7
7
|
description %{
|
8
8
|
A "File Not Found" page can be used to override the default error
|
9
9
|
page in the event that a page is not found among a page's children.
|
10
|
-
|
10
|
+
|
11
11
|
To create a "File Not Found" error page for an entire Web site, create
|
12
12
|
a page that is a child of the root page and assign it "File Not Found"
|
13
13
|
page type.
|
14
14
|
}
|
15
|
-
|
15
|
+
|
16
16
|
tag "attempted_url" do |tag|
|
17
17
|
CGI.escapeHTML(request.request_uri) unless request.nil?
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
def virtual?
|
21
21
|
true
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
def response_code
|
25
25
|
404
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
def cache?
|
29
29
|
false
|
30
30
|
end
|
31
|
-
|
31
|
+
|
32
32
|
end
|
data/app/models/layout.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
class Layout < ActiveRecord::Base
|
2
|
-
|
2
|
+
attr_protected :created_at, :updated_at
|
3
|
+
|
3
4
|
# Default Order
|
4
5
|
default_scope :order => "name"
|
5
6
|
|
@@ -12,4 +13,4 @@ class Layout < ActiveRecord::Base
|
|
12
13
|
validates_presence_of :name
|
13
14
|
validates_uniqueness_of :name
|
14
15
|
validates_length_of :name, :maximum => 100
|
15
|
-
end
|
16
|
+
end
|
data/app/models/menu_renderer.rb
CHANGED
@@ -38,7 +38,7 @@ module MenuRenderer
|
|
38
38
|
(allowed_children_cache.to_s.split(',') - Array(excluded_class_names)).map do |name|
|
39
39
|
begin
|
40
40
|
name.constantize
|
41
|
-
rescue LoadError, NameError =>
|
41
|
+
rescue LoadError, NameError => _
|
42
42
|
nil
|
43
43
|
end
|
44
44
|
end.compact
|
@@ -64,7 +64,7 @@ module MenuRenderer
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def menu_list
|
67
|
-
view.content_tag :ul, menu_items.join, :class => 'menu', :id => "allowed_children_#{id}"
|
67
|
+
view.content_tag :ul, menu_items.join.html_safe, :class => 'menu', :id => "allowed_children_#{id}"
|
68
68
|
end
|
69
69
|
|
70
70
|
def remove_link
|
@@ -80,15 +80,15 @@ module MenuRenderer
|
|
80
80
|
end
|
81
81
|
|
82
82
|
def disabled_add_child_link
|
83
|
-
view.content_tag :span, view.image('plus_disabled') + '
|
83
|
+
view.content_tag :span, view.image('plus_disabled') + ' Add Child', :class => 'action disabled'
|
84
84
|
end
|
85
85
|
|
86
86
|
def add_child_link
|
87
|
-
view.link_to((view.image('plus') + '
|
87
|
+
view.link_to((view.image('plus') + ' Add Child'), view.new_admin_page_child_path(self, :page_class => default_child.name), :class => "action")
|
88
88
|
end
|
89
89
|
|
90
90
|
def add_child_link_with_menu_hook
|
91
|
-
view.link_to((view.image('plus') + '
|
91
|
+
view.link_to((view.image('plus') + ' Add Child'), "#allowed_children_#{id}", :class => "action dropdown")
|
92
92
|
end
|
93
93
|
|
94
94
|
def add_child_menu
|
@@ -127,7 +127,7 @@ module MenuRenderer
|
|
127
127
|
text = link_text_for_child_class(child_class.name)
|
128
128
|
view.link_to(text, path, :title => title)
|
129
129
|
end
|
130
|
-
|
130
|
+
|
131
131
|
def link_text_for_child_class(given_class_name)
|
132
132
|
translation_key = if given_class_name == 'Page' || given_class_name.blank?
|
133
133
|
'normal_page'
|
@@ -137,4 +137,4 @@ module MenuRenderer
|
|
137
137
|
fallback = given_class_name == 'Page' ? 'Page' : given_class_name.sub('Page','').titleize
|
138
138
|
I18n.t(translation_key, :default => fallback)
|
139
139
|
end
|
140
|
-
end
|
140
|
+
end
|
data/app/models/page.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'acts_as_tree'
|
2
2
|
|
3
3
|
class Page < ActiveRecord::Base
|
4
|
+
attr_protected :created_at, :updated_at
|
4
5
|
|
5
6
|
class MissingRootPageError < StandardError
|
6
7
|
def initialize(message = 'Database missing root page'); super end
|
@@ -41,7 +42,7 @@ class Page < ActiveRecord::Base
|
|
41
42
|
class_attribute :default_child
|
42
43
|
self.default_child = self
|
43
44
|
|
44
|
-
|
45
|
+
self.inheritance_column = 'class_name'
|
45
46
|
|
46
47
|
def layout_with_inheritance
|
47
48
|
unless layout_without_inheritance
|
@@ -100,15 +101,15 @@ class Page < ActiveRecord::Base
|
|
100
101
|
def published?
|
101
102
|
status == Status[:published]
|
102
103
|
end
|
103
|
-
|
104
|
+
|
104
105
|
def scheduled?
|
105
106
|
status == Status[:scheduled]
|
106
107
|
end
|
107
|
-
|
108
|
+
|
108
109
|
def status
|
109
110
|
Status.find(self.status_id)
|
110
111
|
end
|
111
|
-
|
112
|
+
|
112
113
|
def status=(value)
|
113
114
|
self.status_id = value.id
|
114
115
|
end
|
@@ -202,13 +203,13 @@ class Page < ActiveRecord::Base
|
|
202
203
|
|
203
204
|
def update_status
|
204
205
|
self.published_at = Time.zone.now if published? && self.published_at == nil
|
205
|
-
|
206
|
+
|
206
207
|
if self.published_at != nil && (published? || scheduled?)
|
207
208
|
self[:status_id] = Status[:scheduled].id if self.published_at > Time.zone.now
|
208
209
|
self[:status_id] = Status[:published].id if self.published_at <= Time.zone.now
|
209
210
|
end
|
210
211
|
|
211
|
-
true
|
212
|
+
true
|
212
213
|
end
|
213
214
|
|
214
215
|
def to_xml(options={}, &block)
|
@@ -260,7 +261,7 @@ class Page < ActiveRecord::Base
|
|
260
261
|
@display_name = @display_name + " - not installed" if missing? && @display_name !~ /not installed/
|
261
262
|
@display_name
|
262
263
|
end
|
263
|
-
|
264
|
+
|
264
265
|
def display_name=(string)
|
265
266
|
display_name(string)
|
266
267
|
end
|
data/app/models/page_context.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
class PageContext < Radius::Context
|
2
|
-
|
2
|
+
|
3
3
|
attr_reader :page
|
4
|
-
|
4
|
+
|
5
5
|
def initialize(page)
|
6
6
|
super
|
7
7
|
@page = page
|
@@ -10,14 +10,14 @@ class PageContext < Radius::Context
|
|
10
10
|
define_tag(name) { |tag_binding| page.render_tag(name, tag_binding) }
|
11
11
|
end
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
def dup
|
15
15
|
rv = self.class.new(page)
|
16
16
|
rv.globals = globals.dup
|
17
17
|
rv.definitions = definitions.dup
|
18
18
|
rv
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
def render_tag(name, attributes = {}, &block)
|
22
22
|
binding = @tag_binding_stack.last
|
23
23
|
locals = binding ? binding.locals : globals
|
@@ -28,26 +28,26 @@ class PageContext < Radius::Context
|
|
28
28
|
@tag_binding_stack.pop unless @tag_binding_stack.last == binding
|
29
29
|
render_error_message(e.message)
|
30
30
|
end
|
31
|
-
|
31
|
+
|
32
32
|
def tag_missing(name, attributes = {}, &block)
|
33
33
|
super
|
34
34
|
rescue Radius::UndefinedTagError => e
|
35
35
|
raise StandardTags::TagError.new(e.message)
|
36
36
|
end
|
37
|
-
|
37
|
+
|
38
38
|
private
|
39
|
-
|
39
|
+
|
40
40
|
def render_error_message(message)
|
41
41
|
"<div><strong>#{message}</strong></div>"
|
42
42
|
end
|
43
|
-
|
43
|
+
|
44
44
|
def set_process_variables(page)
|
45
45
|
page.request ||= @page.request
|
46
46
|
page.response ||= @page.response
|
47
47
|
end
|
48
|
-
|
48
|
+
|
49
49
|
def raise_errors?
|
50
50
|
Rails.env != 'production'
|
51
51
|
end
|
52
|
-
|
52
|
+
|
53
53
|
end
|
data/app/models/page_field.rb
CHANGED
data/app/models/page_part.rb
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
class PagePart < ActiveRecord::Base
|
2
|
-
|
2
|
+
attr_accessible :name, :filter_id, :content
|
3
|
+
|
3
4
|
# Default Order
|
4
5
|
default_scope :order => 'name'
|
5
|
-
|
6
|
+
|
6
7
|
# Associations
|
7
8
|
belongs_to :page
|
8
|
-
|
9
|
+
|
9
10
|
# Validations
|
10
11
|
validates_presence_of :name
|
11
12
|
validates_length_of :name, :maximum => 100
|
12
13
|
validates_length_of :filter_id, :maximum => 25, :allow_nil => true
|
13
|
-
|
14
|
+
|
14
15
|
object_id_attr :filter, TextFilter
|
15
16
|
|
16
17
|
def after_initialize
|
17
18
|
self.filter_id ||= TrustyCms::Config['defaults.page.filter'] if new_record?
|
18
19
|
end
|
19
|
-
|
20
20
|
end
|
data/app/models/standard_tags.rb
CHANGED
@@ -15,7 +15,7 @@ module StandardTags
|
|
15
15
|
Causes the tags referring to a page's attributes to refer to the current page.
|
16
16
|
|
17
17
|
*Usage:*
|
18
|
-
|
18
|
+
|
19
19
|
<pre><code><r:page>...</r:page></code></pre>
|
20
20
|
}
|
21
21
|
tag 'page' do |tag|
|
@@ -44,7 +44,7 @@ module StandardTags
|
|
44
44
|
Gives access to a page's children.
|
45
45
|
|
46
46
|
*Usage:*
|
47
|
-
|
47
|
+
|
48
48
|
<pre><code><r:children>...</r:children></code></pre>
|
49
49
|
}
|
50
50
|
tag 'children' do |tag|
|
@@ -66,7 +66,7 @@ module StandardTags
|
|
66
66
|
the first child. Takes the same ordering options as @<r:children:each>@.
|
67
67
|
|
68
68
|
*Usage:*
|
69
|
-
|
69
|
+
|
70
70
|
<pre><code><r:children:first>...</r:children:first></code></pre>
|
71
71
|
}
|
72
72
|
tag 'children:first' do |tag|
|
@@ -83,7 +83,7 @@ module StandardTags
|
|
83
83
|
the last child. Takes the same ordering options as @<r:children:each>@.
|
84
84
|
|
85
85
|
*Usage:*
|
86
|
-
|
86
|
+
|
87
87
|
<pre><code><r:children:last>...</r:children:last></code></pre>
|
88
88
|
}
|
89
89
|
tag 'children:last' do |tag|
|
@@ -98,16 +98,16 @@ module StandardTags
|
|
98
98
|
desc %{
|
99
99
|
Cycles through each of the children. Inside this tag all page attribute tags
|
100
100
|
are mapped to the current child page.
|
101
|
-
|
101
|
+
|
102
102
|
Supply @paginated="true"@ to paginate the displayed list. will_paginate view helper
|
103
103
|
options can also be specified, including @per_page@, @previous_label@, @next_label@,
|
104
104
|
@class@, @separator@, @inner_window@ and @outer_window@.
|
105
105
|
|
106
106
|
*Usage:*
|
107
|
-
|
107
|
+
|
108
108
|
<pre><code><r:children:each [offset="number"] [limit="number"]
|
109
109
|
[by="published_at|updated_at|created_at|slug|title|keywords|description"]
|
110
|
-
[order="asc|desc"]
|
110
|
+
[order="asc|desc"]
|
111
111
|
[status="draft|reviewed|published|hidden|all"]
|
112
112
|
[paginated="true"]
|
113
113
|
[per_page="number"]
|
@@ -125,7 +125,7 @@ module StandardTags
|
|
125
125
|
be automatically display only the current page of results, with pagination controls at the bottom.
|
126
126
|
|
127
127
|
*Usage:*
|
128
|
-
|
128
|
+
|
129
129
|
<pre><code><r:children:each paginated="true" per_page="50" container="false" previous_label="foo" next_label="bar">
|
130
130
|
<r:child>...</r:child>
|
131
131
|
</r:children:each>
|
@@ -143,7 +143,7 @@ module StandardTags
|
|
143
143
|
current child.
|
144
144
|
|
145
145
|
*Usage:*
|
146
|
-
|
146
|
+
|
147
147
|
<pre><code><r:children:each>
|
148
148
|
<r:child>...</r:child>
|
149
149
|
</r:children:each>
|
@@ -153,81 +153,81 @@ module StandardTags
|
|
153
153
|
tag.locals.page = tag.locals.child
|
154
154
|
tag.expand
|
155
155
|
end
|
156
|
-
|
156
|
+
|
157
157
|
desc %{
|
158
158
|
Renders the tag contents only if the current page is the first child in the context of
|
159
159
|
a children:each tag
|
160
|
-
|
160
|
+
|
161
161
|
*Usage:*
|
162
|
-
|
162
|
+
|
163
163
|
<pre><code><r:children:each>
|
164
164
|
<r:if_first >
|
165
165
|
...
|
166
166
|
</r:if_first>
|
167
167
|
</r:children:each>
|
168
168
|
</code></pre>
|
169
|
-
|
169
|
+
|
170
170
|
}
|
171
171
|
tag 'children:each:if_first' do |tag|
|
172
172
|
tag.expand if tag.locals.first_child
|
173
173
|
end
|
174
174
|
|
175
|
-
|
175
|
+
|
176
176
|
desc %{
|
177
177
|
Renders the tag contents unless the current page is the first child in the context of
|
178
178
|
a children:each tag
|
179
|
-
|
179
|
+
|
180
180
|
*Usage:*
|
181
|
-
|
181
|
+
|
182
182
|
<pre><code><r:children:each>
|
183
183
|
<r:unless_first >
|
184
184
|
...
|
185
185
|
</r:unless_first>
|
186
186
|
</r:children:each>
|
187
187
|
</code></pre>
|
188
|
-
|
188
|
+
|
189
189
|
}
|
190
190
|
tag 'children:each:unless_first' do |tag|
|
191
191
|
tag.expand unless tag.locals.first_child
|
192
192
|
end
|
193
|
-
|
193
|
+
|
194
194
|
desc %{
|
195
195
|
Renders the tag contents only if the current page is the last child in the context of
|
196
196
|
a children:each tag
|
197
|
-
|
197
|
+
|
198
198
|
*Usage:*
|
199
|
-
|
199
|
+
|
200
200
|
<pre><code><r:children:each>
|
201
201
|
<r:if_last >
|
202
202
|
...
|
203
203
|
</r:if_last>
|
204
204
|
</r:children:each>
|
205
205
|
</code></pre>
|
206
|
-
|
206
|
+
|
207
207
|
}
|
208
208
|
tag 'children:each:if_last' do |tag|
|
209
209
|
tag.expand if tag.locals.last_child
|
210
210
|
end
|
211
211
|
|
212
|
-
|
212
|
+
|
213
213
|
desc %{
|
214
214
|
Renders the tag contents unless the current page is the last child in the context of
|
215
215
|
a children:each tag
|
216
|
-
|
216
|
+
|
217
217
|
*Usage:*
|
218
|
-
|
218
|
+
|
219
219
|
<pre><code><r:children:each>
|
220
220
|
<r:unless_last >
|
221
221
|
...
|
222
222
|
</r:unless_last>
|
223
223
|
</r:children:each>
|
224
224
|
</code></pre>
|
225
|
-
|
225
|
+
|
226
226
|
}
|
227
227
|
tag 'children:each:unless_last' do |tag|
|
228
228
|
tag.expand unless tag.locals.last_child
|
229
229
|
end
|
230
|
-
|
230
|
+
|
231
231
|
desc %{
|
232
232
|
Renders the tag contents only if the contents do not match the previous header. This
|
233
233
|
is extremely useful for rendering date headers for a list of child pages.
|
@@ -241,7 +241,7 @@ module StandardTags
|
|
241
241
|
separated list.
|
242
242
|
|
243
243
|
*Usage:*
|
244
|
-
|
244
|
+
|
245
245
|
<pre><code><r:children:each>
|
246
246
|
<r:header [name="header_name"] [restart="name1[;name2;...]"]>
|
247
247
|
...
|
@@ -269,7 +269,7 @@ module StandardTags
|
|
269
269
|
Page attribute tags inside this tag refer to the parent of the current page.
|
270
270
|
|
271
271
|
*Usage:*
|
272
|
-
|
272
|
+
|
273
273
|
<pre><code><r:parent>...</r:parent></code></pre>
|
274
274
|
}
|
275
275
|
tag "parent" do |tag|
|
@@ -283,7 +283,7 @@ module StandardTags
|
|
283
283
|
is not the root page.
|
284
284
|
|
285
285
|
*Usage:*
|
286
|
-
|
286
|
+
|
287
287
|
<pre><code><r:if_parent>...</r:if_parent></code></pre>
|
288
288
|
}
|
289
289
|
tag "if_parent" do |tag|
|
@@ -296,7 +296,7 @@ module StandardTags
|
|
296
296
|
is the root page.
|
297
297
|
|
298
298
|
*Usage:*
|
299
|
-
|
299
|
+
|
300
300
|
<pre><code><r:unless_parent>...</r:unless_parent></code></pre>
|
301
301
|
}
|
302
302
|
tag "unless_parent" do |tag|
|
@@ -311,7 +311,7 @@ module StandardTags
|
|
311
311
|
non-virtual pages regardless of status.
|
312
312
|
|
313
313
|
*Usage:*
|
314
|
-
|
314
|
+
|
315
315
|
<pre><code><r:if_children [status="published"]>...</r:if_children></code></pre>
|
316
316
|
}
|
317
317
|
tag "if_children" do |tag|
|
@@ -326,21 +326,21 @@ module StandardTags
|
|
326
326
|
regardless of status.
|
327
327
|
|
328
328
|
*Usage:*
|
329
|
-
|
329
|
+
|
330
330
|
<pre><code><r:unless_children [status="published"]>...</r:unless_children></code></pre>
|
331
331
|
}
|
332
332
|
tag "unless_children" do |tag|
|
333
333
|
children = tag.locals.page.children.where(children_find_options(tag)[:conditions]).count
|
334
334
|
tag.expand unless children > 0
|
335
335
|
end
|
336
|
-
|
336
|
+
|
337
337
|
desc %{
|
338
338
|
Aggregates the children of multiple paths using the @paths@ attribute.
|
339
339
|
Useful for combining many different sections/categories into a single
|
340
340
|
feed or listing.
|
341
|
-
|
341
|
+
|
342
342
|
*Usage*:
|
343
|
-
|
343
|
+
|
344
344
|
<pre><code><r:aggregate paths="/section1; /section2; /section3"> ... </r:aggregate></code></pre>
|
345
345
|
}
|
346
346
|
tag "aggregate" do |tag|
|
@@ -350,13 +350,13 @@ module StandardTags
|
|
350
350
|
tag.locals.parent_ids = parent_ids
|
351
351
|
tag.expand
|
352
352
|
end
|
353
|
-
|
353
|
+
|
354
354
|
desc %{
|
355
355
|
Sets the scope to the individual aggregated page allowing you to
|
356
356
|
iterate through each of the listed paths.
|
357
|
-
|
357
|
+
|
358
358
|
*Usage*:
|
359
|
-
|
359
|
+
|
360
360
|
<pre><code><r:aggregate:each paths="/section1; /section2; /section3"> ... </r:aggregate:each></code></pre>
|
361
361
|
}
|
362
362
|
tag "aggregate:each" do |tag|
|
@@ -368,12 +368,12 @@ module StandardTags
|
|
368
368
|
end
|
369
369
|
aggregates.flatten.join('')
|
370
370
|
end
|
371
|
-
|
371
|
+
|
372
372
|
tag "aggregate:each:children" do |tag|
|
373
373
|
tag.locals.children = tag.locals.page.children
|
374
374
|
tag.expand
|
375
375
|
end
|
376
|
-
|
376
|
+
|
377
377
|
tag "aggregate:each:children:each" do |tag|
|
378
378
|
options = children_find_options(tag)
|
379
379
|
result = []
|
@@ -386,21 +386,21 @@ module StandardTags
|
|
386
386
|
end
|
387
387
|
result.flatten.join('')
|
388
388
|
end
|
389
|
-
|
389
|
+
|
390
390
|
tag "aggregate:children" do |tag|
|
391
391
|
tag.expand
|
392
392
|
end
|
393
|
-
|
393
|
+
|
394
394
|
desc %{
|
395
395
|
Renders the total count of children of the aggregated pages. Accepts the
|
396
396
|
same options as @<r:children:each />@.
|
397
397
|
|
398
398
|
*Usage*:
|
399
|
-
|
399
|
+
|
400
400
|
<pre><code><r:aggregate paths="/section1; /section2; /section3">
|
401
401
|
<r:children:count />
|
402
402
|
</r:aggregate></code></pre>
|
403
|
-
}
|
403
|
+
}
|
404
404
|
tag "aggregate:children:count" do |tag|
|
405
405
|
options = aggregate_children(tag)
|
406
406
|
if ActiveRecord::Base.connection.adapter_name.downcase == 'postgresql'
|
@@ -415,7 +415,7 @@ module StandardTags
|
|
415
415
|
same options as the plain @<r:children:each />@.
|
416
416
|
|
417
417
|
*Usage*:
|
418
|
-
|
418
|
+
|
419
419
|
<pre><code><r:aggregate paths="/section1; /section2; /section3">
|
420
420
|
<r:children:each>
|
421
421
|
...
|
@@ -425,13 +425,13 @@ module StandardTags
|
|
425
425
|
tag "aggregate:children:each" do |tag|
|
426
426
|
render_children_with_pagination(tag, :aggregate => true)
|
427
427
|
end
|
428
|
-
|
428
|
+
|
429
429
|
desc %{
|
430
430
|
Renders the first child of the aggregated pages. Accepts the
|
431
431
|
same options as @<r:children:each />@.
|
432
432
|
|
433
433
|
*Usage*:
|
434
|
-
|
434
|
+
|
435
435
|
<pre><code><r:aggregate paths="/section1; /section2; /section3">
|
436
436
|
<r:children:first>
|
437
437
|
...
|
@@ -448,13 +448,13 @@ module StandardTags
|
|
448
448
|
tag.expand
|
449
449
|
end
|
450
450
|
end
|
451
|
-
|
451
|
+
|
452
452
|
desc %{
|
453
453
|
Renders the last child of the aggregated pages. Accepts the
|
454
454
|
same options as @<r:children:each />@.
|
455
455
|
|
456
456
|
*Usage*:
|
457
|
-
|
457
|
+
|
458
458
|
<pre><code><r:aggregate paths="/section1; /section2; /section3">
|
459
459
|
<r:children:last>
|
460
460
|
...
|
@@ -473,15 +473,15 @@ module StandardTags
|
|
473
473
|
end
|
474
474
|
|
475
475
|
desc %{
|
476
|
-
Renders a counter value or one of the values given based on a global cycle counter.
|
477
|
-
|
476
|
+
Renders a counter value or one of the values given based on a global cycle counter.
|
477
|
+
|
478
478
|
To get a numeric counter just use the tag, or specify a start value with @start@.
|
479
479
|
Use the @reset@ attribute to reset the cycle to the beginning. Using @reset@ on a
|
480
|
-
numbered cycle will begin at 0. Use the @name@ attribute to track multiple cycles;
|
480
|
+
numbered cycle will begin at 0. Use the @name@ attribute to track multiple cycles;
|
481
481
|
the default is @cycle@.
|
482
482
|
|
483
483
|
*Usage:*
|
484
|
-
|
484
|
+
|
485
485
|
<pre><code><r:cycle [values="first, second, third"] [reset="true|false"] [name="cycle"] [start="second"] /></code></pre>
|
486
486
|
<pre><code><r:cycle start="3" /></code></pre>
|
487
487
|
}
|
@@ -523,7 +523,7 @@ module StandardTags
|
|
523
523
|
is set to true.
|
524
524
|
|
525
525
|
*Usage:*
|
526
|
-
|
526
|
+
|
527
527
|
<pre><code><r:content [part="part_name"] [inherit="true|false"] [contextual="true|false"] /></code></pre>
|
528
528
|
}
|
529
529
|
tag 'content' do |tag|
|
@@ -562,7 +562,7 @@ module StandardTags
|
|
562
562
|
By default the @find@ attribute is set to @all@.
|
563
563
|
|
564
564
|
*Usage:*
|
565
|
-
|
565
|
+
|
566
566
|
<pre><code><r:if_content [part="part_name, other_part"] [inherit="true"] [find="any"]>...</r:if_content></code></pre>
|
567
567
|
}
|
568
568
|
tag 'if_content' do |tag|
|
@@ -597,7 +597,7 @@ module StandardTags
|
|
597
597
|
By default the @find@ attribute is set to @all@.
|
598
598
|
|
599
599
|
*Usage:*
|
600
|
-
|
600
|
+
|
601
601
|
<pre><code><r:unless_content [part="part_name, other_part"] [inherit="false"] [find="any"]>...</r:unless_content></code></pre>
|
602
602
|
}
|
603
603
|
tag 'unless_content' do |tag|
|
@@ -629,7 +629,7 @@ module StandardTags
|
|
629
629
|
match is case sensitive. By default, @ignore_case@ is set to true.
|
630
630
|
|
631
631
|
*Usage:*
|
632
|
-
|
632
|
+
|
633
633
|
<pre><code><r:if_path matches="regexp" [ignore_case="true|false"]>...</r:if_path></code></pre>
|
634
634
|
}
|
635
635
|
tag 'if_path' do |tag|
|
@@ -645,7 +645,7 @@ module StandardTags
|
|
645
645
|
The opposite of the @if_path@ tag.
|
646
646
|
|
647
647
|
*Usage:*
|
648
|
-
|
648
|
+
|
649
649
|
<pre><code><r:unless_path matches="regexp" [ignore_case="true|false"]>...</r:unless_path></code></pre>
|
650
650
|
}
|
651
651
|
tag 'unless_path' do |tag|
|
@@ -663,7 +663,7 @@ module StandardTags
|
|
663
663
|
This is typically used inside another tag (like <r:children:each>) to add conditional mark-up if the child element is or descends from the current page.
|
664
664
|
|
665
665
|
*Usage:*
|
666
|
-
|
666
|
+
|
667
667
|
<pre><code><r:if_ancestor_or_self>...</r:if_ancestor_or_self></code></pre>
|
668
668
|
}
|
669
669
|
tag "if_ancestor_or_self" do |tag|
|
@@ -676,7 +676,7 @@ module StandardTags
|
|
676
676
|
This is typically used inside another tag (like <r:children:each>) to add conditional mark-up unless the child element is or descends from the current page.
|
677
677
|
|
678
678
|
*Usage:*
|
679
|
-
|
679
|
+
|
680
680
|
<pre><code><r:unless_ancestor_or_self>...</r:unless_ancestor_or_self></code></pre>
|
681
681
|
}
|
682
682
|
tag "unless_ancestor_or_self" do |tag|
|
@@ -689,7 +689,7 @@ module StandardTags
|
|
689
689
|
This is typically used inside another tag (like <r:children:each>) to add conditional mark-up if the child element is the current page.
|
690
690
|
|
691
691
|
*Usage:*
|
692
|
-
|
692
|
+
|
693
693
|
<pre><code><r:if_self>...</r:if_self></code></pre>
|
694
694
|
}
|
695
695
|
tag "if_self" do |tag|
|
@@ -739,9 +739,9 @@ module StandardTags
|
|
739
739
|
size = (tag.attr['size'] || '32px')
|
740
740
|
user = User.find_by_name(name)
|
741
741
|
email = user ? user.email : nil
|
742
|
-
local_avatar_url = "/images/admin/avatar_#{([size.to_i] * 2).join('x')}.png"
|
742
|
+
local_avatar_url = "/images/admin/avatar_#{([size.to_i] * 2).join('x')}.png"
|
743
743
|
default_avatar_url = "#{request.protocol}#{request.host_with_port}#{local_avatar_url}"
|
744
|
-
|
744
|
+
|
745
745
|
unless email.blank?
|
746
746
|
url = '//gravatar.com/avatar/'
|
747
747
|
url << "#{Digest::MD5.new.update(email)}?"
|
@@ -809,9 +809,9 @@ module StandardTags
|
|
809
809
|
*Usage:*
|
810
810
|
|
811
811
|
<pre><code><r:link [anchor="name"] [other attributes...] /></code></pre>
|
812
|
-
|
812
|
+
|
813
813
|
or
|
814
|
-
|
814
|
+
|
815
815
|
<pre><code><r:link [anchor="name"] [other attributes...]>link text here</r:link></code></pre>
|
816
816
|
}
|
817
817
|
tag 'link' do |tag|
|
@@ -827,7 +827,7 @@ module StandardTags
|
|
827
827
|
Renders a trail of breadcrumbs to the current page. The separator attribute
|
828
828
|
specifies the HTML fragment that is inserted between each of the breadcrumbs. By
|
829
829
|
default it is set to @>@. The boolean @nolinks@ attribute can be specified to render
|
830
|
-
breadcrumbs in plain text, without any links (useful when generating title tag).
|
830
|
+
breadcrumbs in plain text, without any links (useful when generating title tag).
|
831
831
|
Set the boolean @noself@ attribute to omit the present page (useful in page headers).
|
832
832
|
|
833
833
|
*Usage:*
|
@@ -1129,7 +1129,7 @@ module StandardTags
|
|
1129
1129
|
else field
|
1130
1130
|
end
|
1131
1131
|
end
|
1132
|
-
|
1132
|
+
|
1133
1133
|
tag 'site' do |tag|
|
1134
1134
|
tag.expand
|
1135
1135
|
end
|
@@ -1151,7 +1151,27 @@ module StandardTags
|
|
1151
1151
|
tag "site:dev_host" do |tag|
|
1152
1152
|
TrustyCms::Config["dev.host"]
|
1153
1153
|
end
|
1154
|
-
|
1154
|
+
|
1155
|
+
tag 'meta:description' do |tag|
|
1156
|
+
show_tag = tag.attr['tag'] != 'false' || false
|
1157
|
+
description = CGI.escapeHTML(tag.locals.page.field(:description).try(:content)) if tag.locals.page.field(:description)
|
1158
|
+
if show_tag
|
1159
|
+
"<meta name=\"description\" content=\"#{description}\" />"
|
1160
|
+
else
|
1161
|
+
description
|
1162
|
+
end
|
1163
|
+
end
|
1164
|
+
|
1165
|
+
tag 'meta:keywords' do |tag|
|
1166
|
+
show_tag = tag.attr['tag'] != 'false' || false
|
1167
|
+
keywords = CGI.escapeHTML(tag.locals.page.field(:keywords).try(:content)) if tag.locals.page.field(:keywords)
|
1168
|
+
if show_tag
|
1169
|
+
"<meta name=\"keywords\" content=\"#{keywords}\" />"
|
1170
|
+
else
|
1171
|
+
keywords
|
1172
|
+
end
|
1173
|
+
end
|
1174
|
+
|
1155
1175
|
private
|
1156
1176
|
def render_children_with_pagination(tag, opts={})
|
1157
1177
|
if opts[:aggregate]
|
@@ -1178,7 +1198,7 @@ module StandardTags
|
|
1178
1198
|
end
|
1179
1199
|
result.flatten.join('')
|
1180
1200
|
end
|
1181
|
-
|
1201
|
+
|
1182
1202
|
def children_find_options(tag)
|
1183
1203
|
attr = tag.attr.symbolize_keys
|
1184
1204
|
|
@@ -1222,17 +1242,17 @@ module StandardTags
|
|
1222
1242
|
end
|
1223
1243
|
options
|
1224
1244
|
end
|
1225
|
-
|
1245
|
+
|
1226
1246
|
def aggregate_children(tag)
|
1227
1247
|
options = children_find_options(tag)
|
1228
1248
|
parent_ids = tag.locals.parent_ids
|
1229
|
-
|
1249
|
+
|
1230
1250
|
conditions = options[:conditions]
|
1231
1251
|
conditions.first << " AND parent_id IN (?)"
|
1232
1252
|
conditions << parent_ids
|
1233
1253
|
options
|
1234
1254
|
end
|
1235
|
-
|
1255
|
+
|
1236
1256
|
def pagination_find_options(tag)
|
1237
1257
|
attr = tag.attr.symbolize_keys
|
1238
1258
|
if attr[:paginated] == 'true'
|
@@ -1241,7 +1261,7 @@ module StandardTags
|
|
1241
1261
|
false
|
1242
1262
|
end
|
1243
1263
|
end
|
1244
|
-
|
1264
|
+
|
1245
1265
|
def will_paginate_options(tag)
|
1246
1266
|
attr = tag.attr.symbolize_keys
|
1247
1267
|
if attr[:paginated] == 'true'
|
@@ -1299,7 +1319,7 @@ module StandardTags
|
|
1299
1319
|
raise TagError.new(%{`#{attribute_name}' attribute of `#{tag.name}' tag must be one of: #{values.join(', ')}}) unless values.include?(attribute)
|
1300
1320
|
return attribute
|
1301
1321
|
end
|
1302
|
-
|
1322
|
+
|
1303
1323
|
def required_attr(tag, *attribute_names)
|
1304
1324
|
attr_collection = attribute_names.map{|a| "`#{a}'"}.join(' or ')
|
1305
1325
|
raise TagError.new("`#{tag.name}' tag must contain a #{attr_collection} attribute.") if (tag.attr.keys & attribute_names).blank?
|
@@ -1314,5 +1334,5 @@ module StandardTags
|
|
1314
1334
|
request.host =~ /^dev\./
|
1315
1335
|
end
|
1316
1336
|
end
|
1317
|
-
|
1337
|
+
|
1318
1338
|
end
|