zen 0.2.7 → 0.2.8
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.
- data/.gitignore +15 -0
- data/.mailmap +2 -0
- data/.rvmrc +2 -0
- data/.travis.yml +8 -3
- data/AUTHORS +1 -2
- data/CHANGELOG.md +48 -17
- data/README.md +44 -39
- data/Rakefile +4 -0
- data/bin/zen +5 -30
- data/lib/zen.rb +13 -19
- data/lib/zen/asset.rb +99 -64
- data/lib/zen/bin/create.rb +94 -0
- data/lib/zen/bin/runner.rb +118 -0
- data/lib/zen/controller/admin_controller.rb +52 -36
- data/lib/zen/controller/base_controller.rb +5 -5
- data/lib/zen/controller/frontend_controller.rb +7 -7
- data/lib/zen/controller/main_controller.rb +12 -10
- data/lib/zen/controller/preview.rb +15 -11
- data/lib/zen/helper/acl.rb +73 -53
- data/lib/zen/helper/blue_form_vendor.rb +689 -0
- data/lib/zen/helper/breadcrumb.rb +23 -19
- data/lib/zen/helper/message.rb +3 -3
- data/lib/zen/helper/theme.rb +18 -13
- data/lib/zen/language.rb +62 -58
- data/lib/zen/language/en/zen_general.yml +2 -4
- data/lib/zen/language/nl/zen_general.yml +2 -4
- data/lib/zen/layout/admin.xhtml +3 -12
- data/lib/zen/layout/login.xhtml +1 -6
- data/lib/zen/model/methods.rb +6 -6
- data/lib/zen/model/settings.rb +5 -4
- data/lib/zen/package.rb +47 -38
- data/lib/zen/package/all.rb +3 -5
- data/lib/zen/package/base.rb +7 -7
- data/lib/zen/package/categories/lib/categories.rb +8 -3
- data/lib/zen/package/categories/lib/categories/controller/categories.rb +81 -55
- data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +45 -44
- data/lib/zen/package/categories/lib/categories/helper/category.rb +88 -0
- data/lib/zen/package/categories/lib/categories/language/en/categories.yml +5 -4
- data/lib/zen/package/categories/lib/categories/language/en/category_groups.yml +5 -4
- data/lib/zen/package/categories/lib/categories/language/nl/categories.yml +5 -4
- data/lib/zen/package/categories/lib/categories/language/nl/category_groups.yml +5 -4
- data/lib/zen/package/categories/lib/categories/model/category.rb +15 -13
- data/lib/zen/package/categories/lib/categories/model/category_group.rb +3 -3
- data/lib/zen/package/categories/lib/categories/plugin/categories.rb +36 -25
- data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +49 -56
- data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +48 -35
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +36 -29
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +42 -37
- data/lib/zen/package/comments/lib/comments.rb +4 -1
- data/lib/zen/package/comments/lib/comments/controller/comments.rb +39 -32
- data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +45 -26
- data/lib/zen/package/comments/lib/comments/helper/comment.rb +35 -0
- data/lib/zen/package/comments/lib/comments/language/en/comments.yml +9 -7
- data/lib/zen/package/comments/lib/comments/language/nl/comments.yml +10 -8
- data/lib/zen/package/comments/lib/comments/model/comment.rb +31 -17
- data/lib/zen/package/comments/lib/comments/model/comment_status.rb +15 -0
- data/lib/zen/package/comments/lib/comments/plugin/anti_spam.rb +27 -18
- data/lib/zen/package/comments/lib/comments/plugin/comments.rb +25 -20
- data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +61 -54
- data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +38 -23
- data/lib/zen/package/comments/migrations/1308774099_comment_status.rb +60 -0
- data/lib/zen/package/custom_fields/lib/custom_fields.rb +33 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/blue_form_parameters.rb +209 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +50 -47
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_types.rb +215 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +111 -73
- data/lib/zen/package/custom_fields/lib/custom_fields/helper/custom_field.rb +79 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.yml +20 -19
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.yml +40 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.yml +34 -32
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.yml +5 -4
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.yml +40 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.yml +18 -16
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +31 -11
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_method.rb +15 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_type.rb +50 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +28 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +33 -28
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +48 -46
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/form.xhtml +61 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/index.xhtml +93 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +105 -99
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +43 -39
- data/lib/zen/package/custom_fields/migrations/1295255665_create_schema.rb +47 -16
- data/lib/zen/package/custom_fields/migrations/1310659580_custom_field_types.rb +148 -0
- data/lib/zen/package/custom_fields/migrations/1311694920_rename_css_class.rb +11 -0
- data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +40 -35
- data/lib/zen/package/menus/lib/menus/controller/menus.rb +47 -43
- data/lib/zen/package/menus/lib/menus/helper/{menu_item.rb → menu.rb} +42 -15
- data/lib/zen/package/menus/lib/menus/language/en/menu_items.yml +5 -5
- data/lib/zen/package/menus/lib/menus/language/en/menus.yml +9 -8
- data/lib/zen/package/menus/lib/menus/language/nl/menu_items.yml +8 -8
- data/lib/zen/package/menus/lib/menus/language/nl/menus.yml +11 -10
- data/lib/zen/package/menus/lib/menus/model/menu.rb +5 -5
- data/lib/zen/package/menus/lib/menus/model/menu_item.rb +6 -5
- data/lib/zen/package/menus/lib/menus/plugin/menus.rb +41 -43
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +59 -63
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +35 -30
- data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +46 -37
- data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +37 -37
- data/lib/zen/package/menus/migrations/1297184342_create_schema.rb +5 -5
- data/lib/zen/package/menus/migrations/1308671733_rename_order_column.rb +11 -0
- data/lib/zen/package/menus/migrations/1311695030_rename_css_class.rb +17 -0
- data/lib/zen/package/sections/lib/sections.rb +18 -11
- data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +115 -109
- data/lib/zen/package/sections/lib/sections/controller/sections.rb +72 -50
- data/lib/zen/package/sections/lib/sections/helper/section.rb +53 -0
- data/lib/zen/package/sections/lib/sections/language/en/section_entries.yml +5 -4
- data/lib/zen/package/sections/lib/sections/language/en/sections.yml +5 -4
- data/lib/zen/package/sections/lib/sections/language/nl/section_entries.yml +5 -4
- data/lib/zen/package/sections/lib/sections/language/nl/sections.yml +5 -4
- data/lib/zen/package/sections/lib/sections/model/section.rb +17 -9
- data/lib/zen/package/sections/lib/sections/model/section_entry.rb +192 -13
- data/lib/zen/package/sections/lib/sections/model/section_entry_status.rb +13 -0
- data/lib/zen/package/sections/lib/sections/plugin/section_entries.rb +60 -39
- data/lib/zen/package/sections/lib/sections/plugin/sections.rb +14 -11
- data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +100 -97
- data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +41 -39
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +95 -215
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +48 -40
- data/lib/zen/package/sections/migrations/1308672298_use_id_for_default_section.rb +40 -0
- data/lib/zen/package/sections/migrations/1308813320_section_entry_statuses.rb +58 -0
- data/lib/zen/package/settings/lib/settings/controller/settings.rb +5 -8
- data/lib/zen/package/settings/lib/settings/model/setting.rb +2 -37
- data/lib/zen/package/settings/lib/settings/plugin/setting_base.rb +18 -1
- data/lib/zen/package/settings/lib/settings/plugin/settings.rb +13 -7
- data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +2 -1
- data/lib/zen/package/users/lib/users.rb +3 -1
- data/lib/zen/package/users/lib/users/controller/access_rules.rb +77 -60
- data/lib/zen/package/users/lib/users/controller/user_groups.rb +41 -36
- data/lib/zen/package/users/lib/users/controller/users.rb +48 -42
- data/lib/zen/package/users/lib/users/helper/users.rb +72 -0
- data/lib/zen/package/users/lib/users/language/en/access_rules.yml +6 -5
- data/lib/zen/package/users/lib/users/language/en/user_groups.yml +5 -4
- data/lib/zen/package/users/lib/users/language/en/users.yml +1 -0
- data/lib/zen/package/users/lib/users/language/nl/access_rules.yml +5 -4
- data/lib/zen/package/users/lib/users/language/nl/user_groups.yml +5 -4
- data/lib/zen/package/users/lib/users/language/nl/users.yml +1 -0
- data/lib/zen/package/users/lib/users/model/access_rule.rb +5 -1
- data/lib/zen/package/users/lib/users/model/user.rb +17 -10
- data/lib/zen/package/users/lib/users/public/admin/js/users/access_rules.js +10 -37
- data/lib/zen/package/users/lib/users/public/admin/js/users/lib/access_rules.js +49 -0
- data/lib/zen/package/users/lib/users/view/admin/access-rules/form.xhtml +105 -96
- data/lib/zen/package/users/lib/users/view/admin/access-rules/index.xhtml +48 -41
- data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +42 -32
- data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +43 -38
- data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +76 -67
- data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +43 -41
- data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +12 -9
- data/lib/zen/package/users/migrations/1295281013_create_schema.rb +2 -2
- data/lib/zen/plugin.rb +56 -50
- data/lib/zen/plugin/markup/lib/markup/markup.rb +33 -21
- data/lib/zen/public/admin/css/zen/buttons.css +11 -7
- data/lib/zen/public/admin/css/zen/datepicker.css +6 -6
- data/lib/zen/public/admin/css/zen/forms.css +2 -1
- data/lib/zen/public/admin/css/zen/general.css +15 -10
- data/lib/zen/public/admin/css/zen/layout.css +51 -20
- data/lib/zen/public/admin/css/zen/tables.css +39 -11
- data/lib/zen/public/admin/css/zen/tabs.css +6 -4
- data/lib/zen/public/admin/css/zen/window.css +11 -11
- data/lib/zen/public/{favicon.ico → admin/favicon.ico} +0 -0
- data/lib/zen/public/admin/images/zen/icons/asc.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/desc.png +0 -0
- data/lib/zen/public/admin/js/vendor/datepicker.js +0 -11
- data/lib/zen/public/admin/js/{mootools → vendor/mootools}/core.js +0 -1
- data/lib/zen/public/admin/js/{mootools → vendor/mootools}/more.js +100 -29
- data/lib/zen/public/admin/js/zen/index.js +48 -0
- data/lib/zen/public/admin/js/zen/lib/asset.js +111 -0
- data/lib/zen/public/admin/js/zen/{editor.js → lib/editor.js} +107 -127
- data/lib/zen/public/admin/js/zen/{editor → lib/editor}/markdown.js +7 -9
- data/lib/zen/public/admin/js/zen/{editor → lib/editor}/textile.js +7 -9
- data/lib/zen/public/admin/js/zen/lib/html_table.js +143 -0
- data/lib/zen/public/admin/js/zen/{tabs.js → lib/tabs.js} +40 -37
- data/lib/zen/public/admin/js/zen/{window.js → lib/window.js} +24 -20
- data/lib/zen/spec/bacon/color_output.rb +39 -0
- data/lib/zen/spec/helper.rb +152 -0
- data/lib/zen/spec/simplecov.rb +22 -0
- data/lib/zen/task/build.rake +20 -43
- data/lib/zen/task/clean.rake +2 -6
- data/lib/zen/task/db.rake +8 -12
- data/lib/zen/task/package.rake +4 -10
- data/lib/zen/task/plugin.rake +3 -9
- data/lib/zen/task/proto.rake +0 -62
- data/lib/zen/task/test.rake +6 -3
- data/lib/zen/task/theme.rake +4 -11
- data/lib/zen/theme.rb +22 -24
- data/lib/zen/validation.rb +34 -27
- data/lib/zen/version.rb +2 -8
- data/lib/zen/view/head.xhtml +7 -0
- data/lib/zen/view/main.xhtml +7 -22
- data/{proto/package/migrations → pkg}/.gitkeep +0 -0
- data/proto/app/app.rb +1 -0
- data/proto/app/config/config.rb +5 -4
- data/proto/app/config/database.rb +19 -41
- data/proto/app/config/middlewares.rb +32 -29
- data/proto/{package/lib/package/view/admin/package/index.xhtml → app/log/database/dev/.gitkeep} +0 -0
- data/proto/app/log/database/live/.gitkeep +0 -0
- data/spec/Rakefile +26 -0
- data/spec/fixtures/zen/asset.rb +18 -0
- data/spec/fixtures/zen/helper/acl.rb +39 -0
- data/spec/fixtures/zen/helper/message.rb +19 -0
- data/spec/fixtures/zen/language/en/spec.yml +10 -0
- data/spec/fixtures/zen/language/nl/spec.yml +7 -0
- data/spec/fixtures/zen/package.rb +17 -0
- data/spec/fixtures/zen/package/comments/controller/comments_form.rb +27 -0
- data/spec/fixtures/zen/package/settings/plugin/settings.rb +20 -0
- data/spec/fixtures/zen/plugin.rb +7 -0
- data/spec/fixtures/zen/theme/404.xhtml +1 -0
- data/spec/fixtures/zen/theme/default-section/index.xhtml +1 -0
- data/spec/fixtures/zen/theme/helper/404.xhtml +1 -0
- data/spec/fixtures/zen/theme/helper/partial.xhtml +1 -0
- data/spec/fixtures/zen/theme/helper/wrong_partial.xhtml +1 -0
- data/spec/fixtures/zen/theme/partials/partial.xhtml +1 -0
- data/spec/fixtures/zen/theme/theme.rb +11 -0
- data/spec/fixtures/zen/validation.rb +22 -0
- data/spec/helper.rb +41 -0
- data/spec/zen/all.rb +5 -0
- data/spec/zen/asset.rb +97 -0
- data/spec/zen/bin/create.rb +89 -0
- data/spec/zen/bin/runner.rb +47 -0
- data/spec/zen/controller/admin_controller.rb +26 -0
- data/spec/zen/controller/main_controller.rb +81 -0
- data/spec/zen/controller/preview.rb +33 -0
- data/spec/zen/helper/acl.rb +149 -0
- data/spec/zen/helper/breadcrumb.rb +38 -0
- data/spec/zen/helper/message.rb +31 -0
- data/spec/zen/helper/theme.rb +58 -0
- data/spec/zen/language.rb +55 -0
- data/spec/zen/package.rb +23 -0
- data/spec/zen/package/categories/controller/categories.rb +123 -0
- data/spec/zen/package/categories/controller/category_groups.rb +108 -0
- data/spec/zen/package/categories/helper/category.rb +75 -0
- data/spec/zen/package/categories/plugin/categories.rb +92 -0
- data/spec/zen/package/comments/controller/comments.rb +134 -0
- data/spec/zen/package/comments/controller/comments_form.rb +343 -0
- data/spec/zen/package/comments/helper/comment.rb +47 -0
- data/spec/zen/package/comments/plugin/anti_spam.rb +59 -0
- data/spec/zen/package/comments/plugin/comments.rb +107 -0
- data/spec/zen/package/custom_fields/blue_form_parameters.rb +183 -0
- data/spec/zen/package/custom_fields/controller/custom_field_groups.rb +120 -0
- data/spec/zen/package/custom_fields/controller/custom_field_types.rb +169 -0
- data/spec/zen/package/custom_fields/controller/custom_fields.rb +158 -0
- data/spec/zen/package/custom_fields/helper/custom_field.rb +86 -0
- data/spec/zen/package/menus/controller/menu_items.rb +110 -0
- data/spec/zen/package/menus/controller/menus.rb +110 -0
- data/spec/zen/package/menus/helper/menu.rb +75 -0
- data/spec/zen/package/menus/plugin/menus.rb +120 -0
- data/spec/zen/package/sections/controller/section_entries.rb +201 -0
- data/spec/zen/package/sections/controller/sections.rb +116 -0
- data/spec/zen/package/sections/helper/section.rb +74 -0
- data/spec/zen/package/sections/plugin/section_entries.rb +161 -0
- data/spec/zen/package/sections/plugin/sections.rb +75 -0
- data/spec/zen/package/settings/controller/settings.rb +36 -0
- data/spec/zen/package/settings/plugin/settings.rb +33 -0
- data/spec/zen/package/users/controller/access_rules.rb +90 -0
- data/spec/zen/package/users/controller/user_groups.rb +101 -0
- data/spec/zen/package/users/controller/users.rb +130 -0
- data/spec/zen/package/users/helper/users.rb +97 -0
- data/spec/zen/plugin.rb +64 -0
- data/spec/zen/plugin/helper.rb +11 -0
- data/spec/zen/plugin/markup.rb +44 -0
- data/spec/zen/theme.rb +41 -0
- data/spec/zen/validation.rb +63 -0
- data/zen.gemspec +36 -0
- metadata +159 -113
- data/MANIFEST +0 -266
- data/lib/zen/bin/app.rb +0 -40
- data/lib/zen/ext/string.rb +0 -185
- data/lib/zen/helper/common.rb +0 -106
- data/lib/zen/package/categories/lib/categories/view/admin/categories/edit.xhtml +0 -7
- data/lib/zen/package/categories/lib/categories/view/admin/categories/new.xhtml +0 -7
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/edit.xhtml +0 -7
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/new.xhtml +0 -7
- data/lib/zen/package/comments/lib/comments/view/admin/comments/edit.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/edit.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/new.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/edit.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/new.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/edit.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/new.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menus/edit.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menus/new.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/edit.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/new.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/edit.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/new.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/access-rules/edit.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/access-rules/new.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/user-groups/edit.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/user-groups/new.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/users/edit.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/users/new.xhtml +0 -7
- data/lib/zen/plugin/controller.rb +0 -59
- data/lib/zen/public/admin/css/zen/notifications.css +0 -84
- data/lib/zen/public/admin/images/zen/icons/large/error.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/large/notice.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/large/success.png +0 -0
- data/lib/zen/public/admin/js/zen/core.js +0 -73
- data/lib/zen/public/admin/js/zen/init.js +0 -80
- data/proto/package/lib/package.rb +0 -21
- data/proto/package/lib/package/controller/controllers.rb +0 -50
- data/proto/package/lib/package/language/en/languages.yml +0 -4
- data/proto/package/lib/package/model/model.rb +0 -12
|
@@ -5,33 +5,34 @@ module Ramaze
|
|
|
5
5
|
##
|
|
6
6
|
# Helper that can be used to quickly generate breadcrumbs without having
|
|
7
7
|
# to manually write the HTML separators and formatting the output correctly.
|
|
8
|
-
# In order to create a set of breadcrumbs we first need to call the
|
|
9
|
-
# method:
|
|
8
|
+
# In order to create a set of breadcrumbs we first need to call the
|
|
9
|
+
# set_breadcrumbs method:
|
|
10
10
|
#
|
|
11
11
|
# set_breadcrumbs(segment1, segment2, segment3, etc)
|
|
12
12
|
#
|
|
13
|
-
# Each argument will be a segment of the breadcrumbs, separated by a custom
|
|
14
|
-
# Retrieving the breadcrumbs is super easy:
|
|
13
|
+
# Each argument will be a segment of the breadcrumbs, separated by a custom
|
|
14
|
+
# character. Retrieving the breadcrumbs is super easy:
|
|
15
15
|
#
|
|
16
16
|
# get_breadcrumbs
|
|
17
17
|
#
|
|
18
|
-
# This will generate the correct HTML and return it, all you have to do is
|
|
18
|
+
# This will generate the correct HTML and return it, all you have to do is
|
|
19
|
+
# output it.
|
|
19
20
|
#
|
|
20
21
|
# @author Yorick Peterse
|
|
21
22
|
# @since 0.1
|
|
22
23
|
#
|
|
23
24
|
module Breadcrumb
|
|
24
25
|
@breadcrumbs = []
|
|
25
|
-
|
|
26
|
+
|
|
26
27
|
##
|
|
27
28
|
# Appends each element to the list of breadcrumb segments.
|
|
28
29
|
#
|
|
29
30
|
# @example
|
|
30
31
|
# set_breadcrumbs "Articles", "Edit"
|
|
31
32
|
#
|
|
32
|
-
# Note that you'll have to manually specify anchor tags, this method won't
|
|
33
|
+
# Note that you'll have to manually specify anchor tags, this method won't
|
|
33
34
|
# automatically generate URLs.
|
|
34
|
-
#
|
|
35
|
+
#
|
|
35
36
|
# @author Yorick Peterse
|
|
36
37
|
# @param [Array] args Array of segments for the breadcrumbs.
|
|
37
38
|
# @since 0.1
|
|
@@ -39,10 +40,10 @@ module Ramaze
|
|
|
39
40
|
def set_breadcrumbs(*args)
|
|
40
41
|
@breadcrumbs = args
|
|
41
42
|
end
|
|
42
|
-
|
|
43
|
+
|
|
43
44
|
##
|
|
44
|
-
# Retrieves all breacrumbs and separates them either by "»" or a
|
|
45
|
-
# element set as the first argument of this method.
|
|
45
|
+
# Retrieves all breacrumbs and separates them either by "»" or a
|
|
46
|
+
# custom element set as the first argument of this method.
|
|
46
47
|
#
|
|
47
48
|
# @example
|
|
48
49
|
# get_breadcrumbs # => "Articles » Edit"
|
|
@@ -51,23 +52,26 @@ module Ramaze
|
|
|
51
52
|
# get_breadcrumbs ">" # => "Articles > Edit"
|
|
52
53
|
#
|
|
53
54
|
# @author Yorick Peterse
|
|
54
|
-
# @param [String] separator The HTML character to use for separating each
|
|
55
|
+
# @param [String] separator The HTML character to use for separating each
|
|
56
|
+
# segment.
|
|
55
57
|
# @return [String]
|
|
56
|
-
#
|
|
58
|
+
#
|
|
57
59
|
def get_breadcrumbs(separator = "»")
|
|
58
60
|
if !@breadcrumbs or @breadcrumbs.empty?
|
|
59
61
|
return
|
|
60
62
|
end
|
|
61
|
-
|
|
63
|
+
|
|
62
64
|
html = ''
|
|
63
65
|
separator = " #{separator} "
|
|
64
|
-
|
|
66
|
+
|
|
65
67
|
@breadcrumbs.each do |segment|
|
|
66
68
|
html += segment + separator
|
|
67
69
|
end
|
|
68
|
-
|
|
70
|
+
|
|
71
|
+
@breadcrumbs = nil
|
|
72
|
+
|
|
69
73
|
return html.chomp(separator)
|
|
70
74
|
end
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
end
|
|
75
|
+
end # Breadcrumb
|
|
76
|
+
end # Helper
|
|
77
|
+
end # Ramaze
|
data/lib/zen/helper/message.rb
CHANGED
|
@@ -5,9 +5,9 @@ module Ramaze
|
|
|
5
5
|
#:nodoc:
|
|
6
6
|
module Helper
|
|
7
7
|
##
|
|
8
|
-
# The Mesage helper is a Ruby implementation of the Codeigniter library
|
|
9
|
-
# (located here: https://github.com/isset/codeigniter-message).
|
|
10
|
-
# from another project of mine which can be found here:
|
|
8
|
+
# The Mesage helper is a Ruby implementation of the Codeigniter library
|
|
9
|
+
# "Message" (located here: https://github.com/isset/codeigniter-message).
|
|
10
|
+
# This helper was taken from another project of mine which can be found here:
|
|
11
11
|
# https://github.com/yorickpeterse/stumpert/
|
|
12
12
|
#
|
|
13
13
|
# ## Usage
|
data/lib/zen/helper/theme.rb
CHANGED
|
@@ -5,17 +5,18 @@ module Ramaze
|
|
|
5
5
|
#:nodoc:
|
|
6
6
|
module Helper
|
|
7
7
|
##
|
|
8
|
-
# Helper that provides a few methods that make certain tasks easier when
|
|
9
|
-
# themes and templates.
|
|
8
|
+
# Helper that provides a few methods that make certain tasks easier when
|
|
9
|
+
# creating themes and templates.
|
|
10
10
|
#
|
|
11
11
|
# @author Yorick Peterse
|
|
12
12
|
# @since 0.2.5
|
|
13
13
|
#
|
|
14
14
|
module Theme
|
|
15
15
|
##
|
|
16
|
-
# Renders a partial from the current theme's partial directory. The first
|
|
17
|
-
# is the name of the partial (without an extension) to render.
|
|
18
|
-
# is a hash with variables that should be made
|
|
16
|
+
# Renders a partial from the current theme's partial directory. The first
|
|
17
|
+
# argument is the name of the partial (without an extension) to render.
|
|
18
|
+
# The second argument is a hash with variables that should be made
|
|
19
|
+
# available to the partial.
|
|
19
20
|
#
|
|
20
21
|
# @example
|
|
21
22
|
# partial(:header) # => partials/header.xhtml
|
|
@@ -24,18 +25,21 @@ module Ramaze
|
|
|
24
25
|
# @author Yorick Peterse
|
|
25
26
|
# @since 0.2.5
|
|
26
27
|
# @param [Symbol] file The name of the partial to render.
|
|
27
|
-
# @param [Hash] variables A hash with variables that should be made
|
|
28
|
-
# the partial.
|
|
28
|
+
# @param [Hash] variables A hash with variables that should be made
|
|
29
|
+
# available for the partial.
|
|
29
30
|
#
|
|
30
31
|
def partial(file, variables = {})
|
|
31
32
|
theme = plugin(:settings, :get, :theme).value
|
|
32
33
|
theme = Zen::Theme[theme]
|
|
33
34
|
|
|
34
35
|
if !theme.respond_to?(:partial_dir) or theme.partial_dir.nil?
|
|
35
|
-
raise(
|
|
36
|
+
raise(
|
|
37
|
+
::Zen::ThemeError,
|
|
38
|
+
"The theme #{theme.name} has no partial directory set."
|
|
39
|
+
)
|
|
36
40
|
end
|
|
37
41
|
|
|
38
|
-
template =
|
|
42
|
+
template = File.join(theme.partial_dir, "#{file}.xhtml")
|
|
39
43
|
|
|
40
44
|
if !File.exist?(template)
|
|
41
45
|
raise(::Zen::ThemeError, "The template #{template} doesn't exist.")
|
|
@@ -46,9 +50,10 @@ module Ramaze
|
|
|
46
50
|
end
|
|
47
51
|
|
|
48
52
|
##
|
|
49
|
-
# Renders the 404 template for the current theme (clearing the current
|
|
50
|
-
# sets the HTTP response code to 404. Optionally you can pass
|
|
51
|
-
# the 404 template by setting this method's first
|
|
53
|
+
# Renders the 404 template for the current theme (clearing the current
|
|
54
|
+
# buffer) and sets the HTTP response code to 404. Optionally you can pass
|
|
55
|
+
# a set of variables to the 404 template by setting this method's first
|
|
56
|
+
# argument to a hash.
|
|
52
57
|
#
|
|
53
58
|
# @example
|
|
54
59
|
# show_404
|
|
@@ -60,7 +65,7 @@ module Ramaze
|
|
|
60
65
|
#
|
|
61
66
|
def show_404(variables = {})
|
|
62
67
|
theme = ::Zen::Theme[plugin(:settings, :get, :theme).value]
|
|
63
|
-
template =
|
|
68
|
+
template = File.join(theme.template_dir, '404.xhtml')
|
|
64
69
|
|
|
65
70
|
# Render the template and replace the current buffer with it's output
|
|
66
71
|
template = render_file(template, variables)
|
data/lib/zen/language.rb
CHANGED
|
@@ -3,37 +3,39 @@ require __DIR__('error/language_error')
|
|
|
3
3
|
#:nodoc:
|
|
4
4
|
module Zen
|
|
5
5
|
##
|
|
6
|
-
# The language module is used for writing and using text translations.
|
|
7
|
-
# stored in a simple YAML file inside a directory called
|
|
8
|
-
# who's name matches the language code for
|
|
9
|
-
# Say we wanted to translate "Login"
|
|
10
|
-
# file would look like the
|
|
6
|
+
# The language module is used for writing and using text translations.
|
|
7
|
+
# Translations are stored in a simple YAML file inside a directory called
|
|
8
|
+
# "language" followed by a directory who's name matches the language code for
|
|
9
|
+
# which it's translations should be used. Say we wanted to translate "Login"
|
|
10
|
+
# and "Register" into different languages our YAML file would look like the
|
|
11
|
+
# following:
|
|
11
12
|
#
|
|
12
13
|
# ---
|
|
13
14
|
# login: "Login"
|
|
14
15
|
# register: "Register"
|
|
15
16
|
#
|
|
16
|
-
# If we save this file under parent_directory/language/en/tutorial.yml we
|
|
17
|
-
# load that file as following:
|
|
17
|
+
# If we save this file under parent_directory/language/en/tutorial.yml we
|
|
18
|
+
# could then load that file as following:
|
|
18
19
|
#
|
|
19
20
|
# Zen::Language.load('tutorial')
|
|
20
21
|
#
|
|
21
22
|
# ## Loading Translations
|
|
22
23
|
#
|
|
23
|
-
# The load() method will look for a YAML file of which the name matches the
|
|
24
|
-
# and can be found in the directory for the current language.
|
|
25
|
-
# to switch our language without creating a
|
|
26
|
-
# be able to use it
|
|
24
|
+
# The load() method will look for a YAML file of which the name matches the
|
|
25
|
+
# given string and can be found in the directory for the current language.
|
|
26
|
+
# This means that if we were to switch our language without creating a
|
|
27
|
+
# translation file for that language we wouldn't be able to use it
|
|
28
|
+
# (makes sense right?).
|
|
27
29
|
#
|
|
28
|
-
# Once your translation file is in place and it's loaded it can be used using
|
|
29
|
-
# method. Example:
|
|
30
|
+
# Once your translation file is in place and it's loaded it can be used using
|
|
31
|
+
# the lang() method. Example:
|
|
30
32
|
#
|
|
31
33
|
# lang('tutorial.login') # => "Login"
|
|
32
34
|
#
|
|
33
35
|
# ## Directory Structure
|
|
34
36
|
#
|
|
35
|
-
# As mentioned earlier language files are saved in a certain directory. The
|
|
36
|
-
# of this directory looks like the following:
|
|
37
|
+
# As mentioned earlier language files are saved in a certain directory. The
|
|
38
|
+
# structure of this directory looks like the following:
|
|
37
39
|
#
|
|
38
40
|
# parent directory
|
|
39
41
|
# |
|
|
@@ -43,20 +45,21 @@ module Zen
|
|
|
43
45
|
# |
|
|
44
46
|
# |__ filename.yml
|
|
45
47
|
#
|
|
46
|
-
# When loading a language file this module will loop through a certain number
|
|
47
|
-
# The array containing all base directories to loop through can be
|
|
48
|
+
# When loading a language file this module will loop through a certain number
|
|
49
|
+
# of paths. The array containing all base directories to loop through can be
|
|
50
|
+
# updated as following:
|
|
48
51
|
#
|
|
49
52
|
# Zen::Language.options.paths.push('/path/to/directory')
|
|
50
53
|
#
|
|
51
|
-
# It's important that you _don't_ add a /language segment to the path, this
|
|
52
|
-
# automatically.
|
|
54
|
+
# It's important that you _don't_ add a /language segment to the path, this
|
|
55
|
+
# will be done automatically.
|
|
53
56
|
#
|
|
54
57
|
# ## Options
|
|
55
58
|
#
|
|
56
59
|
# * language: Small string that defines the current language (e.g. "en").
|
|
57
|
-
# * paths: Array of paths to look for a language directory. Note that this
|
|
58
|
-
# the parent directory of the directory called "language", not the
|
|
59
|
-
# itself.
|
|
60
|
+
# * paths: Array of paths to look for a language directory. Note that this
|
|
61
|
+
# should be the parent directory of the directory called "language", not the
|
|
62
|
+
# actual directory itself.
|
|
60
63
|
#
|
|
61
64
|
# @author Yorick Peterse
|
|
62
65
|
# @since 0.2
|
|
@@ -68,20 +71,13 @@ module Zen
|
|
|
68
71
|
include Innate::Trinity
|
|
69
72
|
end
|
|
70
73
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
#
|
|
75
|
-
|
|
76
|
-
#
|
|
77
|
-
Registered = {}
|
|
74
|
+
# Hash containing all the translations.
|
|
75
|
+
Translations = {}
|
|
76
|
+
|
|
77
|
+
# Hash containing all the loaded language files for a language.
|
|
78
|
+
Loaded = {}
|
|
78
79
|
|
|
79
|
-
##
|
|
80
80
|
# Hash containing all the available languages.
|
|
81
|
-
#
|
|
82
|
-
# @author Yorick Peterse
|
|
83
|
-
# @since 0.2.6
|
|
84
|
-
#
|
|
85
81
|
Languages = {
|
|
86
82
|
'en' => 'English',
|
|
87
83
|
'nl' => 'Nederlands'
|
|
@@ -93,8 +89,9 @@ module Zen
|
|
|
93
89
|
end
|
|
94
90
|
|
|
95
91
|
##
|
|
96
|
-
# Tries to load a language file for the given name. If no language files
|
|
97
|
-
# based on the name and the current language an exception will
|
|
92
|
+
# Tries to load a language file for the given name. If no language files
|
|
93
|
+
# were found based on the name and the current language an exception will
|
|
94
|
+
# be raised.
|
|
98
95
|
#
|
|
99
96
|
# Note that this method will load the language pack for *all* languages.
|
|
100
97
|
#
|
|
@@ -106,15 +103,17 @@ module Zen
|
|
|
106
103
|
# @param [String] lang_name The name of the language file to load.
|
|
107
104
|
#
|
|
108
105
|
def self.load(lang_name)
|
|
106
|
+
lang_name = lang_name.to_s
|
|
109
107
|
file_found = false
|
|
110
108
|
|
|
111
109
|
Languages.each do |language, label|
|
|
112
|
-
|
|
110
|
+
Loaded[language] ||= []
|
|
111
|
+
Translations[language] ||= {}
|
|
113
112
|
|
|
114
113
|
# Abort of the file has already been loaded
|
|
115
|
-
if
|
|
114
|
+
if Loaded.key?(language) and Loaded[language].include?(lang_name)
|
|
116
115
|
file_found = true
|
|
117
|
-
|
|
116
|
+
break
|
|
118
117
|
end
|
|
119
118
|
|
|
120
119
|
self.options.paths.each do |path|
|
|
@@ -125,25 +124,30 @@ module Zen
|
|
|
125
124
|
file_found = true
|
|
126
125
|
translation = YAML.load_file(path)
|
|
127
126
|
|
|
128
|
-
|
|
129
|
-
|
|
127
|
+
Loaded[language].push(lang_name)
|
|
128
|
+
|
|
129
|
+
# Conver the hash to a dot based hash. This means that
|
|
130
|
+
# {:person => {:age => 18}} would result in {'person.age' => 18}.
|
|
130
131
|
translation = self.to_dotted_hash({lang_name.to_s => translation})
|
|
131
132
|
|
|
132
|
-
|
|
133
|
+
Translations[language].merge!(translation)
|
|
133
134
|
end
|
|
134
135
|
end
|
|
135
136
|
end
|
|
136
137
|
|
|
137
138
|
if file_found === false
|
|
138
|
-
raise(
|
|
139
|
+
raise(
|
|
140
|
+
Zen::LanguageError,
|
|
141
|
+
"No language file could be found for \"#{lang_name}\""
|
|
142
|
+
)
|
|
139
143
|
end
|
|
140
144
|
end
|
|
141
145
|
|
|
142
146
|
private
|
|
143
147
|
|
|
144
148
|
##
|
|
145
|
-
# Method that takes a hash or an array and converts it to a dot-based hash.
|
|
146
|
-
# the following hash:
|
|
149
|
+
# Method that takes a hash or an array and converts it to a dot-based hash.
|
|
150
|
+
# For example, the following hash:
|
|
147
151
|
#
|
|
148
152
|
# {:name => 'Name', :location => {:street => 'Street', :address => 'Address'}}
|
|
149
153
|
#
|
|
@@ -170,8 +174,8 @@ module Zen
|
|
|
170
174
|
# @param [Hash/Array] source The hash or array to conver to a dot-based hash.
|
|
171
175
|
# @param [Hash] target The hash to store the new key/values in.
|
|
172
176
|
# @param [String] namespace The namespace for the key (e.g. "user.location").
|
|
173
|
-
# @return [Hash] The converted hash where the keys are dot-based strings
|
|
174
|
-
# regular strings/symbols with sub hashes.
|
|
177
|
+
# @return [Hash] The converted hash where the keys are dot-based strings
|
|
178
|
+
# instead of regular strings/symbols with sub hashes.
|
|
175
179
|
#
|
|
176
180
|
def self.to_dotted_hash(source, target = {}, namespace = nil)
|
|
177
181
|
if namespace and !namespace.nil?
|
|
@@ -180,12 +184,11 @@ module Zen
|
|
|
180
184
|
prefix = ""
|
|
181
185
|
end
|
|
182
186
|
|
|
183
|
-
|
|
184
|
-
when Hash
|
|
187
|
+
if source.class == Hash
|
|
185
188
|
source.each do |k, v|
|
|
186
189
|
self.to_dotted_hash(v, target, "#{prefix}#{k}")
|
|
187
190
|
end
|
|
188
|
-
|
|
191
|
+
elsif source.class == Array
|
|
189
192
|
source.each_with_index do |v, i|
|
|
190
193
|
self.to_dotted_hash(v, target, "#{prefix}#{i}")
|
|
191
194
|
end
|
|
@@ -203,8 +206,9 @@ module Zen
|
|
|
203
206
|
#:nodoc:
|
|
204
207
|
module SingletonMethods
|
|
205
208
|
##
|
|
206
|
-
# Method for retrieving the correct language item based on the given
|
|
207
|
-
# If you want to retrieve sub-items you can separate each level
|
|
209
|
+
# Method for retrieving the correct language item based on the given
|
|
210
|
+
# string. If you want to retrieve sub-items you can separate each level
|
|
211
|
+
# with a dot:
|
|
208
212
|
#
|
|
209
213
|
# lang('tutorial.main.sub')
|
|
210
214
|
#
|
|
@@ -214,9 +218,9 @@ module Zen
|
|
|
214
218
|
# main:
|
|
215
219
|
# sub: "Something!"
|
|
216
220
|
#
|
|
217
|
-
# It's important to remember that your key should always include the name
|
|
218
|
-
# language file since once a file is loaded it will be kept in
|
|
219
|
-
# disk usage.
|
|
221
|
+
# It's important to remember that your key should always include the name
|
|
222
|
+
# of the language file since once a file is loaded it will be kept in
|
|
223
|
+
# memory to reduce disk usage.
|
|
220
224
|
#
|
|
221
225
|
# @example
|
|
222
226
|
# lang('username')
|
|
@@ -224,8 +228,8 @@ module Zen
|
|
|
224
228
|
# @author Yorick Peterse
|
|
225
229
|
# @since 0.2
|
|
226
230
|
# @param [String] key The language key to select.
|
|
227
|
-
# @param [String] lang The language for which to retrieve the key,
|
|
228
|
-
# language set in the session.
|
|
231
|
+
# @param [String] lang The language for which to retrieve the key,
|
|
232
|
+
# overwrites the language set in the session.
|
|
229
233
|
# @return [Mixed]
|
|
230
234
|
#
|
|
231
235
|
def lang(key, lang = nil)
|
|
@@ -238,7 +242,7 @@ module Zen
|
|
|
238
242
|
end
|
|
239
243
|
|
|
240
244
|
groups = []
|
|
241
|
-
translations = ::Zen::Language::
|
|
245
|
+
translations = ::Zen::Language::Translations
|
|
242
246
|
|
|
243
247
|
if !translations or !translations.key?(lang)
|
|
244
248
|
raise(
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
labels:
|
|
3
|
-
|
|
4
|
-
zen_website : 'Website'
|
|
5
|
-
zen_docs : 'Documentation'
|
|
6
|
-
zen_github : 'GitHub Account'
|
|
3
|
+
powered_by : 'Powered by'
|
|
7
4
|
view_website : 'View Website'
|
|
8
5
|
logout : 'Logout'
|
|
9
6
|
profile : 'Profile'
|
|
@@ -14,6 +11,7 @@ errors:
|
|
|
14
11
|
no_templates : 'No templates were found for the given action.'
|
|
15
12
|
no_theme : 'No theme has been specified.'
|
|
16
13
|
invalid_request : 'The request could not be executed as the specified data is incorrect.'
|
|
14
|
+
require_login : 'You need to be logged in in order to view this page.'
|
|
17
15
|
|
|
18
16
|
special:
|
|
19
17
|
format_hash:
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
labels:
|
|
3
|
-
|
|
4
|
-
zen_website : 'Website'
|
|
5
|
-
zen_docs : 'Documentatie'
|
|
6
|
-
zen_github : 'GitHub account'
|
|
3
|
+
powered_by : 'Aangedreven door'
|
|
7
4
|
view_website: 'Bekijk website'
|
|
8
5
|
logout : 'Uitloggen'
|
|
9
6
|
profile : 'Profiel'
|
|
@@ -14,6 +11,7 @@ errors:
|
|
|
14
11
|
no_templates : 'Er konden geen sjablonen worden gevonden voor de huidige actie.'
|
|
15
12
|
no_theme : 'Er is geen thema ingesteld.'
|
|
16
13
|
invalid_request: 'De actie kon niet worden uitgevoerd omdat de data onjuist is.'
|
|
14
|
+
require_login : 'U moet ingelogd zijn om deze pagina te kunnen bekijken.'
|
|
17
15
|
|
|
18
16
|
special:
|
|
19
17
|
format_hash:
|