zen 0.2.7 → 0.2.8
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|