we5-browsercms 3.0.5.1 → 3.1.0

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.
Files changed (1025) hide show
  1. data/app/controllers/cms/application_controller.rb +2 -12
  2. data/app/controllers/cms/categories_controller.rb +4 -1
  3. data/app/controllers/cms/content_block_controller.rb +1 -1
  4. data/app/controllers/cms/content_controller.rb +3 -83
  5. data/app/controllers/cms/dashboard_controller.rb +1 -1
  6. data/app/controllers/cms/links_controller.rb +2 -2
  7. data/app/controllers/cms/pages_controller.rb +2 -0
  8. data/app/controllers/cms/portlets_controller.rb +2 -2
  9. data/app/controllers/cms/tags_controller.rb +4 -1
  10. data/app/controllers/tests/pretend_controller.rb +32 -0
  11. data/app/helpers/application_helper.rb +3 -1
  12. data/app/helpers/cms/application_helper.rb +18 -32
  13. data/app/helpers/cms/form_builder.rb +129 -54
  14. data/app/helpers/cms/menu_helper.rb +13 -2
  15. data/app/helpers/cms/page_helper.rb +26 -2
  16. data/app/helpers/cms/rendering_helper.rb +42 -0
  17. data/app/models/guest_user.rb +11 -3
  18. data/app/models/page.rb +1 -1
  19. data/app/models/page_template.rb +1 -18
  20. data/app/models/portlet.rb +12 -2
  21. data/app/models/section.rb +41 -33
  22. data/app/models/tag.rb +1 -1
  23. data/app/models/task.rb +32 -26
  24. data/app/models/templates.rb +31 -0
  25. data/app/models/user.rb +35 -9
  26. data/app/portlets/forgot_password_portlet.rb +1 -0
  27. data/app/views/cms/blocks/_toolbar_for_member.html.erb +1 -1
  28. data/app/views/cms/blocks/edit.html.erb +5 -0
  29. data/app/views/cms/blocks/index.html.erb +26 -39
  30. data/app/views/cms/blocks/show.html.erb +3 -0
  31. data/app/views/cms/blocks/usages.html.erb +17 -22
  32. data/app/views/cms/blocks/versions.html.erb +25 -53
  33. data/app/views/cms/connectors/new.html.erb +6 -6
  34. data/app/views/cms/dashboard/_page_drafts.html.erb +27 -38
  35. data/app/views/cms/dashboard/_tasks.html.erb +31 -43
  36. data/app/views/cms/dynamic_views/index.html.erb +17 -26
  37. data/app/views/cms/email_messages/index.html.erb +10 -19
  38. data/app/views/cms/form_builder/_cms_check_box.html.erb +7 -0
  39. data/app/views/cms/form_builder/_cms_drop_down.html.erb +0 -7
  40. data/app/views/cms/form_builder/_cms_fancy_drop_down.html.erb +9 -0
  41. data/app/views/cms/form_builder/_cms_file_field.html.erb +11 -7
  42. data/app/views/cms/form_builder/_cms_instructions.html.erb +4 -0
  43. data/app/views/cms/form_builder/_cms_template_editor.html.erb +8 -0
  44. data/app/views/cms/groups/_permissions.html.erb +1 -1
  45. data/app/views/cms/groups/index.html.erb +34 -49
  46. data/app/views/cms/page_routes/index.html.erb +19 -28
  47. data/app/views/cms/page_routes/show.html.erb +2 -2
  48. data/app/views/cms/pages/_edit_connector.html.erb +9 -1
  49. data/app/views/cms/pages/versions.html.erb +31 -44
  50. data/app/views/cms/redirects/index.html.erb +14 -22
  51. data/app/views/cms/routes/index.html.erb +19 -21
  52. data/app/views/cms/tags/render.html.erb +19 -38
  53. data/app/views/cms/toolbar/index.html.erb +0 -11
  54. data/app/views/cms/users/index.html.erb +25 -33
  55. data/app/views/layouts/cms/_head.html.erb +1 -1
  56. data/app/views/layouts/cms/content_library.html.erb +7 -7
  57. data/app/views/layouts/cms/thickbox.html.erb +2 -2
  58. data/app/views/portlets/forgot_password/_form.html.erb +4 -3
  59. data/app/views/tests/pretend/open_with_layout.html.erb +2 -0
  60. data/bin/bcms +6 -0
  61. data/bin/browsercms +73 -0
  62. data/browsercms.gemspec +444 -369
  63. data/db/demo/page_templates/sub_page.html.erb +1 -1
  64. data/db/migrate/20081114172307_load_seed_data.rb +0 -29
  65. data/doc/app/classes/AbstractFileBlock.html +32 -6
  66. data/doc/app/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html +136 -85
  67. data/doc/app/classes/ActiveSupport/Cache/FileStore.html +6 -6
  68. data/doc/app/classes/ActsAsList.html +6 -6
  69. data/doc/app/classes/ActsAsList/ClassMethods.html +8 -8
  70. data/doc/app/classes/ActsAsList/InstanceMethods.html +143 -119
  71. data/doc/app/classes/ApplicationHelper.html +4 -0
  72. data/doc/app/classes/Attachment.html +134 -134
  73. data/doc/app/classes/Category.html +24 -24
  74. data/doc/app/classes/CategoryType.html +18 -18
  75. data/doc/app/classes/Cms.html +227 -94
  76. data/doc/app/classes/Cms/Acts.html +5 -0
  77. data/doc/app/classes/Cms/Acts/ContentBlock.html +6 -6
  78. data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods.html +6 -6
  79. data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods/InstanceMethods.html +6 -6
  80. data/doc/app/classes/Cms/Acts/ContentPage.html +187 -0
  81. data/doc/app/classes/Cms/Acts/ContentPage/ClassMethods.html +188 -0
  82. data/doc/app/classes/Cms/ApplicationController.html +69 -118
  83. data/doc/app/classes/Cms/ApplicationHelper.html +277 -393
  84. data/doc/app/classes/Cms/AttachmentsController.html +6 -6
  85. data/doc/app/classes/Cms/Authentication/Controller.html +226 -228
  86. data/doc/app/classes/Cms/Authentication/Model.html +6 -6
  87. data/doc/app/classes/Cms/Authentication/Model/ClassMethods.html +30 -30
  88. data/doc/app/classes/Cms/Authentication/Model/InstanceMethods.html +66 -66
  89. data/doc/app/classes/Cms/Behaviors/Archiving.html +6 -6
  90. data/doc/app/classes/Cms/Behaviors/Archiving/InstanceMethods.html +24 -24
  91. data/doc/app/classes/Cms/Behaviors/Archiving/MacroMethods.html +12 -12
  92. data/doc/app/classes/Cms/Behaviors/Attaching.html +6 -6
  93. data/doc/app/classes/Cms/Behaviors/Attaching/InstanceMethods.html +123 -123
  94. data/doc/app/classes/Cms/Behaviors/Attaching/MacroMethods.html +12 -12
  95. data/doc/app/classes/Cms/Behaviors/Categorizing.html +6 -6
  96. data/doc/app/classes/Cms/Behaviors/Categorizing/InstanceMethods.html +6 -6
  97. data/doc/app/classes/Cms/Behaviors/Categorizing/MacroMethods.html +12 -12
  98. data/doc/app/classes/Cms/Behaviors/ClassMethods.html +60 -60
  99. data/doc/app/classes/Cms/Behaviors/Connecting.html +6 -6
  100. data/doc/app/classes/Cms/Behaviors/Connecting/ClassMethods.html +18 -18
  101. data/doc/app/classes/Cms/Behaviors/Connecting/InstanceMethods.html +42 -42
  102. data/doc/app/classes/Cms/Behaviors/Connecting/MacroMethods.html +12 -12
  103. data/doc/app/classes/Cms/Behaviors/DynamicAttributes.html +6 -6
  104. data/doc/app/classes/Cms/Behaviors/DynamicAttributes/InstanceMethods.html +14 -14
  105. data/doc/app/classes/Cms/Behaviors/DynamicAttributes/MacroMethods.html +12 -12
  106. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange.html +12 -12
  107. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/InstanceMethods.html +6 -6
  108. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/MacroMethods.html +12 -12
  109. data/doc/app/classes/Cms/Behaviors/Hiding.html +6 -6
  110. data/doc/app/classes/Cms/Behaviors/Hiding/InstanceMethods.html +24 -24
  111. data/doc/app/classes/Cms/Behaviors/Hiding/MacroMethods.html +12 -12
  112. data/doc/app/classes/Cms/Behaviors/InstanceMethods.html +127 -74
  113. data/doc/app/classes/Cms/Behaviors/Pagination.html +6 -6
  114. data/doc/app/classes/Cms/Behaviors/Pagination/ClassMethods.html +12 -12
  115. data/doc/app/classes/Cms/Behaviors/Pagination/Collection.html +55 -55
  116. data/doc/app/classes/Cms/Behaviors/Pagination/InvalidPage.html +6 -6
  117. data/doc/app/classes/Cms/Behaviors/Publishing.html +12 -12
  118. data/doc/app/classes/Cms/Behaviors/Publishing/InstanceMethods.html +119 -119
  119. data/doc/app/classes/Cms/Behaviors/Publishing/MacroMethods.html +25 -14
  120. data/doc/app/classes/Cms/Behaviors/Rendering.html +10 -13
  121. data/doc/app/classes/Cms/Behaviors/Rendering/MacroMethods.html +33 -33
  122. data/doc/app/classes/Cms/Behaviors/Searching.html +6 -6
  123. data/doc/app/classes/Cms/Behaviors/Searching/ClassMethods.html +12 -12
  124. data/doc/app/classes/Cms/Behaviors/Searching/MacroMethods.html +12 -12
  125. data/doc/app/classes/Cms/Behaviors/SoftDeleting.html +6 -6
  126. data/doc/app/classes/Cms/Behaviors/SoftDeleting/ClassMethods.html +24 -24
  127. data/doc/app/classes/Cms/Behaviors/SoftDeleting/InstanceMethods.html +30 -30
  128. data/doc/app/classes/Cms/Behaviors/SoftDeleting/MacroMethods.html +12 -12
  129. data/doc/app/classes/Cms/Behaviors/Taggable.html +6 -6
  130. data/doc/app/classes/Cms/Behaviors/Taggable/ClassMethods.html +12 -12
  131. data/doc/app/classes/Cms/Behaviors/Taggable/InstanceMethods.html +34 -33
  132. data/doc/app/classes/Cms/Behaviors/Taggable/MacroMethods.html +12 -12
  133. data/doc/app/classes/Cms/Behaviors/Userstamping.html +6 -6
  134. data/doc/app/classes/Cms/Behaviors/Userstamping/InstanceMethods.html +6 -6
  135. data/doc/app/classes/Cms/Behaviors/Userstamping/MacroMethods.html +12 -12
  136. data/doc/app/classes/Cms/Behaviors/Versioning.html +6 -6
  137. data/doc/app/classes/Cms/Behaviors/Versioning/ClassMethods.html +30 -30
  138. data/doc/app/classes/Cms/Behaviors/Versioning/InstanceMethods.html +322 -294
  139. data/doc/app/classes/Cms/Behaviors/Versioning/MacroMethods.html +31 -31
  140. data/doc/app/classes/Cms/CacheController.html +12 -12
  141. data/doc/app/classes/Cms/Caching.html +12 -12
  142. data/doc/app/classes/Cms/CategoriesController.html +35 -0
  143. data/doc/app/classes/Cms/CategoryTypesController.html +6 -6
  144. data/doc/app/classes/Cms/ConnectorsController.html +19 -19
  145. data/doc/app/classes/Cms/ContentBlockController.html +486 -440
  146. data/doc/app/classes/Cms/ContentController.html +48 -121
  147. data/doc/app/classes/Cms/ContentRenderingSupport.html +222 -0
  148. data/doc/app/classes/Cms/ContentTypesController.html +6 -6
  149. data/doc/app/classes/Cms/DashboardController.html +12 -11
  150. data/doc/app/classes/Cms/DataLoader.html +12 -12
  151. data/doc/app/classes/Cms/DomainSupport.html +166 -0
  152. data/doc/app/classes/Cms/DynamicViewsController.html +54 -54
  153. data/doc/app/classes/Cms/EmailMessagesController.html +12 -12
  154. data/doc/app/classes/Cms/ErrorHandling.html +50 -23
  155. data/doc/app/classes/Cms/Errors/AccessDenied.html +10 -10
  156. data/doc/app/classes/Cms/Extensions/ActionView/Base.html +6 -6
  157. data/doc/app/classes/Cms/Extensions/ActiveRecord/Base.html +6 -6
  158. data/doc/app/classes/Cms/Extensions/ActiveRecord/Errors.html +6 -6
  159. data/doc/app/classes/Cms/Extensions/Hash.html +12 -12
  160. data/doc/app/classes/Cms/Extensions/Integer.html +6 -6
  161. data/doc/app/classes/Cms/Extensions/NilClass.html +24 -24
  162. data/doc/app/classes/Cms/Extensions/String.html +24 -24
  163. data/doc/app/classes/Cms/FormBuilder.html +258 -90
  164. data/doc/app/classes/Cms/FormTagHelper.html +30 -30
  165. data/doc/app/classes/Cms/GroupsController.html +24 -24
  166. data/doc/app/classes/Cms/HomeController.html +6 -6
  167. data/doc/app/classes/Cms/LinksController.html +64 -62
  168. data/doc/app/classes/Cms/MenuHelper.html +210 -165
  169. data/doc/app/classes/Cms/PageHelper.html +178 -91
  170. data/doc/app/classes/Cms/PageRouteOptionsController.html +54 -54
  171. data/doc/app/classes/Cms/PageRoutesController.html +36 -36
  172. data/doc/app/classes/Cms/PagesController.html +111 -109
  173. data/doc/app/classes/Cms/PathHelper.html +36 -36
  174. data/doc/app/classes/Cms/PortletController.html +6 -6
  175. data/doc/app/classes/Cms/PortletsController.html +43 -43
  176. data/doc/app/classes/Cms/RedirectsController.html +12 -12
  177. data/doc/app/classes/Cms/RenderingHelper.html +214 -0
  178. data/doc/app/classes/Cms/ResourceController.html +114 -114
  179. data/doc/app/classes/Cms/Routes.html +151 -143
  180. data/doc/app/classes/Cms/RoutesController.html +6 -6
  181. data/doc/app/classes/Cms/SectionNodesController.html +36 -36
  182. data/doc/app/classes/Cms/SectionNodesHelper.html +6 -6
  183. data/doc/app/classes/Cms/SectionsController.html +212 -188
  184. data/doc/app/classes/Cms/SessionsController.html +68 -39
  185. data/doc/app/classes/Cms/TagsController.html +30 -6
  186. data/doc/app/classes/Cms/TasksController.html +18 -18
  187. data/doc/app/classes/Cms/TemplateSupport.html +185 -0
  188. data/doc/app/classes/Cms/ToolbarController.html +6 -6
  189. data/doc/app/classes/Cms/UsersController.html +129 -153
  190. data/doc/app/classes/CommandLine.html +226 -0
  191. data/doc/app/classes/Connector.html +75 -71
  192. data/doc/app/classes/ContentType.html +72 -72
  193. data/doc/app/classes/DynamicPortlet.html +6 -6
  194. data/doc/app/classes/DynamicView.html +130 -133
  195. data/doc/app/classes/EmailMessage.html +24 -24
  196. data/doc/app/classes/EmailMessageMailer.html +6 -6
  197. data/doc/app/classes/EmailPagePortlet.html +12 -12
  198. data/doc/app/classes/FileBlock.html +18 -18
  199. data/doc/app/classes/ForgotPasswordMailer.html +151 -0
  200. data/doc/app/classes/ForgotPasswordPortlet.html +162 -0
  201. data/doc/app/classes/Group.html +72 -20
  202. data/doc/app/classes/GuestUser.html +138 -93
  203. data/doc/app/classes/HtmlBlock.html +12 -12
  204. data/doc/app/classes/ImageBlock.html +18 -18
  205. data/doc/app/classes/InitialData.html +6 -6
  206. data/doc/app/classes/Link.html +30 -30
  207. data/doc/app/classes/LoginPortlet.html +6 -6
  208. data/doc/app/classes/Page.html +185 -185
  209. data/doc/app/classes/PagePartial.html +18 -18
  210. data/doc/app/classes/PageRoute.html +48 -48
  211. data/doc/app/classes/PageTemplate.html +60 -78
  212. data/doc/app/classes/Portlet.html +339 -267
  213. data/doc/app/classes/ResetPasswordPortlet.html +169 -0
  214. data/doc/app/classes/Section.html +257 -200
  215. data/doc/app/classes/SectionNode.html +60 -60
  216. data/doc/app/classes/Sequence.html +6 -6
  217. data/doc/app/classes/Site.html +30 -30
  218. data/doc/app/classes/Tag.html +31 -31
  219. data/doc/app/classes/TagCloudPortlet.html +12 -12
  220. data/doc/app/classes/Tagging.html +6 -6
  221. data/doc/app/classes/Task.html +37 -37
  222. data/doc/app/classes/Templates.html +151 -0
  223. data/doc/app/classes/Tests.html +107 -0
  224. data/doc/app/classes/Tests/PretendController.html +275 -0
  225. data/doc/app/classes/User.html +344 -205
  226. data/doc/app/created.rid +1 -1
  227. data/doc/app/files/app/controllers/cms/application_controller_rb.html +1 -1
  228. data/doc/app/files/app/controllers/cms/categories_controller_rb.html +1 -1
  229. data/doc/app/files/app/controllers/cms/connectors_controller_rb.html +1 -1
  230. data/doc/app/files/app/controllers/cms/content_block_controller_rb.html +1 -1
  231. data/doc/app/files/app/controllers/cms/content_controller_rb.html +1 -1
  232. data/doc/app/files/app/controllers/cms/dashboard_controller_rb.html +1 -1
  233. data/doc/app/files/app/controllers/cms/error_handling_rb.html +1 -1
  234. data/doc/app/files/app/controllers/cms/links_controller_rb.html +1 -1
  235. data/doc/app/files/app/controllers/cms/pages_controller_rb.html +1 -1
  236. data/doc/app/files/app/controllers/cms/portlets_controller_rb.html +1 -1
  237. data/doc/app/files/app/controllers/cms/section_nodes_controller_rb.html +1 -1
  238. data/doc/app/files/app/controllers/cms/sections_controller_rb.html +1 -1
  239. data/doc/app/files/app/controllers/cms/sessions_controller_rb.html +1 -1
  240. data/doc/app/files/app/controllers/cms/tags_controller_rb.html +1 -1
  241. data/doc/app/files/app/controllers/cms/users_controller_rb.html +1 -1
  242. data/doc/app/files/app/controllers/tests/pretend_controller_rb.html +112 -0
  243. data/doc/app/files/app/helpers/application_helper_rb.html +5 -1
  244. data/doc/app/files/app/helpers/cms/application_helper_rb.html +1 -1
  245. data/doc/app/files/app/helpers/cms/form_builder_rb.html +8 -1
  246. data/doc/app/files/app/helpers/cms/menu_helper_rb.html +1 -1
  247. data/doc/app/files/app/helpers/cms/page_helper_rb.html +1 -1
  248. data/doc/app/files/app/helpers/cms/rendering_helper_rb.html +111 -0
  249. data/doc/app/files/app/helpers/cms/template_support_rb.html +108 -0
  250. data/doc/app/files/app/models/abstract_file_block_rb.html +1 -1
  251. data/doc/app/files/app/models/attachment_rb.html +2 -2
  252. data/doc/app/files/app/models/connector_rb.html +1 -1
  253. data/doc/app/files/app/models/content_type_rb.html +1 -1
  254. data/doc/app/files/app/models/dynamic_view_rb.html +1 -1
  255. data/doc/app/files/app/models/forgot_password_mailer_rb.html +101 -0
  256. data/doc/app/files/app/models/group_rb.html +10 -1
  257. data/doc/app/files/app/models/guest_user_rb.html +14 -1
  258. data/doc/app/files/app/models/link_rb.html +1 -1
  259. data/doc/app/files/app/models/page_rb.html +1 -1
  260. data/doc/app/files/app/models/page_template_rb.html +1 -1
  261. data/doc/app/files/app/models/portlet_rb.html +1 -1
  262. data/doc/app/files/app/models/section_rb.html +1 -1
  263. data/doc/app/files/app/models/tag_rb.html +1 -1
  264. data/doc/app/files/app/models/task_rb.html +1 -1
  265. data/doc/app/files/app/models/templates_rb.html +108 -0
  266. data/doc/app/files/app/models/user_rb.html +1 -1
  267. data/doc/app/files/app/portlets/forgot_password_portlet_rb.html +108 -0
  268. data/doc/app/files/app/portlets/reset_password_portlet_rb.html +101 -0
  269. data/doc/app/files/doc/README_FOR_APP.html +7 -6
  270. data/doc/app/files/lib/acts_as_list_rb.html +1 -1
  271. data/doc/app/files/lib/browsercms_rb.html +1 -1
  272. data/doc/app/files/lib/cms/acts/content_block_rb.html +1 -1
  273. data/doc/app/files/lib/cms/acts/content_page_rb.html +125 -0
  274. data/doc/app/files/lib/cms/authentication/controller_rb.html +61 -1
  275. data/doc/app/files/lib/cms/behaviors/attaching_rb.html +1 -1
  276. data/doc/app/files/lib/cms/behaviors/publishing_rb.html +1 -1
  277. data/doc/app/files/lib/cms/behaviors/rendering_rb.html +1 -1
  278. data/doc/app/files/lib/cms/behaviors/taggable_rb.html +1 -1
  279. data/doc/app/files/lib/cms/behaviors/versioning_rb.html +1 -1
  280. data/doc/app/files/lib/cms/content_rendering_support_rb.html +108 -0
  281. data/doc/app/files/lib/cms/domain_support_rb.html +108 -0
  282. data/doc/app/files/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements_rb.html +1 -1
  283. data/doc/app/files/lib/cms/init_rb.html +8 -1
  284. data/doc/app/files/lib/cms/routes_rb.html +1 -1
  285. data/doc/app/files/lib/cms/version_rb.html +107 -0
  286. data/doc/app/files/lib/command_line_rb.html +101 -0
  287. data/doc/app/fr_class_index.html +13 -0
  288. data/doc/app/fr_file_index.html +12 -0
  289. data/doc/app/fr_method_index.html +761 -712
  290. data/doc/guides/html/authentication.html +201 -0
  291. data/doc/guides/html/build_it_yourself.html +9 -1
  292. data/doc/guides/html/building_modules.html +90 -48
  293. data/doc/guides/html/building_templates.html +506 -0
  294. data/doc/guides/html/content_blocks.html +476 -0
  295. data/doc/guides/html/customizing_browsercms.html +173 -0
  296. data/doc/guides/html/deployment_guide.html +30 -5
  297. data/doc/guides/html/getting_started.html +61 -27
  298. data/doc/guides/html/images/content_blocks/add_field_to_form.png +0 -0
  299. data/doc/guides/html/images/content_blocks/add_second_block.png +0 -0
  300. data/doc/guides/html/images/nfl_sitemap.png +0 -0
  301. data/doc/guides/html/index.html +33 -22
  302. data/doc/guides/html/installing_modules.html +9 -1
  303. data/doc/guides/html/portlets.html +237 -0
  304. data/doc/guides/html/user_guide.html +9 -1
  305. data/doc/guides/html/{designer_guide.html → writing_guides.html} +21 -20
  306. data/lib/cms/acts/content_page.rb +69 -0
  307. data/lib/cms/authentication/controller.rb +1 -1
  308. data/lib/cms/behaviors/rendering.rb +9 -2
  309. data/lib/cms/behaviors/versioning.rb +43 -35
  310. data/lib/cms/content_rendering_support.rb +96 -0
  311. data/lib/cms/domain_support.rb +20 -0
  312. data/lib/cms/init.rb +21 -2
  313. data/lib/cms/version.rb +5 -0
  314. data/lib/command_line.rb +39 -0
  315. data/lib/tasks/cms.rake +12 -1
  316. data/public/bcms/ckeditor/ckeditor.js +108 -0
  317. data/public/bcms/ckeditor/config.js +18 -0
  318. data/public/bcms/ckeditor/core/_bootstrap.js +64 -0
  319. data/public/bcms/ckeditor/core/ajax.js +143 -0
  320. data/public/bcms/ckeditor/core/ckeditor.js +96 -0
  321. data/public/bcms/ckeditor/core/ckeditor_base.js +190 -0
  322. data/public/bcms/ckeditor/core/ckeditor_basic.js +241 -0
  323. data/public/bcms/ckeditor/core/command.js +70 -0
  324. data/public/bcms/ckeditor/core/commanddefinition.js +72 -0
  325. data/public/bcms/ckeditor/core/config.js +287 -0
  326. data/public/bcms/ckeditor/core/dom.js +21 -0
  327. data/public/bcms/ckeditor/core/dom/document.js +210 -0
  328. data/public/bcms/ckeditor/core/dom/documentfragment.js +49 -0
  329. data/public/bcms/ckeditor/core/dom/domobject.js +204 -0
  330. data/public/bcms/ckeditor/core/dom/element.js +1384 -0
  331. data/public/bcms/ckeditor/core/dom/elementpath.js +104 -0
  332. data/public/bcms/ckeditor/core/dom/event.js +137 -0
  333. data/public/bcms/ckeditor/core/dom/node.js +649 -0
  334. data/public/bcms/ckeditor/core/dom/nodelist.js +23 -0
  335. data/public/bcms/ckeditor/core/dom/range.js +1668 -0
  336. data/public/bcms/ckeditor/core/dom/text.js +123 -0
  337. data/public/bcms/ckeditor/core/dom/walker.js +411 -0
  338. data/public/bcms/ckeditor/core/dom/window.js +96 -0
  339. data/public/bcms/ckeditor/core/dtd.js +200 -0
  340. data/public/bcms/ckeditor/core/editor.js +650 -0
  341. data/public/bcms/ckeditor/core/editor_basic.js +178 -0
  342. data/public/bcms/ckeditor/core/env.js +219 -0
  343. data/public/bcms/ckeditor/core/event.js +335 -0
  344. data/public/bcms/ckeditor/core/eventInfo.js +120 -0
  345. data/public/bcms/ckeditor/core/focusmanager.js +123 -0
  346. data/public/bcms/ckeditor/core/htmlparser.js +212 -0
  347. data/public/bcms/ckeditor/core/htmlparser/basicwriter.js +140 -0
  348. data/public/bcms/ckeditor/core/htmlparser/cdata.js +44 -0
  349. data/public/bcms/ckeditor/core/htmlparser/comment.js +59 -0
  350. data/public/bcms/ckeditor/core/htmlparser/element.js +196 -0
  351. data/public/bcms/ckeditor/core/htmlparser/filter.js +233 -0
  352. data/public/bcms/ckeditor/core/htmlparser/fragment.js +434 -0
  353. data/public/bcms/ckeditor/core/htmlparser/text.js +55 -0
  354. data/public/bcms/ckeditor/core/imagecacher.js +58 -0
  355. data/public/bcms/ckeditor/core/lang.js +147 -0
  356. data/public/bcms/ckeditor/core/loader.js +238 -0
  357. data/public/bcms/ckeditor/core/plugindefinition.js +66 -0
  358. data/public/bcms/ckeditor/core/plugins.js +82 -0
  359. data/public/bcms/ckeditor/core/resourcemanager.js +233 -0
  360. data/public/bcms/ckeditor/core/scriptloader.js +194 -0
  361. data/public/bcms/ckeditor/core/skins.js +185 -0
  362. data/public/bcms/ckeditor/core/test.js +184 -0
  363. data/public/bcms/ckeditor/core/themes.js +18 -0
  364. data/public/bcms/ckeditor/core/tools.js +531 -0
  365. data/public/bcms/ckeditor/core/ui.js +106 -0
  366. data/public/bcms/ckeditor/core/xml.js +165 -0
  367. data/public/bcms/ckeditor/editor.js +51 -0
  368. data/public/bcms/ckeditor/lang/_languages.js +82 -0
  369. data/public/bcms/ckeditor/lang/_translationstatus.txt +59 -0
  370. data/public/bcms/ckeditor/lang/af.js +674 -0
  371. data/public/bcms/ckeditor/lang/ar.js +674 -0
  372. data/public/bcms/ckeditor/lang/bg.js +674 -0
  373. data/public/bcms/ckeditor/lang/bn.js +674 -0
  374. data/public/bcms/ckeditor/lang/bs.js +674 -0
  375. data/public/bcms/ckeditor/lang/ca.js +674 -0
  376. data/public/bcms/ckeditor/lang/cs.js +674 -0
  377. data/public/bcms/ckeditor/lang/da.js +674 -0
  378. data/public/bcms/ckeditor/lang/de.js +674 -0
  379. data/public/bcms/ckeditor/lang/el.js +674 -0
  380. data/public/bcms/ckeditor/lang/en-au.js +674 -0
  381. data/public/bcms/ckeditor/lang/en-ca.js +674 -0
  382. data/public/bcms/ckeditor/lang/en-uk.js +674 -0
  383. data/public/bcms/ckeditor/lang/en.js +674 -0
  384. data/public/bcms/ckeditor/lang/eo.js +674 -0
  385. data/public/bcms/ckeditor/lang/es.js +674 -0
  386. data/public/bcms/ckeditor/lang/et.js +674 -0
  387. data/public/bcms/ckeditor/lang/eu.js +674 -0
  388. data/public/bcms/ckeditor/lang/fa.js +674 -0
  389. data/public/bcms/ckeditor/lang/fi.js +674 -0
  390. data/public/bcms/ckeditor/lang/fo.js +674 -0
  391. data/public/bcms/ckeditor/lang/fr-ca.js +674 -0
  392. data/public/bcms/ckeditor/lang/fr.js +674 -0
  393. data/public/bcms/ckeditor/lang/gl.js +674 -0
  394. data/public/bcms/ckeditor/lang/gu.js +674 -0
  395. data/public/bcms/ckeditor/lang/he.js +674 -0
  396. data/public/bcms/ckeditor/lang/hi.js +674 -0
  397. data/public/bcms/ckeditor/lang/hr.js +674 -0
  398. data/public/bcms/ckeditor/lang/hu.js +674 -0
  399. data/public/bcms/ckeditor/lang/is.js +674 -0
  400. data/public/bcms/ckeditor/lang/it.js +674 -0
  401. data/public/bcms/ckeditor/lang/ja.js +674 -0
  402. data/public/bcms/ckeditor/lang/km.js +674 -0
  403. data/public/bcms/ckeditor/lang/ko.js +674 -0
  404. data/public/bcms/ckeditor/lang/lt.js +674 -0
  405. data/public/bcms/ckeditor/lang/lv.js +674 -0
  406. data/public/bcms/ckeditor/lang/mn.js +674 -0
  407. data/public/bcms/ckeditor/lang/ms.js +674 -0
  408. data/public/bcms/ckeditor/lang/nb.js +674 -0
  409. data/public/bcms/ckeditor/lang/nl.js +674 -0
  410. data/public/bcms/ckeditor/lang/no.js +674 -0
  411. data/public/bcms/ckeditor/lang/pl.js +674 -0
  412. data/public/bcms/ckeditor/lang/pt-br.js +674 -0
  413. data/public/bcms/ckeditor/lang/pt.js +674 -0
  414. data/public/bcms/ckeditor/lang/ro.js +674 -0
  415. data/public/bcms/ckeditor/lang/ru.js +674 -0
  416. data/public/bcms/ckeditor/lang/sk.js +674 -0
  417. data/public/bcms/ckeditor/lang/sl.js +674 -0
  418. data/public/bcms/ckeditor/lang/sr-latn.js +674 -0
  419. data/public/bcms/ckeditor/lang/sr.js +674 -0
  420. data/public/bcms/ckeditor/lang/sv.js +674 -0
  421. data/public/bcms/ckeditor/lang/th.js +674 -0
  422. data/public/bcms/ckeditor/lang/tr.js +674 -0
  423. data/public/bcms/ckeditor/lang/uk.js +674 -0
  424. data/public/bcms/ckeditor/lang/vi.js +674 -0
  425. data/public/bcms/ckeditor/lang/zh-cn.js +674 -0
  426. data/public/bcms/ckeditor/lang/zh.js +674 -0
  427. data/public/bcms/ckeditor/plugins/about/dialogs/about.js +73 -0
  428. data/public/bcms/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  429. data/public/bcms/ckeditor/plugins/about/plugin.js +22 -0
  430. data/public/bcms/ckeditor/plugins/basicstyles/plugin.js +50 -0
  431. data/public/bcms/ckeditor/plugins/blockquote/plugin.js +301 -0
  432. data/public/bcms/ckeditor/plugins/button/plugin.js +264 -0
  433. data/public/bcms/ckeditor/plugins/clipboard/dialogs/paste.js +167 -0
  434. data/public/bcms/ckeditor/plugins/clipboard/plugin.js +208 -0
  435. data/public/bcms/ckeditor/plugins/colorbutton/plugin.js +202 -0
  436. data/public/bcms/ckeditor/plugins/contextmenu/plugin.js +178 -0
  437. data/public/bcms/ckeditor/plugins/dialog/dialogDefinition.js +315 -0
  438. data/public/bcms/ckeditor/plugins/dialog/plugin.js +2742 -0
  439. data/public/bcms/ckeditor/plugins/dialogui/plugin.js +1319 -0
  440. data/public/bcms/ckeditor/plugins/domiterator/plugin.js +354 -0
  441. data/public/bcms/ckeditor/plugins/editingblock/plugin.js +236 -0
  442. data/public/bcms/ckeditor/plugins/elementspath/plugin.js +182 -0
  443. data/public/bcms/ckeditor/plugins/enterkey/plugin.js +324 -0
  444. data/public/bcms/ckeditor/plugins/entities/plugin.js +200 -0
  445. data/public/bcms/ckeditor/plugins/fakeobjects/plugin.js +111 -0
  446. data/public/bcms/ckeditor/plugins/filebrowser/plugin.js +383 -0
  447. data/public/bcms/ckeditor/plugins/find/dialogs/find.js +843 -0
  448. data/public/bcms/ckeditor/plugins/find/plugin.js +46 -0
  449. data/public/bcms/ckeditor/plugins/flash/dialogs/flash.js +682 -0
  450. data/public/bcms/ckeditor/plugins/flash/images/placeholder.png +0 -0
  451. data/public/bcms/ckeditor/plugins/flash/plugin.js +165 -0
  452. data/public/bcms/ckeditor/plugins/floatpanel/plugin.js +325 -0
  453. data/public/bcms/ckeditor/plugins/font/plugin.js +227 -0
  454. data/public/bcms/ckeditor/plugins/format/plugin.js +191 -0
  455. data/public/bcms/ckeditor/plugins/forms/dialogs/button.js +135 -0
  456. data/public/bcms/ckeditor/plugins/forms/dialogs/checkbox.js +138 -0
  457. data/public/bcms/ckeditor/plugins/forms/dialogs/form.js +177 -0
  458. data/public/bcms/ckeditor/plugins/forms/dialogs/hiddenfield.js +91 -0
  459. data/public/bcms/ckeditor/plugins/forms/dialogs/radio.js +135 -0
  460. data/public/bcms/ckeditor/plugins/forms/dialogs/select.js +541 -0
  461. data/public/bcms/ckeditor/plugins/forms/dialogs/textarea.js +114 -0
  462. data/public/bcms/ckeditor/plugins/forms/dialogs/textfield.js +193 -0
  463. data/public/bcms/ckeditor/plugins/forms/plugin.js +193 -0
  464. data/public/bcms/ckeditor/plugins/horizontalrule/plugin.js +35 -0
  465. data/public/bcms/ckeditor/plugins/htmldataprocessor/plugin.js +373 -0
  466. data/public/bcms/ckeditor/plugins/htmlwriter/plugin.js +289 -0
  467. data/public/bcms/ckeditor/plugins/iframedialog/plugin.js +136 -0
  468. data/public/bcms/ckeditor/plugins/image/dialogs/image.js +1225 -0
  469. data/public/bcms/ckeditor/plugins/image/plugin.js +64 -0
  470. data/public/bcms/ckeditor/plugins/indent/plugin.js +323 -0
  471. data/public/bcms/ckeditor/plugins/justify/plugin.js +164 -0
  472. data/public/bcms/ckeditor/plugins/keystrokes/plugin.js +217 -0
  473. data/public/bcms/ckeditor/plugins/link/dialogs/anchor.js +98 -0
  474. data/public/bcms/ckeditor/plugins/link/dialogs/link.js +1217 -0
  475. data/public/{fckeditor/editor → bcms/ckeditor/plugins/link}/images/anchor.gif +0 -0
  476. data/public/bcms/ckeditor/plugins/link/plugin.js +188 -0
  477. data/public/bcms/ckeditor/plugins/list/plugin.js +570 -0
  478. data/public/bcms/ckeditor/plugins/listblock/plugin.js +231 -0
  479. data/public/bcms/ckeditor/plugins/maximize/plugin.js +267 -0
  480. data/public/bcms/ckeditor/plugins/menu/plugin.js +377 -0
  481. data/public/bcms/ckeditor/plugins/menubutton/plugin.js +93 -0
  482. data/public/bcms/ckeditor/plugins/newpage/plugin.js +65 -0
  483. data/public/{fckeditor/editor/css/images/fck_pagebreak.gif → bcms/ckeditor/plugins/pagebreak/images/pagebreak.gif} +0 -0
  484. data/public/bcms/ckeditor/plugins/pagebreak/plugin.js +96 -0
  485. data/public/bcms/ckeditor/plugins/panel/plugin.js +330 -0
  486. data/public/bcms/ckeditor/plugins/panelbutton/plugin.js +140 -0
  487. data/public/bcms/ckeditor/plugins/pastefromword/dialogs/pastefromword.js +307 -0
  488. data/public/bcms/ckeditor/plugins/pastefromword/plugin.js +54 -0
  489. data/public/bcms/ckeditor/plugins/pastetext/dialogs/pastetext.js +65 -0
  490. data/public/bcms/ckeditor/plugins/pastetext/plugin.js +142 -0
  491. data/public/bcms/ckeditor/plugins/popup/plugin.js +62 -0
  492. data/public/bcms/ckeditor/plugins/preview/plugin.js +97 -0
  493. data/public/bcms/ckeditor/plugins/print/plugin.js +41 -0
  494. data/public/bcms/ckeditor/plugins/removeformat/plugin.js +132 -0
  495. data/public/bcms/ckeditor/plugins/resize/plugin.js +115 -0
  496. data/public/bcms/ckeditor/plugins/richcombo/plugin.js +357 -0
  497. data/public/bcms/ckeditor/plugins/save/plugin.js +55 -0
  498. data/public/bcms/ckeditor/plugins/scayt/dialogs/options.js +494 -0
  499. data/public/bcms/ckeditor/plugins/scayt/dialogs/toolbar.css +71 -0
  500. data/public/bcms/ckeditor/plugins/scayt/plugin.js +511 -0
  501. data/public/bcms/ckeditor/plugins/selection/plugin.js +1072 -0
  502. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_address.png +0 -0
  503. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_blockquote.png +0 -0
  504. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_div.png +0 -0
  505. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h1.png +0 -0
  506. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h2.png +0 -0
  507. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h3.png +0 -0
  508. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h4.png +0 -0
  509. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h5.png +0 -0
  510. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h6.png +0 -0
  511. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_p.png +0 -0
  512. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_pre.png +0 -0
  513. data/public/bcms/ckeditor/plugins/showblocks/plugin.js +153 -0
  514. data/public/bcms/ckeditor/plugins/smiley/dialogs/smiley.js +219 -0
  515. data/public/bcms/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  516. data/public/bcms/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  517. data/public/bcms/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  518. data/public/bcms/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  519. data/public/bcms/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  520. data/public/bcms/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  521. data/public/bcms/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  522. data/public/bcms/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  523. data/public/bcms/ckeditor/plugins/smiley/images/heart.gif +0 -0
  524. data/public/bcms/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  525. data/public/bcms/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  526. data/public/bcms/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  527. data/public/bcms/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  528. data/public/bcms/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  529. data/public/bcms/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  530. data/public/bcms/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  531. data/public/bcms/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  532. data/public/bcms/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  533. data/public/bcms/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  534. data/public/bcms/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  535. data/public/bcms/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  536. data/public/bcms/ckeditor/plugins/smiley/plugin.js +74 -0
  537. data/public/bcms/ckeditor/plugins/sourcearea/plugin.js +185 -0
  538. data/public/bcms/ckeditor/plugins/specialchar/dialogs/specialchar.js +362 -0
  539. data/public/bcms/ckeditor/plugins/specialchar/plugin.js +29 -0
  540. data/public/bcms/ckeditor/plugins/styles/plugin.js +1242 -0
  541. data/public/bcms/ckeditor/plugins/stylescombo/plugin.js +295 -0
  542. data/public/bcms/ckeditor/plugins/stylescombo/styles/default.js +85 -0
  543. data/public/bcms/ckeditor/plugins/tab/plugin.js +266 -0
  544. data/public/bcms/ckeditor/plugins/table/dialogs/table.js +550 -0
  545. data/public/bcms/ckeditor/plugins/table/plugin.js +70 -0
  546. data/public/bcms/ckeditor/plugins/tabletools/dialogs/tableCell.js +328 -0
  547. data/public/bcms/ckeditor/plugins/tabletools/plugin.js +701 -0
  548. data/public/bcms/ckeditor/plugins/templates/dialogs/templates.js +170 -0
  549. data/public/bcms/ckeditor/plugins/templates/plugin.js +99 -0
  550. data/public/bcms/ckeditor/plugins/templates/templates/default.js +94 -0
  551. data/public/{fckeditor/editor/dialog/fck_template → bcms/ckeditor/plugins/templates/templates}/images/template1.gif +0 -0
  552. data/public/{fckeditor/editor/dialog/fck_template → bcms/ckeditor/plugins/templates/templates}/images/template2.gif +0 -0
  553. data/public/{fckeditor/editor/dialog/fck_template → bcms/ckeditor/plugins/templates/templates}/images/template3.gif +0 -0
  554. data/public/bcms/ckeditor/plugins/toolbar/plugin.js +412 -0
  555. data/public/bcms/ckeditor/plugins/uicolor/dialogs/uicolor.js +203 -0
  556. data/public/bcms/ckeditor/plugins/uicolor/lang/en.js +15 -0
  557. data/public/bcms/ckeditor/plugins/uicolor/plugin.js +35 -0
  558. data/public/bcms/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  559. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  560. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  561. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  562. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  563. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/yui.css +15 -0
  564. data/public/bcms/ckeditor/plugins/uicolor/yui/yui.js +71 -0
  565. data/public/bcms/ckeditor/plugins/undo/plugin.js +490 -0
  566. data/public/bcms/ckeditor/plugins/wsc/dialogs/ciframe.html +49 -0
  567. data/public/bcms/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  568. data/public/bcms/ckeditor/plugins/wsc/dialogs/wsc.css +83 -0
  569. data/public/bcms/ckeditor/plugins/wsc/dialogs/wsc.js +169 -0
  570. data/public/bcms/ckeditor/plugins/wsc/plugin.js +32 -0
  571. data/public/bcms/ckeditor/plugins/wysiwygarea/plugin.js +636 -0
  572. data/public/bcms/ckeditor/skins/kama/dialog.css +742 -0
  573. data/public/bcms/ckeditor/skins/kama/editor.css +21 -0
  574. data/public/bcms/ckeditor/skins/kama/elementspath.css +68 -0
  575. data/public/bcms/ckeditor/skins/kama/icons.css +309 -0
  576. data/public/bcms/ckeditor/skins/kama/icons.png +0 -0
  577. data/public/{fckeditor/editor/skins/default/images/dialog.sides.gif → bcms/ckeditor/skins/kama/images/dialog_sides.gif} +0 -0
  578. data/public/{fckeditor/editor/skins/default/images/dialog.sides.png → bcms/ckeditor/skins/kama/images/dialog_sides.png} +0 -0
  579. data/public/{fckeditor/editor/skins/default/images/dialog.sides.rtl.png → bcms/ckeditor/skins/kama/images/dialog_sides_rtl.png} +0 -0
  580. data/public/bcms/ckeditor/skins/kama/images/mini.gif +0 -0
  581. data/public/bcms/ckeditor/skins/kama/images/noimage.png +0 -0
  582. data/public/bcms/ckeditor/skins/kama/images/sprites.png +0 -0
  583. data/public/bcms/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  584. data/public/{fckeditor/editor/skins/default/images/toolbar.start.gif → bcms/ckeditor/skins/kama/images/toolbar_start.gif} +0 -0
  585. data/public/bcms/ckeditor/skins/kama/mainui.css +139 -0
  586. data/public/bcms/ckeditor/skins/kama/menu.css +179 -0
  587. data/public/bcms/ckeditor/skins/kama/panel.css +203 -0
  588. data/public/bcms/ckeditor/skins/kama/presets.css +49 -0
  589. data/public/bcms/ckeditor/skins/kama/reset.css +78 -0
  590. data/public/bcms/ckeditor/skins/kama/richcombo.css +260 -0
  591. data/public/bcms/ckeditor/skins/kama/skin.js +291 -0
  592. data/public/bcms/ckeditor/skins/kama/templates.css +71 -0
  593. data/public/bcms/ckeditor/skins/kama/toolbar.css +384 -0
  594. data/public/bcms/ckeditor/skins/office2003/dialog.css +643 -0
  595. data/public/bcms/ckeditor/skins/office2003/editor.css +21 -0
  596. data/public/bcms/ckeditor/skins/office2003/elementspath.css +68 -0
  597. data/public/bcms/ckeditor/skins/office2003/icons.css +309 -0
  598. data/public/bcms/ckeditor/skins/office2003/icons.png +0 -0
  599. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  600. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  601. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  602. data/public/bcms/ckeditor/skins/office2003/images/mini.gif +0 -0
  603. data/public/bcms/ckeditor/skins/office2003/images/noimage.png +0 -0
  604. data/public/bcms/ckeditor/skins/office2003/images/sprites.png +0 -0
  605. data/public/bcms/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  606. data/public/bcms/ckeditor/skins/office2003/mainui.css +97 -0
  607. data/public/bcms/ckeditor/skins/office2003/menu.css +175 -0
  608. data/public/bcms/ckeditor/skins/office2003/panel.css +198 -0
  609. data/public/bcms/ckeditor/skins/office2003/presets.css +49 -0
  610. data/public/bcms/ckeditor/skins/office2003/reset.css +78 -0
  611. data/public/bcms/ckeditor/skins/office2003/richcombo.css +279 -0
  612. data/public/bcms/ckeditor/skins/office2003/skin.js +77 -0
  613. data/public/bcms/ckeditor/skins/office2003/templates.css +71 -0
  614. data/public/bcms/ckeditor/skins/office2003/toolbar.css +442 -0
  615. data/public/bcms/ckeditor/skins/v2/dialog.css +653 -0
  616. data/public/bcms/ckeditor/skins/v2/editor.css +21 -0
  617. data/public/bcms/ckeditor/skins/v2/elementspath.css +68 -0
  618. data/public/bcms/ckeditor/skins/v2/icons.css +309 -0
  619. data/public/bcms/ckeditor/skins/v2/icons.png +0 -0
  620. data/public/bcms/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  621. data/public/bcms/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  622. data/public/bcms/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  623. data/public/bcms/ckeditor/skins/v2/images/mini.gif +0 -0
  624. data/public/bcms/ckeditor/skins/v2/images/noimage.png +0 -0
  625. data/public/bcms/ckeditor/skins/v2/images/sprites.png +0 -0
  626. data/public/bcms/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  627. data/public/{fckeditor/editor/skins/silver/images/toolbar.start.gif → bcms/ckeditor/skins/v2/images/toolbar_start.gif} +0 -0
  628. data/public/bcms/ckeditor/skins/v2/mainui.css +112 -0
  629. data/public/bcms/ckeditor/skins/v2/menu.css +178 -0
  630. data/public/bcms/ckeditor/skins/v2/panel.css +198 -0
  631. data/public/bcms/ckeditor/skins/v2/presets.css +50 -0
  632. data/public/bcms/ckeditor/skins/v2/reset.css +78 -0
  633. data/public/bcms/ckeditor/skins/v2/richcombo.css +275 -0
  634. data/public/bcms/ckeditor/skins/v2/skin.js +73 -0
  635. data/public/bcms/ckeditor/skins/v2/templates.css +71 -0
  636. data/public/bcms/ckeditor/skins/v2/toolbar.css +399 -0
  637. data/public/bcms/ckeditor/tests/_assets/sample.css +4 -0
  638. data/public/bcms/ckeditor/tests/_assets/sample.js +1 -0
  639. data/public/bcms/ckeditor/tests/_assets/sample.txt +1 -0
  640. data/public/bcms/ckeditor/tests/_assets/sample.xml +5 -0
  641. data/public/bcms/ckeditor/tests/_assets/sample_xml.txt +5 -0
  642. data/public/bcms/ckeditor/tests/core/_editor/custom_config_1.js +10 -0
  643. data/public/bcms/ckeditor/tests/core/_editor/custom_config_2.js +9 -0
  644. data/public/bcms/ckeditor/tests/core/ajax.html +163 -0
  645. data/public/bcms/ckeditor/tests/core/bootstrap.html +66 -0
  646. data/public/bcms/ckeditor/tests/core/ckeditor.html +160 -0
  647. data/public/bcms/ckeditor/tests/core/dom/document.html +126 -0
  648. data/public/bcms/ckeditor/tests/core/dom/documentfragment.html +292 -0
  649. data/public/bcms/ckeditor/tests/core/dom/element.html +637 -0
  650. data/public/bcms/ckeditor/tests/core/dom/node.html +164 -0
  651. data/public/bcms/ckeditor/tests/core/dom/range.html +2411 -0
  652. data/public/bcms/ckeditor/tests/core/dom/text.html +128 -0
  653. data/public/bcms/ckeditor/tests/core/dom/walker.html +340 -0
  654. data/public/bcms/ckeditor/tests/core/dom/window.html +53 -0
  655. data/public/bcms/ckeditor/tests/core/editor.html +123 -0
  656. data/public/bcms/ckeditor/tests/core/env.html +52 -0
  657. data/public/bcms/ckeditor/tests/core/event.html +487 -0
  658. data/public/bcms/ckeditor/tests/core/htmlparser/fragment.html +188 -0
  659. data/public/bcms/ckeditor/tests/core/htmlparser/htmlparser.html +91 -0
  660. data/public/bcms/ckeditor/tests/core/plugins.html +45 -0
  661. data/public/bcms/ckeditor/tests/core/plugins/myplugins/sample/my_plugin.js +3 -0
  662. data/public/bcms/ckeditor/tests/core/scriptloader.html +52 -0
  663. data/public/bcms/ckeditor/tests/core/tools.html +170 -0
  664. data/public/bcms/ckeditor/tests/core/xml.html +150 -0
  665. data/public/bcms/ckeditor/tests/plugins/domiterator/domiterator.html +236 -0
  666. data/public/bcms/ckeditor/tests/plugins/htmldataprocessor/htmldataprocessor.html +386 -0
  667. data/public/bcms/ckeditor/tests/plugins/link/link.html +123 -0
  668. data/public/bcms/ckeditor/tests/plugins/list/list.html +217 -0
  669. data/public/bcms/ckeditor/tests/plugins/selection/selection.html +49 -0
  670. data/public/bcms/ckeditor/tests/plugins/styles/styles.html +596 -0
  671. data/public/bcms/ckeditor/tests/test.css +81 -0
  672. data/public/bcms/ckeditor/tests/test.js +93 -0
  673. data/public/bcms/ckeditor/tests/testall.html +114 -0
  674. data/public/bcms/ckeditor/tests/yuitest.js +75 -0
  675. data/public/bcms/ckeditor/themes/default/theme.js +232 -0
  676. data/public/stylesheets/cms/administration.css +52 -51
  677. data/public/stylesheets/cms/application.css +55 -51
  678. data/public/stylesheets/cms/block.css +13 -13
  679. data/public/stylesheets/cms/buttons.css +91 -91
  680. data/public/stylesheets/cms/content_library.css +49 -57
  681. data/public/stylesheets/cms/content_types.css +3 -3
  682. data/public/stylesheets/cms/dashboard.css +25 -43
  683. data/public/stylesheets/cms/data_table.css +57 -81
  684. data/public/stylesheets/cms/date_picker.css +13 -14
  685. data/public/stylesheets/cms/form_layout.css +133 -140
  686. data/public/stylesheets/cms/jquery.contextMenu.css +43 -35
  687. data/public/stylesheets/cms/login.css +50 -51
  688. data/public/stylesheets/cms/menu.css +61 -63
  689. data/public/stylesheets/cms/nav.css +53 -53
  690. data/public/stylesheets/cms/page_toolbar.css +80 -82
  691. data/public/stylesheets/cms/reset.css +21 -21
  692. data/public/stylesheets/cms/selectbox.css +16 -18
  693. data/public/stylesheets/cms/sitemap.css +138 -134
  694. data/public/stylesheets/cms/thickbox.css +120 -105
  695. data/rails_generators/content_block/templates/migration.rb +1 -1
  696. data/rails_generators/portlet/USAGE +3 -1
  697. data/rails_generators/portlet/portlet_generator.rb +4 -0
  698. data/rails_generators/portlet/templates/_form.html.erb +1 -2
  699. data/rails_generators/portlet/templates/portlet.rb +4 -1
  700. data/rails_generators/portlet/templates/portlet_helper.rb +5 -0
  701. data/rails_generators/template/USAGE +10 -0
  702. data/rails_generators/template/template_generator.rb +18 -0
  703. data/rails_generators/template/templates/template.erb +3 -0
  704. data/templates/blank.rb +11 -1
  705. data/templates/demo.rb +11 -1
  706. data/templates/module.rb +15 -4
  707. data/test/functional/cms/dashboard_controller_test.rb +19 -2
  708. data/test/functional/tests/pretend_controller_test.rb +54 -0
  709. data/test/integration/cms/ckeditor_test.rb +27 -0
  710. data/test/integration/cms/password_management_test.rb +1 -2
  711. data/test/test_helper.rb +14 -0
  712. data/test/unit/helpers/application_helper_test.rb +48 -0
  713. data/test/unit/helpers/form_builder_test.rb +21 -2
  714. data/test/unit/helpers/menu_helper_test.rb +164 -142
  715. data/test/unit/helpers/page_helper_test.rb +11 -3
  716. data/test/unit/lib/acts_as_content_page_test.rb +72 -0
  717. data/test/unit/lib/cms/authentication/controller_test.rb +20 -0
  718. data/test/unit/lib/cms_domain_support_test.rb +43 -0
  719. data/test/unit/lib/command_line_test.rb +70 -0
  720. data/test/unit/lib/content_block_test.rb +41 -4
  721. data/test/unit/lib/content_rendering_support_test.rb +40 -0
  722. data/test/unit/models/attachment_test.rb +2 -2
  723. data/test/unit/models/content_type_test.rb +19 -7
  724. data/test/unit/models/page_template_test.rb +4 -1
  725. data/test/unit/models/portlet_test.rb +49 -1
  726. data/test/unit/models/sections_test.rb +41 -2
  727. data/test/unit/models/task_test.rb +37 -22
  728. data/test/unit/models/user_test.rb +165 -51
  729. metadata +424 -323
  730. data/doc/guides/html/developer_guide.html +0 -308
  731. data/public/fckeditor/editor/css/behaviors/disablehandles.htc +0 -15
  732. data/public/fckeditor/editor/css/behaviors/showtableborders.htc +0 -36
  733. data/public/fckeditor/editor/css/fck_editorarea.css +0 -110
  734. data/public/fckeditor/editor/css/fck_internal.css +0 -199
  735. data/public/fckeditor/editor/css/fck_showtableborders_gecko.css +0 -49
  736. data/public/fckeditor/editor/css/images/fck_anchor.gif +0 -0
  737. data/public/fckeditor/editor/css/images/fck_flashlogo.gif +0 -0
  738. data/public/fckeditor/editor/css/images/fck_hiddenfield.gif +0 -0
  739. data/public/fckeditor/editor/css/images/fck_plugin.gif +0 -0
  740. data/public/fckeditor/editor/dialog/common/fck_dialog_common.css +0 -85
  741. data/public/fckeditor/editor/dialog/common/fck_dialog_common.js +0 -311
  742. data/public/fckeditor/editor/dialog/common/images/locked.gif +0 -0
  743. data/public/fckeditor/editor/dialog/common/images/reset.gif +0 -0
  744. data/public/fckeditor/editor/dialog/common/images/unlocked.gif +0 -0
  745. data/public/fckeditor/editor/dialog/fck_about.html +0 -161
  746. data/public/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif +0 -0
  747. data/public/fckeditor/editor/dialog/fck_about/logo_fredck.gif +0 -0
  748. data/public/fckeditor/editor/dialog/fck_about/sponsors/spellchecker_net.gif +0 -0
  749. data/public/fckeditor/editor/dialog/fck_anchor.html +0 -220
  750. data/public/fckeditor/editor/dialog/fck_button.html +0 -104
  751. data/public/fckeditor/editor/dialog/fck_checkbox.html +0 -104
  752. data/public/fckeditor/editor/dialog/fck_colorselector.html +0 -172
  753. data/public/fckeditor/editor/dialog/fck_div.html +0 -364
  754. data/public/fckeditor/editor/dialog/fck_docprops.html +0 -600
  755. data/public/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html +0 -113
  756. data/public/fckeditor/editor/dialog/fck_flash.html +0 -152
  757. data/public/fckeditor/editor/dialog/fck_flash/fck_flash.js +0 -300
  758. data/public/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html +0 -50
  759. data/public/fckeditor/editor/dialog/fck_form.html +0 -109
  760. data/public/fckeditor/editor/dialog/fck_hiddenfield.html +0 -115
  761. data/public/fckeditor/editor/dialog/fck_image.html +0 -258
  762. data/public/fckeditor/editor/dialog/fck_image/fck_image.js +0 -512
  763. data/public/fckeditor/editor/dialog/fck_image/fck_image_preview.html +0 -72
  764. data/public/fckeditor/editor/dialog/fck_link.html +0 -295
  765. data/public/fckeditor/editor/dialog/fck_link/fck_link.js +0 -893
  766. data/public/fckeditor/editor/dialog/fck_listprop.html +0 -120
  767. data/public/fckeditor/editor/dialog/fck_paste.html +0 -346
  768. data/public/fckeditor/editor/dialog/fck_radiobutton.html +0 -104
  769. data/public/fckeditor/editor/dialog/fck_replace.html +0 -648
  770. data/public/fckeditor/editor/dialog/fck_select.html +0 -180
  771. data/public/fckeditor/editor/dialog/fck_select/fck_select.js +0 -194
  772. data/public/fckeditor/editor/dialog/fck_smiley.html +0 -111
  773. data/public/fckeditor/editor/dialog/fck_source.html +0 -68
  774. data/public/fckeditor/editor/dialog/fck_specialchar.html +0 -121
  775. data/public/fckeditor/editor/dialog/fck_spellerpages.html +0 -70
  776. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html +0 -0
  777. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js +0 -87
  778. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html +0 -153
  779. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm +0 -148
  780. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php +0 -199
  781. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl +0 -181
  782. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js +0 -461
  783. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html +0 -71
  784. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css +0 -49
  785. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js +0 -272
  786. data/public/fckeditor/editor/dialog/fck_table.html +0 -298
  787. data/public/fckeditor/editor/dialog/fck_tablecell.html +0 -257
  788. data/public/fckeditor/editor/dialog/fck_template.html +0 -242
  789. data/public/fckeditor/editor/dialog/fck_textarea.html +0 -94
  790. data/public/fckeditor/editor/dialog/fck_textfield.html +0 -136
  791. data/public/fckeditor/editor/dtd/fck_dtd_test.html +0 -41
  792. data/public/fckeditor/editor/dtd/fck_xhtml10strict.js +0 -116
  793. data/public/fckeditor/editor/dtd/fck_xhtml10transitional.js +0 -140
  794. data/public/fckeditor/editor/fckdebug.html +0 -153
  795. data/public/fckeditor/editor/fckdialog.html +0 -812
  796. data/public/fckeditor/editor/fckeditor.html +0 -317
  797. data/public/fckeditor/editor/fckeditor.original.html +0 -424
  798. data/public/fckeditor/editor/filemanager/browser/default/browser.css +0 -87
  799. data/public/fckeditor/editor/filemanager/browser/default/browser.html +0 -200
  800. data/public/fckeditor/editor/filemanager/browser/default/frmactualfolder.html +0 -95
  801. data/public/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html +0 -114
  802. data/public/fckeditor/editor/filemanager/browser/default/frmfolders.html +0 -198
  803. data/public/fckeditor/editor/filemanager/browser/default/frmresourceslist.html +0 -169
  804. data/public/fckeditor/editor/filemanager/browser/default/frmresourcetype.html +0 -68
  805. data/public/fckeditor/editor/filemanager/browser/default/frmupload.html +0 -115
  806. data/public/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif +0 -0
  807. data/public/fckeditor/editor/filemanager/browser/default/images/Folder.gif +0 -0
  808. data/public/fckeditor/editor/filemanager/browser/default/images/Folder32.gif +0 -0
  809. data/public/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif +0 -0
  810. data/public/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif +0 -0
  811. data/public/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif +0 -0
  812. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif +0 -0
  813. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif +0 -0
  814. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif +0 -0
  815. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif +0 -0
  816. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif +0 -0
  817. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif +0 -0
  818. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif +0 -0
  819. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif +0 -0
  820. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif +0 -0
  821. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif +0 -0
  822. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif +0 -0
  823. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif +0 -0
  824. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif +0 -0
  825. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif +0 -0
  826. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif +0 -0
  827. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif +0 -0
  828. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif +0 -0
  829. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif +0 -0
  830. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif +0 -0
  831. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif +0 -0
  832. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif +0 -0
  833. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif +0 -0
  834. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif +0 -0
  835. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif +0 -0
  836. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif +0 -0
  837. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif +0 -0
  838. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif +0 -0
  839. data/public/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif +0 -0
  840. data/public/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif +0 -0
  841. data/public/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif +0 -0
  842. data/public/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif +0 -0
  843. data/public/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif +0 -0
  844. data/public/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif +0 -0
  845. data/public/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif +0 -0
  846. data/public/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif +0 -0
  847. data/public/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif +0 -0
  848. data/public/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif +0 -0
  849. data/public/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif +0 -0
  850. data/public/fckeditor/editor/filemanager/browser/default/images/icons/html.gif +0 -0
  851. data/public/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif +0 -0
  852. data/public/fckeditor/editor/filemanager/browser/default/images/icons/js.gif +0 -0
  853. data/public/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif +0 -0
  854. data/public/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif +0 -0
  855. data/public/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif +0 -0
  856. data/public/fckeditor/editor/filemanager/browser/default/images/icons/png.gif +0 -0
  857. data/public/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif +0 -0
  858. data/public/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif +0 -0
  859. data/public/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif +0 -0
  860. data/public/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif +0 -0
  861. data/public/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif +0 -0
  862. data/public/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif +0 -0
  863. data/public/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif +0 -0
  864. data/public/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif +0 -0
  865. data/public/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif +0 -0
  866. data/public/fckeditor/editor/filemanager/browser/default/images/spacer.gif +0 -0
  867. data/public/fckeditor/editor/filemanager/browser/default/js/common.js +0 -88
  868. data/public/fckeditor/editor/filemanager/browser/default/js/fckxml.js +0 -147
  869. data/public/fckeditor/editor/images/arrow_ltr.gif +0 -0
  870. data/public/fckeditor/editor/images/arrow_rtl.gif +0 -0
  871. data/public/fckeditor/editor/images/smiley/msn/angel_smile.gif +0 -0
  872. data/public/fckeditor/editor/images/smiley/msn/angry_smile.gif +0 -0
  873. data/public/fckeditor/editor/images/smiley/msn/broken_heart.gif +0 -0
  874. data/public/fckeditor/editor/images/smiley/msn/cake.gif +0 -0
  875. data/public/fckeditor/editor/images/smiley/msn/confused_smile.gif +0 -0
  876. data/public/fckeditor/editor/images/smiley/msn/cry_smile.gif +0 -0
  877. data/public/fckeditor/editor/images/smiley/msn/devil_smile.gif +0 -0
  878. data/public/fckeditor/editor/images/smiley/msn/embaressed_smile.gif +0 -0
  879. data/public/fckeditor/editor/images/smiley/msn/envelope.gif +0 -0
  880. data/public/fckeditor/editor/images/smiley/msn/heart.gif +0 -0
  881. data/public/fckeditor/editor/images/smiley/msn/kiss.gif +0 -0
  882. data/public/fckeditor/editor/images/smiley/msn/lightbulb.gif +0 -0
  883. data/public/fckeditor/editor/images/smiley/msn/omg_smile.gif +0 -0
  884. data/public/fckeditor/editor/images/smiley/msn/regular_smile.gif +0 -0
  885. data/public/fckeditor/editor/images/smiley/msn/sad_smile.gif +0 -0
  886. data/public/fckeditor/editor/images/smiley/msn/shades_smile.gif +0 -0
  887. data/public/fckeditor/editor/images/smiley/msn/teeth_smile.gif +0 -0
  888. data/public/fckeditor/editor/images/smiley/msn/thumbs_down.gif +0 -0
  889. data/public/fckeditor/editor/images/smiley/msn/thumbs_up.gif +0 -0
  890. data/public/fckeditor/editor/images/smiley/msn/tounge_smile.gif +0 -0
  891. data/public/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif +0 -0
  892. data/public/fckeditor/editor/images/smiley/msn/wink_smile.gif +0 -0
  893. data/public/fckeditor/editor/images/spacer.gif +0 -0
  894. data/public/fckeditor/editor/js/fckadobeair.js +0 -176
  895. data/public/fckeditor/editor/js/fckeditorcode_gecko.js +0 -108
  896. data/public/fckeditor/editor/js/fckeditorcode_ie.js +0 -109
  897. data/public/fckeditor/editor/lang/_translationstatus.txt +0 -78
  898. data/public/fckeditor/editor/lang/af.js +0 -526
  899. data/public/fckeditor/editor/lang/ar.js +0 -526
  900. data/public/fckeditor/editor/lang/bg.js +0 -526
  901. data/public/fckeditor/editor/lang/bn.js +0 -526
  902. data/public/fckeditor/editor/lang/bs.js +0 -526
  903. data/public/fckeditor/editor/lang/ca.js +0 -526
  904. data/public/fckeditor/editor/lang/cs.js +0 -526
  905. data/public/fckeditor/editor/lang/da.js +0 -526
  906. data/public/fckeditor/editor/lang/de.js +0 -526
  907. data/public/fckeditor/editor/lang/el.js +0 -526
  908. data/public/fckeditor/editor/lang/en-au.js +0 -526
  909. data/public/fckeditor/editor/lang/en-ca.js +0 -526
  910. data/public/fckeditor/editor/lang/en-uk.js +0 -526
  911. data/public/fckeditor/editor/lang/en.js +0 -526
  912. data/public/fckeditor/editor/lang/eo.js +0 -526
  913. data/public/fckeditor/editor/lang/es.js +0 -526
  914. data/public/fckeditor/editor/lang/et.js +0 -526
  915. data/public/fckeditor/editor/lang/eu.js +0 -527
  916. data/public/fckeditor/editor/lang/fa.js +0 -526
  917. data/public/fckeditor/editor/lang/fi.js +0 -526
  918. data/public/fckeditor/editor/lang/fo.js +0 -526
  919. data/public/fckeditor/editor/lang/fr-ca.js +0 -526
  920. data/public/fckeditor/editor/lang/fr.js +0 -526
  921. data/public/fckeditor/editor/lang/gl.js +0 -526
  922. data/public/fckeditor/editor/lang/gu.js +0 -526
  923. data/public/fckeditor/editor/lang/he.js +0 -526
  924. data/public/fckeditor/editor/lang/hi.js +0 -526
  925. data/public/fckeditor/editor/lang/hr.js +0 -526
  926. data/public/fckeditor/editor/lang/hu.js +0 -526
  927. data/public/fckeditor/editor/lang/it.js +0 -526
  928. data/public/fckeditor/editor/lang/ja.js +0 -526
  929. data/public/fckeditor/editor/lang/km.js +0 -526
  930. data/public/fckeditor/editor/lang/ko.js +0 -526
  931. data/public/fckeditor/editor/lang/lt.js +0 -526
  932. data/public/fckeditor/editor/lang/lv.js +0 -526
  933. data/public/fckeditor/editor/lang/mn.js +0 -526
  934. data/public/fckeditor/editor/lang/ms.js +0 -526
  935. data/public/fckeditor/editor/lang/nb.js +0 -526
  936. data/public/fckeditor/editor/lang/nl.js +0 -526
  937. data/public/fckeditor/editor/lang/no.js +0 -526
  938. data/public/fckeditor/editor/lang/pl.js +0 -526
  939. data/public/fckeditor/editor/lang/pt-br.js +0 -526
  940. data/public/fckeditor/editor/lang/pt.js +0 -526
  941. data/public/fckeditor/editor/lang/ro.js +0 -526
  942. data/public/fckeditor/editor/lang/ru.js +0 -526
  943. data/public/fckeditor/editor/lang/sk.js +0 -526
  944. data/public/fckeditor/editor/lang/sl.js +0 -526
  945. data/public/fckeditor/editor/lang/sr-latn.js +0 -526
  946. data/public/fckeditor/editor/lang/sr.js +0 -526
  947. data/public/fckeditor/editor/lang/sv.js +0 -526
  948. data/public/fckeditor/editor/lang/th.js +0 -526
  949. data/public/fckeditor/editor/lang/tr.js +0 -526
  950. data/public/fckeditor/editor/lang/uk.js +0 -526
  951. data/public/fckeditor/editor/lang/vi.js +0 -526
  952. data/public/fckeditor/editor/lang/zh-cn.js +0 -526
  953. data/public/fckeditor/editor/lang/zh.js +0 -526
  954. data/public/fckeditor/editor/plugins/autogrow/fckplugin.js +0 -99
  955. data/public/fckeditor/editor/plugins/bbcode/_sample/sample.config.js +0 -26
  956. data/public/fckeditor/editor/plugins/bbcode/_sample/sample.html +0 -67
  957. data/public/fckeditor/editor/plugins/bbcode/fckplugin.js +0 -123
  958. data/public/fckeditor/editor/plugins/dragresizetable/fckplugin.js +0 -524
  959. data/public/fckeditor/editor/plugins/placeholder/fck_placeholder.html +0 -105
  960. data/public/fckeditor/editor/plugins/placeholder/fckplugin.js +0 -187
  961. data/public/fckeditor/editor/plugins/placeholder/lang/de.js +0 -27
  962. data/public/fckeditor/editor/plugins/placeholder/lang/en.js +0 -27
  963. data/public/fckeditor/editor/plugins/placeholder/lang/es.js +0 -27
  964. data/public/fckeditor/editor/plugins/placeholder/lang/fr.js +0 -27
  965. data/public/fckeditor/editor/plugins/placeholder/lang/it.js +0 -27
  966. data/public/fckeditor/editor/plugins/placeholder/lang/pl.js +0 -27
  967. data/public/fckeditor/editor/plugins/placeholder/placeholder.gif +0 -0
  968. data/public/fckeditor/editor/plugins/simplecommands/fckplugin.js +0 -29
  969. data/public/fckeditor/editor/plugins/tablecommands/fckplugin.js +0 -33
  970. data/public/fckeditor/editor/skins/_fckviewstrips.html +0 -121
  971. data/public/fckeditor/editor/skins/default/fck_dialog.css +0 -402
  972. data/public/fckeditor/editor/skins/default/fck_dialog_ie6.js +0 -110
  973. data/public/fckeditor/editor/skins/default/fck_editor.css +0 -464
  974. data/public/fckeditor/editor/skins/default/fck_strip.gif +0 -0
  975. data/public/fckeditor/editor/skins/default/images/sprites.gif +0 -0
  976. data/public/fckeditor/editor/skins/default/images/sprites.png +0 -0
  977. data/public/fckeditor/editor/skins/default/images/toolbar.arrowright.gif +0 -0
  978. data/public/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif +0 -0
  979. data/public/fckeditor/editor/skins/default/images/toolbar.collapse.gif +0 -0
  980. data/public/fckeditor/editor/skins/default/images/toolbar.end.gif +0 -0
  981. data/public/fckeditor/editor/skins/default/images/toolbar.expand.gif +0 -0
  982. data/public/fckeditor/editor/skins/default/images/toolbar.separator.gif +0 -0
  983. data/public/fckeditor/editor/skins/office2003/fck_dialog.css +0 -402
  984. data/public/fckeditor/editor/skins/office2003/fck_dialog_ie6.js +0 -110
  985. data/public/fckeditor/editor/skins/office2003/fck_editor.css +0 -476
  986. data/public/fckeditor/editor/skins/office2003/fck_strip.gif +0 -0
  987. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.gif +0 -0
  988. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.png +0 -0
  989. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.rtl.png +0 -0
  990. data/public/fckeditor/editor/skins/office2003/images/sprites.gif +0 -0
  991. data/public/fckeditor/editor/skins/office2003/images/sprites.png +0 -0
  992. data/public/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif +0 -0
  993. data/public/fckeditor/editor/skins/office2003/images/toolbar.bg.gif +0 -0
  994. data/public/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif +0 -0
  995. data/public/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif +0 -0
  996. data/public/fckeditor/editor/skins/office2003/images/toolbar.end.gif +0 -0
  997. data/public/fckeditor/editor/skins/office2003/images/toolbar.expand.gif +0 -0
  998. data/public/fckeditor/editor/skins/office2003/images/toolbar.separator.gif +0 -0
  999. data/public/fckeditor/editor/skins/office2003/images/toolbar.start.gif +0 -0
  1000. data/public/fckeditor/editor/skins/silver/fck_dialog.css +0 -402
  1001. data/public/fckeditor/editor/skins/silver/fck_dialog_ie6.js +0 -110
  1002. data/public/fckeditor/editor/skins/silver/fck_editor.css +0 -473
  1003. data/public/fckeditor/editor/skins/silver/fck_strip.gif +0 -0
  1004. data/public/fckeditor/editor/skins/silver/images/dialog.sides.gif +0 -0
  1005. data/public/fckeditor/editor/skins/silver/images/dialog.sides.png +0 -0
  1006. data/public/fckeditor/editor/skins/silver/images/dialog.sides.rtl.png +0 -0
  1007. data/public/fckeditor/editor/skins/silver/images/sprites.gif +0 -0
  1008. data/public/fckeditor/editor/skins/silver/images/sprites.png +0 -0
  1009. data/public/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif +0 -0
  1010. data/public/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif +0 -0
  1011. data/public/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif +0 -0
  1012. data/public/fckeditor/editor/skins/silver/images/toolbar.collapse.gif +0 -0
  1013. data/public/fckeditor/editor/skins/silver/images/toolbar.end.gif +0 -0
  1014. data/public/fckeditor/editor/skins/silver/images/toolbar.expand.gif +0 -0
  1015. data/public/fckeditor/editor/skins/silver/images/toolbar.separator.gif +0 -0
  1016. data/public/fckeditor/fckconfig.js +0 -364
  1017. data/public/fckeditor/fckdebug.html +0 -153
  1018. data/public/fckeditor/fckdialog.html +0 -812
  1019. data/public/fckeditor/fckeditor.html +0 -317
  1020. data/public/fckeditor/fckeditor.js +0 -328
  1021. data/public/fckeditor/fckeditor.original.html +0 -424
  1022. data/public/fckeditor/fckpackager.xml +0 -262
  1023. data/public/fckeditor/fckstyles.xml +0 -111
  1024. data/public/fckeditor/fcktemplates.xml +0 -103
  1025. data/public/javascripts/cms/editor.js +0 -56
@@ -80,7 +80,8 @@
80
80
  <h3 class="section-bar">Methods</h3>
81
81
 
82
82
  <div class="name-list">
83
- <a href="#M000302">render_menu</a>&nbsp;&nbsp;
83
+ <a href="#M000342">menu_items</a>&nbsp;&nbsp;
84
+ <a href="#M000341">render_menu</a>&nbsp;&nbsp;
84
85
  </div>
85
86
  </div>
86
87
 
@@ -102,42 +103,52 @@
102
103
  <div id="methods">
103
104
  <h3 class="section-bar">Public Instance methods</h3>
104
105
 
105
- <div id="method-M000302" class="method-detail">
106
- <a name="M000302"></a>
106
+ <div id="method-M000342" class="method-detail">
107
+ <a name="M000342"></a>
107
108
 
108
109
  <div class="method-heading">
109
- <a href="#M000302" class="method-signature">
110
- <span class="method-name">render_menu</span><span class="method-args">(options={})</span>
110
+ <a href="#M000342" class="method-signature">
111
+ <span class="method-name">menu_items</span><span class="method-args">(options = {})</span>
111
112
  </a>
112
113
  </div>
113
114
 
114
115
  <div class="method-description">
115
116
  <p>
116
- This will render a menu based on the page With no options passed, it will
117
- render a menu that shows all the child sections of the root and then it
118
- will show the path of decendent sections all the way to the current page.
119
- The resulting HTML is a DIV with a UL in it. Each LI will have an A in it.
120
- If the item is a <a href="../Section.html">Section</a>, the HREF of the A
121
- will be the URL of the first non-archived page that is a direct child of
122
- that <a href="../Section.html">Section</a>. Hidden pages will not show up,
123
- but if the first page in a <a href="../Section.html">Section</a> is hidden,
124
- it will be used as the URL for that <a href="../Section.html">Section</a>.
125
- This is commonly done to have a page for a <a
126
- href="../Section.html">Section</a> and avoid having duplicates in the
127
- navigation.
117
+ This will render generate an array-of-hashes tree structure based on the
118
+ page, which can be passed to <a
119
+ href="MenuHelper.html#M000341">render_menu</a> in order to generate a menu.
128
120
  </p>
129
121
  <p>
130
- You can change the behavior with the following options:
122
+ With no options passed, it will generate a structure that includes all the
123
+ child sections of the root and then it will include the path of decendent
124
+ sections all the way to the current page.
125
+ </p>
126
+ <p>
127
+ Hidden pages will not be included, but if the first page in a <a
128
+ href="../Section.html">Section</a> is hidden, it will be used as the URL
129
+ for that <a href="../Section.html">Section</a>. This is commonly done to
130
+ have a page for a <a href="../Section.html">Section</a> and avoid having
131
+ duplicates in the navigation.
132
+ </p>
133
+ <p>
134
+ You can change the behavior with the following options, all of these are
135
+ optional:
131
136
  </p>
132
137
  <h4>Options</h4>
133
138
  <ul>
134
- <li><tt>:page</tt> - What page should be used. If this value is omitted, the
135
- value in @page will be used.
139
+ <li><tt>:page</tt> - What page should be used as the current page. If this
140
+ value is omitted, the value in @page will be used.
141
+
142
+ </li>
143
+ <li><tt>:path</tt> - This will be used to look up a section and that section
144
+ will used to generate the menu structure. The current page will still be
145
+ the value of the page option or @page. Note that this is the path to a
146
+ section, not a path to a page.
136
147
 
137
148
  </li>
138
149
  <li><tt>:from_top</tt> - How many below levels from the root the tree should
139
150
  start at. All sections at this level will be shown. The default is 0, which
140
- means show all section that are direct children of the root
151
+ means show all nodes that are direct children of the root
141
152
 
142
153
  </li>
143
154
  <li><tt>:depth</tt> - How many levels deep should the tree go, relative to
@@ -146,12 +157,12 @@ current page. If a value is supplied, the tree will be that many levels
146
157
  underneath from_top deep.
147
158
 
148
159
  </li>
149
- <li><tt>:class</tt> - The CSS Class that will be applied to the div. The
150
- default value is &quot;menu&quot;.
160
+ <li><tt>:limit</tt> - Limits the number of top-level elements that will be
161
+ included in the list
151
162
 
152
163
  </li>
153
164
  <li><tt>:show_all_siblings</tt> - Passing true for this option will make all
154
- sibilings appear in the tree. the default is false, in which case only the
165
+ sibilings appear in the tree. The default is false, in which case only the
155
166
  siblings of nodes within the open path will appear.
156
167
 
157
168
  </li>
@@ -165,151 +176,185 @@ are on the Baltimore Ravens page. If you&#8216;re not a footbal fan, see <a
165
176
  href="http://sports.yahoo.com/nfl/teams">sports.yahoo.com/nfl/teams</a>
166
177
  </p>
167
178
  <pre>
168
- render_menu
169
- # =&gt; &lt;div class=&quot;menu&quot;&gt;
170
- &lt;ul&gt;
171
- &lt;li id=&quot;section_2&quot; class=&quot;first open&quot;&gt;
172
- &lt;a href=&quot;/buf&quot;&gt;AFC&lt;/a&gt;
173
- &lt;ul&gt;
174
- &lt;li id=&quot;section_3&quot; class=&quot;first&quot;&gt;
175
- &lt;a href=&quot;/buf&quot;&gt;East&lt;/a&gt;
176
- &lt;/li&gt;
177
- &lt;li id=&quot;section_4&quot; class=&quot;open&quot;&gt;
178
- &lt;a href=&quot;/bal&quot;&gt;North&lt;/a&gt;
179
- &lt;ul&gt;
180
- &lt;li id=&quot;page_5&quot; class=&quot;first on&quot;&gt;
181
- &lt;a href=&quot;/bal&quot;&gt;Baltimore Ravens&lt;/a&gt;
182
- &lt;/li&gt;
183
- &lt;li id=&quot;page_6&quot;&gt;
184
- &lt;a href=&quot;/cin&quot;&gt;Cincinnati Bengals&lt;/a&gt;
185
- &lt;/li&gt;
186
- &lt;li id=&quot;page_7&quot;&gt;
187
- &lt;a href=&quot;/cle&quot;&gt;Cleveland Browns&lt;/a&gt;
188
- &lt;/li&gt;
189
- &lt;li id=&quot;page_8&quot; class=&quot;last&quot;&gt;
190
- &lt;a href=&quot;/pit&quot;&gt;Pittsburgh Steelers&lt;/a&gt;
191
- &lt;/li&gt;
192
- &lt;/ul&gt;
193
- &lt;/li&gt;
194
- &lt;li id=&quot;section_5&quot;&gt;
195
- &lt;a href=&quot;/hou&quot;&gt;South&lt;/a&gt;
196
- &lt;/li&gt;
197
- &lt;li id=&quot;section_6&quot; class=&quot;last&quot;&gt;
198
- &lt;a href=&quot;/den&quot;&gt;West&lt;/a&gt;
199
- &lt;/li&gt;
200
- &lt;/ul&gt;
201
- &lt;/li&gt;
202
- &lt;li id=&quot;section_7&quot; class=&quot;last&quot;&gt;
203
- &lt;a href=&quot;/dal&quot;&gt;NFC&lt;/a&gt;
204
- &lt;/li&gt;
205
- &lt;/ul&gt;
206
- &lt;/div&gt;
207
-
208
- render_menu(:depth =&gt; 2, :show_all_siblings =&gt; true)
209
- # =&gt; &lt;div class=&quot;menu&quot;&gt;
210
- &lt;ul&gt;
211
- &lt;li id=&quot;section_2&quot; class=&quot;first open&quot;&gt;
212
- &lt;a href=&quot;/buf&quot;&gt;AFC&lt;/a&gt;
213
- &lt;ul&gt;
214
- &lt;li id=&quot;section_3&quot; class=&quot;first&quot;&gt;
215
- &lt;a href=&quot;/buf&quot;&gt;East&lt;/a&gt;
216
- &lt;/li&gt;
217
- &lt;li id=&quot;section_4&quot; class=&quot;open&quot;&gt;
218
- &lt;a href=&quot;/bal&quot;&gt;North&lt;/a&gt;
219
- &lt;/li&gt;
220
- &lt;li id=&quot;section_5&quot;&gt;
221
- &lt;a href=&quot;/hou&quot;&gt;South&lt;/a&gt;
222
- &lt;/li&gt;
223
- &lt;li id=&quot;section_6&quot; class=&quot;last&quot;&gt;
224
- &lt;a href=&quot;/den&quot;&gt;West&lt;/a&gt;
225
- &lt;/li&gt;
226
- &lt;/ul&gt;
227
- &lt;/li&gt;
228
- &lt;li id=&quot;section_7&quot; class=&quot;last&quot;&gt;
229
- &lt;a href=&quot;/dal&quot;&gt;NFC&lt;/a&gt;
230
- &lt;ul&gt;
231
- &lt;li id=&quot;section_8&quot; class=&quot;first&quot;&gt;
232
- &lt;a href=&quot;/dal&quot;&gt;East&lt;/a&gt;
233
- &lt;/li&gt;
234
- &lt;li id=&quot;section_9&quot;&gt;
235
- &lt;a href=&quot;/chi&quot;&gt;North&lt;/a&gt;
236
- &lt;/li&gt;
237
- &lt;li id=&quot;section_10&quot;&gt;
238
- &lt;a href=&quot;/atl&quot;&gt;South&lt;/a&gt;
239
- &lt;/li&gt;
240
- &lt;li id=&quot;section_11&quot; class=&quot;last&quot;&gt;
241
- &lt;a href=&quot;/ari&quot;&gt;West&lt;/a&gt;
242
- &lt;/li&gt;
243
- &lt;/ul&gt;
244
- &lt;/li&gt;
245
- &lt;/ul&gt;
246
- &lt;/div&gt;
179
+ menu_items
180
+ # =&gt; [
181
+ { :id =&gt; &quot;section_2&quot;, :url =&gt; &quot;/buf&quot;, :name =&gt; &quot;AFC&quot;, :children =&gt; [
182
+ { :id =&gt; &quot;section_3&quot;, :url =&gt; &quot;/buf&quot;, :name =&gt; &quot;East&quot; },
183
+ { :id =&gt; &quot;section_4&quot;, :url =&gt; &quot;/bal&quot;, :name =&gt; &quot;North&quot;, :children =&gt; [
184
+ { :id =&gt; &quot;page_5&quot;, :selected =&gt; true, :url =&gt; &quot;/bal&quot;, :name =&gt; &quot;Baltimore Ravens&quot; },
185
+ { :id =&gt; &quot;page_6&quot;, :url =&gt; &quot;/cin&quot;, :name =&gt; &quot;Cincinnati Bengals&quot; },
186
+ { :id =&gt; &quot;page_7&quot;, :url =&gt; &quot;/cle&quot;, :name =&gt; &quot;Cleveland Browns&quot; },
187
+ { :id =&gt; &quot;page_8&quot;, :url =&gt; &quot;/pit&quot;, :name =&gt; &quot;Pittsburgh Steelers&quot; }
188
+ ] },
189
+ { :id =&gt; &quot;section_9&quot;, :url =&gt; &quot;/hou&quot;, :name =&gt; &quot;South&quot; },
190
+ { :id =&gt; &quot;section_10}&quot;, :url =&gt; &quot;/den&quot;, :name =&gt; &quot;West&quot; }
191
+ ] },
192
+ { :id =&gt; &quot;section_11&quot;, :url =&gt; &quot;/dal&quot;, :name =&gt; &quot;NFC&quot; }
193
+ ]
194
+
195
+ menu_items(:depth =&gt; 2, :show_all_siblings =&gt; true)
196
+ # =&gt; [
197
+ { :id =&gt; &quot;section_2&quot;, :url =&gt; &quot;/buf&quot;, :name =&gt; &quot;AFC&quot;, :children =&gt; [
198
+ { :id =&gt; &quot;section_3&quot;, :url =&gt; &quot;/buf&quot;, :name =&gt; &quot;East&quot; },
199
+ { :id =&gt; &quot;section_4&quot;, :url =&gt; &quot;/bal&quot;, :name =&gt; &quot;North&quot; },
200
+ { :id =&gt; &quot;section_5&quot;, :url =&gt; &quot;/hou&quot;, :name =&gt; &quot;South&quot; },
201
+ { :id =&gt; &quot;section_6&quot;, :url =&gt; &quot;/den&quot;, :name =&gt; &quot;West&quot; }
202
+ ] },
203
+ { :id =&gt; &quot;section_7&quot;, :url =&gt; &quot;/dal&quot;, :name =&gt; &quot;NFC&quot;, :children =&gt; [
204
+ { :id =&gt; &quot;section_8&quot;, :url =&gt; &quot;/dal&quot;, :name =&gt; &quot;East&quot; },
205
+ { :id =&gt; &quot;section_9&quot;, :url =&gt; &quot;/chi&quot;, :name =&gt; &quot;North&quot; },
206
+ { :id =&gt; &quot;section_10&quot;, :url =&gt; &quot;/atl&quot;, :name =&gt; &quot;South&quot; },
207
+ { :id =&gt; &quot;section_11&quot;, :url =&gt; &quot;/ari&quot;, :name =&gt; &quot;West&quot; }
208
+ ] }
209
+ ]
247
210
  </pre>
248
211
  <p><a class="source-toggle" href="#"
249
- onclick="toggleCode('M000302-source');return false;">[Source]</a></p>
250
- <div class="method-source-code" id="M000302-source">
212
+ onclick="toggleCode('M000342-source');return false;">[Source]</a></p>
213
+ <div class="method-source-code" id="M000342-source">
251
214
  <pre>
252
- <span class="ruby-comment cmt"># File app/helpers/cms/menu_helper.rb, line 111</span>
253
- 111: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render_menu</span>(<span class="ruby-identifier">options</span>={})
254
- 112: <span class="ruby-comment cmt">#Intialize parameters</span>
255
- 113: <span class="ruby-identifier">page</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:page</span>] <span class="ruby-operator">||</span> <span class="ruby-ivar">@page</span>
256
- 114: <span class="ruby-identifier">from_top</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">:from_top</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:from_top</span>].<span class="ruby-identifier">to_i</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>
257
- 115: <span class="ruby-identifier">depth</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">:depth</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:depth</span>].<span class="ruby-identifier">to_i</span> <span class="ruby-operator">:</span> <span class="ruby-value">1.0</span><span class="ruby-operator">/</span><span class="ruby-value">0</span>
258
- 116: <span class="ruby-identifier">id</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:id</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;menu&quot;</span>
259
- 117: <span class="ruby-identifier">css_class</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:class</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">&quot;menu&quot;</span>
260
- 118: <span class="ruby-identifier">show_all_siblings</span> = <span class="ruby-operator">!</span><span class="ruby-operator">!</span>(<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:show_all_siblings</span>])
261
- 119:
262
- 120: <span class="ruby-identifier">html</span> = <span class="ruby-node">&quot;&lt;div id=\&quot;#{id}\&quot; class=\&quot;#{css_class}\&quot;&gt;\n&quot;</span>
263
- 121:
264
- 122: <span class="ruby-identifier">ancestors</span> = <span class="ruby-identifier">page</span>.<span class="ruby-identifier">ancestors</span>
265
- 123: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">from_top</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ancestors</span>.<span class="ruby-identifier">size</span>
266
- 124: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;&lt;/div&gt;\n&quot;</span>
267
- 125: <span class="ruby-keyword kw">else</span>
268
- 126: <span class="ruby-identifier">ancestors</span> = <span class="ruby-identifier">page</span>.<span class="ruby-identifier">ancestors</span>[<span class="ruby-identifier">from_top</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]
269
- 127: <span class="ruby-keyword kw">end</span>
270
- 128:
271
- 129: <span class="ruby-comment cmt">#We are defining a recursive lambda that takes the top-level sections</span>
272
- 130: <span class="ruby-comment cmt">#d is the current depth</span>
273
- 131: <span class="ruby-identifier">fn</span> = <span class="ruby-identifier">lambda</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">nodes</span>, <span class="ruby-identifier">d</span><span class="ruby-operator">|</span>
274
- 132: <span class="ruby-identifier">indent</span> = (<span class="ruby-identifier">d</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)<span class="ruby-operator">*</span><span class="ruby-value">4</span>
275
- 133: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;&lt;ul&gt;\n&quot;</span>.<span class="ruby-identifier">indent</span>(<span class="ruby-identifier">indent</span><span class="ruby-operator">+</span><span class="ruby-value">2</span>)
276
- 134: <span class="ruby-identifier">nodes</span>.<span class="ruby-identifier">each_with_index</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sn</span>, <span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
277
- 135:
278
- 136: <span class="ruby-comment cmt">#Construct the CSS classes that the LI should have</span>
279
- 137: <span class="ruby-identifier">classes</span> = [<span class="ruby-node">&quot;depth-#{d}&quot;</span>]
280
- 138: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
281
- 139: <span class="ruby-identifier">classes</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;first&quot;</span>
282
- 140: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">nodes</span>.<span class="ruby-identifier">size</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>
283
- 141: <span class="ruby-identifier">classes</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;last&quot;</span>
284
- 142: <span class="ruby-keyword kw">end</span>
285
- 143: <span class="ruby-identifier">classes</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;open&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ancestors</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">sn</span>.<span class="ruby-identifier">node</span>)
286
- 144: <span class="ruby-identifier">classes</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;on&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">page</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">sn</span>.<span class="ruby-identifier">node</span>
287
- 145: <span class="ruby-identifier">cls</span> = <span class="ruby-identifier">classes</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">classes</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot; &quot;</span>)
215
+ <span class="ruby-comment cmt"># File app/helpers/cms/menu_helper.rb, line 106</span>
216
+ 106: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">menu_items</span>(<span class="ruby-identifier">options</span> = {})
217
+ 107: <span class="ruby-comment cmt"># Intialize parameters</span>
218
+ 108: <span class="ruby-identifier">selected_page</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:page</span>] <span class="ruby-operator">||</span> <span class="ruby-ivar">@page</span>
219
+ 109: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">selected_page</span>
220
+ 110:
221
+ 111: <span class="ruby-comment cmt"># Path to the section</span>
222
+ 112: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">:path</span>)
223
+ 113: <span class="ruby-identifier">section_for_path</span> = <span class="ruby-constant">Section</span>.<span class="ruby-identifier">find_by_path</span>(<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:path</span>])
224
+ 114: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Could not find section for path '#{options[:path]}'&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">section_for_path</span>
225
+ 115: <span class="ruby-identifier">ancestors</span> = <span class="ruby-identifier">section_for_path</span>.<span class="ruby-identifier">ancestors</span>(<span class="ruby-identifier">:include_self</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">true</span>)
226
+ 116: <span class="ruby-keyword kw">else</span>
227
+ 117: <span class="ruby-identifier">ancestors</span> = <span class="ruby-identifier">selected_page</span>.<span class="ruby-identifier">ancestors</span>
228
+ 118: <span class="ruby-keyword kw">end</span>
229
+ 119:
230
+ 120: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">:from_top</span>)
231
+ 121: <span class="ruby-identifier">ancestors</span> = <span class="ruby-identifier">ancestors</span>[<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:from_top</span>].<span class="ruby-identifier">to_i</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>] <span class="ruby-operator">||</span> []
232
+ 122: <span class="ruby-keyword kw">end</span>
233
+ 123:
234
+ 124: <span class="ruby-identifier">depth</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">:depth</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:depth</span>].<span class="ruby-identifier">to_i</span> <span class="ruby-operator">:</span> <span class="ruby-value">1.0</span><span class="ruby-operator">/</span><span class="ruby-value">0</span>
235
+ 125: <span class="ruby-identifier">show_all_siblings</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:show_all_siblings</span>] <span class="ruby-operator">||</span> <span class="ruby-keyword kw">false</span>
236
+ 126:
237
+ 127: <span class="ruby-comment cmt"># We are defining a recursive lambda that takes the top-level sections</span>
238
+ 128: <span class="ruby-identifier">fn</span> = <span class="ruby-identifier">lambda</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">section_nodes</span>, <span class="ruby-identifier">current_depth</span><span class="ruby-operator">|</span>
239
+ 129: <span class="ruby-identifier">section_nodes</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">section_node</span><span class="ruby-operator">|</span>
240
+ 130: <span class="ruby-identifier">node</span> = <span class="ruby-identifier">section_node</span>.<span class="ruby-identifier">node</span>
241
+ 131:
242
+ 132: <span class="ruby-identifier">item</span> = {}
243
+ 133: <span class="ruby-identifier">item</span>[<span class="ruby-identifier">:id</span>] = <span class="ruby-node">&quot;#{section_node.node_type.underscore}_#{section_node.node_id}&quot;</span>
244
+ 134:
245
+ 135: <span class="ruby-comment cmt"># If we are showing a section item, we want to use the path for the first page</span>
246
+ 136: <span class="ruby-identifier">page</span> = <span class="ruby-identifier">section_node</span>.<span class="ruby-identifier">section?</span> <span class="ruby-value">? </span><span class="ruby-identifier">node</span>.<span class="ruby-identifier">first_page_or_link</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">node</span>
247
+ 137: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">section_node</span>.<span class="ruby-identifier">section?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">page</span>
248
+ 138: <span class="ruby-identifier">item</span>[<span class="ruby-identifier">:selected</span>] = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">hidden?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">selected_page</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">page</span>
249
+ 139: <span class="ruby-keyword kw">else</span>
250
+ 140: <span class="ruby-identifier">item</span>[<span class="ruby-identifier">:selected</span>] = <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">selected_page</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">page</span>
251
+ 141: <span class="ruby-keyword kw">end</span>
252
+ 142:
253
+ 143: <span class="ruby-identifier">item</span>[<span class="ruby-identifier">:url</span>] = <span class="ruby-identifier">page</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">path</span> <span class="ruby-operator">||</span> <span class="ruby-value str">'#'</span>
254
+ 144: <span class="ruby-identifier">item</span>[<span class="ruby-identifier">:name</span>] = <span class="ruby-identifier">node</span>.<span class="ruby-identifier">name</span>
255
+ 145: <span class="ruby-identifier">item</span>[<span class="ruby-identifier">:target</span>] = <span class="ruby-value str">&quot;_blank&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:new_window?</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">page</span>.<span class="ruby-identifier">new_window?</span>
288
256
  146:
289
- 147: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">%Q{&lt;li id=&quot;#{sn.node_type.underscore}_#{sn.node.id}&quot;#{cls ? &quot; class=\&quot;#{cls}\&quot;&quot; : ''}&gt;\n}</span>.<span class="ruby-identifier">indent</span>(<span class="ruby-identifier">indent</span><span class="ruby-operator">+</span><span class="ruby-value">4</span>)
290
- 148:
291
- 149: <span class="ruby-comment cmt">#Figure out what this link for this node should be</span>
292
- 150: <span class="ruby-comment cmt">#If it is a page, then the page will simply be used</span>
293
- 151: <span class="ruby-comment cmt">#But if is a page, we call the first_page_or_link method</span>
294
- 152: <span class="ruby-identifier">p</span> = <span class="ruby-identifier">sn</span>.<span class="ruby-identifier">node_type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;Section&quot;</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">sn</span>.<span class="ruby-identifier">node</span>.<span class="ruby-identifier">first_page_or_link</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">sn</span>.<span class="ruby-identifier">node</span>
295
- 153: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">%Q{&lt;a href=&quot;#{p ? p.path : '#'}&quot;#{(p.respond_to?(:new_window) &amp;&amp; p.new_window?) ? ' target=&quot;_blank&quot;' : ''}&gt;#{sn.node.name}&lt;/a&gt;\n}</span>.<span class="ruby-identifier">indent</span>(<span class="ruby-identifier">indent</span><span class="ruby-operator">+</span><span class="ruby-value">6</span>)
296
- 154:
297
- 155: <span class="ruby-comment cmt">#Now if this is a section, we do the child nodes, </span>
298
- 156: <span class="ruby-comment cmt">#but only if the show_all_siblings parameter is true, </span>
299
- 157: <span class="ruby-comment cmt">#or if this section is one of the current page's ancestors</span>
300
- 158: <span class="ruby-comment cmt">#and also if the current depth is less than the target depth</span>
301
- 159: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sn</span>.<span class="ruby-identifier">node_type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;Section&quot;</span> <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-identifier">show_all_siblings</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">ancestors</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">sn</span>.<span class="ruby-identifier">node</span>)) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">d</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">depth</span>
302
- 160: <span class="ruby-identifier">fn</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">sn</span>.<span class="ruby-identifier">node</span>.<span class="ruby-identifier">visible_child_nodes</span>, <span class="ruby-identifier">d</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>)
303
- 161: <span class="ruby-keyword kw">end</span>
304
- 162:
305
- 163: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">%Q{&lt;/li&gt;\n}</span>.<span class="ruby-identifier">indent</span>(<span class="ruby-identifier">indent</span><span class="ruby-operator">+</span><span class="ruby-value">4</span>)
306
- 164:
307
- 165: <span class="ruby-keyword kw">end</span>
308
- 166: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;&lt;/ul&gt;\n&quot;</span>.<span class="ruby-identifier">indent</span>(<span class="ruby-identifier">indent</span><span class="ruby-operator">+</span><span class="ruby-value">2</span>)
309
- 167: <span class="ruby-keyword kw">end</span>
310
- 168: <span class="ruby-identifier">fn</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">ancestors</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">visible_child_nodes</span>, <span class="ruby-value">1</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">ancestors</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">blank?</span>
311
- 169: <span class="ruby-identifier">html</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;&lt;/div&gt;\n&quot;</span>
312
- 170: <span class="ruby-keyword kw">end</span>
257
+ 147: <span class="ruby-comment cmt"># Now if this is a section, we do the child nodes, </span>
258
+ 148: <span class="ruby-comment cmt"># but only if the show_all_siblings parameter is true, </span>
259
+ 149: <span class="ruby-comment cmt"># or if this section is one of the current page's ancestors</span>
260
+ 150: <span class="ruby-comment cmt"># and also if the current depth is less than the target depth</span>
261
+ 151: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">section_node</span>.<span class="ruby-identifier">section?</span> <span class="ruby-operator">&amp;&amp;</span>
262
+ 152: <span class="ruby-identifier">current_depth</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">depth</span> <span class="ruby-operator">&amp;&amp;</span>
263
+ 153: (<span class="ruby-identifier">show_all_siblings</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">ancestors</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">node</span>)) <span class="ruby-operator">&amp;&amp;</span>
264
+ 154: <span class="ruby-operator">!</span><span class="ruby-identifier">node</span>.<span class="ruby-identifier">visible_child_nodes</span>.<span class="ruby-identifier">empty?</span>
265
+ 155: <span class="ruby-identifier">item</span>[<span class="ruby-identifier">:children</span>] = <span class="ruby-identifier">fn</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">node</span>.<span class="ruby-identifier">visible_child_nodes</span>, <span class="ruby-identifier">current_depth</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
266
+ 156: <span class="ruby-keyword kw">end</span>
267
+ 157:
268
+ 158: <span class="ruby-identifier">item</span>
269
+ 159: <span class="ruby-keyword kw">end</span>
270
+ 160: <span class="ruby-keyword kw">end</span>
271
+ 161:
272
+ 162: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">ancestors</span>.<span class="ruby-identifier">empty?</span>
273
+ 163: []
274
+ 164: <span class="ruby-keyword kw">else</span>
275
+ 165: <span class="ruby-identifier">fn</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">ancestors</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">visible_child_nodes</span>(<span class="ruby-identifier">:limit</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:limit</span>]), <span class="ruby-value">1</span>)
276
+ 166: <span class="ruby-keyword kw">end</span>
277
+ 167: <span class="ruby-keyword kw">end</span>
278
+ </pre>
279
+ </div>
280
+ </div>
281
+ </div>
282
+
283
+ <div id="method-M000341" class="method-detail">
284
+ <a name="M000341"></a>
285
+
286
+ <div class="method-heading">
287
+ <a href="#M000341" class="method-signature">
288
+ <span class="method-name">render_menu</span><span class="method-args">(options = {})</span>
289
+ </a>
290
+ </div>
291
+
292
+ <div class="method-description">
293
+ <p>
294
+ Renders a menu. There are two options, neither are required:
295
+ </p>
296
+ <h4>Options</h4>
297
+ <ul>
298
+ <li><tt>:items</tt> - The items which should appear in the menu. This defaults
299
+ to calling <a href="MenuHelper.html#M000342">menu_items</a> which generates
300
+ items automatically based on the current page. But you can use this option
301
+ to pass in a custom menu structure.
302
+
303
+ </li>
304
+ <li><tt>:partial</tt> - The partial used to render the menu. By default this is
305
+ &quot;partials/menu&quot;, which can be customised through the CMS. The
306
+ partial gets a local variable <tt>items</tt>.
307
+
308
+ </li>
309
+ </ul>
310
+ <h4>Structure of items</h4>
311
+ <p>
312
+ The items should be an array of hashes, in a tree. Each hash can have the
313
+ following keys (name and url are required, others are optional):
314
+ </p>
315
+ <ul>
316
+ <li><tt>:name</tt> - The name which appears in the menu
317
+
318
+ </li>
319
+ <li><tt>:url</tt> - The URL to link to
320
+
321
+ </li>
322
+ <li><tt>:id</tt> - The id for the menu item
323
+
324
+ </li>
325
+ <li><tt>:selected</tt> - Boolean value to indicate whether the menu item is the
326
+ current page
327
+
328
+ </li>
329
+ <li><tt>:target</tt> - The target attribute for the link
330
+
331
+ </li>
332
+ <li><tt>:children</tt> - An array of hashes containing the child menu items.
333
+ This is where the tree structure comes in.
334
+
335
+ </li>
336
+ </ul>
337
+ <p>
338
+ Edge Cases:
339
+ </p>
340
+ <pre>
341
+ If both @page and :items are nil/empty, this will return an empty string. This might happen if used on an CMS
342
+ rendered page, where @page isn't set.
343
+ </pre>
344
+ <p><a class="source-toggle" href="#"
345
+ onclick="toggleCode('M000341-source');return false;">[Source]</a></p>
346
+ <div class="method-source-code" id="M000341-source">
347
+ <pre>
348
+ <span class="ruby-comment cmt"># File app/helpers/cms/menu_helper.rb, line 29</span>
349
+ 29: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render_menu</span>(<span class="ruby-identifier">options</span> = {})
350
+ 30: <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:items</span>] <span class="ruby-operator">||=</span> <span class="ruby-identifier">menu_items</span>(<span class="ruby-identifier">options</span>)
351
+ 31: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">&quot;&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:items</span>]
352
+ 32:
353
+ 33: <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:partial</span>] <span class="ruby-operator">||=</span> <span class="ruby-value str">&quot;cms/menus/menu&quot;</span>
354
+ 34: <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:id</span>] <span class="ruby-operator">||=</span> <span class="ruby-value str">&quot;menu&quot;</span>
355
+ 35: <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:class</span>] <span class="ruby-operator">||=</span> <span class="ruby-value str">&quot;menu&quot;</span>
356
+ 36: <span class="ruby-identifier">render</span> <span class="ruby-identifier">:partial</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:partial</span>], <span class="ruby-identifier">:locals</span> =<span class="ruby-operator">&gt;</span> { <span class="ruby-identifier">:items</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:items</span>], <span class="ruby-identifier">:css_id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:id</span>], <span class="ruby-identifier">:css_class</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:class</span>] }
357
+ 37: <span class="ruby-keyword kw">end</span>
313
358
  </pre>
314
359
  </div>
315
360
  </div>
@@ -80,12 +80,14 @@
80
80
  <h3 class="section-bar">Methods</h3>
81
81
 
82
82
  <div class="name-list">
83
- <a href="#M000503">cms_toolbar</a>&nbsp;&nbsp;
84
- <a href="#M000501">container</a>&nbsp;&nbsp;
85
- <a href="#M000502">container_has_block?</a>&nbsp;&nbsp;
86
- <a href="#M000500">current_page</a>&nbsp;&nbsp;
87
- <a href="#M000504">render_breadcrumbs</a>&nbsp;&nbsp;
88
- <a href="#M000505">render_portlet</a>&nbsp;&nbsp;
83
+ <a href="#M000551">able_to?</a>&nbsp;&nbsp;
84
+ <a href="#M000548">cms_toolbar</a>&nbsp;&nbsp;
85
+ <a href="#M000546">container</a>&nbsp;&nbsp;
86
+ <a href="#M000547">container_has_block?</a>&nbsp;&nbsp;
87
+ <a href="#M000545">current_page</a>&nbsp;&nbsp;
88
+ <a href="#M000544">page_title</a>&nbsp;&nbsp;
89
+ <a href="#M000549">render_breadcrumbs</a>&nbsp;&nbsp;
90
+ <a href="#M000550">render_portlet</a>&nbsp;&nbsp;
89
91
  </div>
90
92
  </div>
91
93
 
@@ -107,171 +109,256 @@
107
109
  <div id="methods">
108
110
  <h3 class="section-bar">Public Instance methods</h3>
109
111
 
110
- <div id="method-M000503" class="method-detail">
111
- <a name="M000503"></a>
112
+ <div id="method-M000551" class="method-detail">
113
+ <a name="M000551"></a>
112
114
 
113
115
  <div class="method-heading">
114
- <a href="#M000503" class="method-signature">
116
+ <a href="#M000551" class="method-signature">
117
+ <span class="method-name">able_to?</span><span class="method-args">(*perms) {|if current_user.able_to?(*perms)| ...}</span>
118
+ </a>
119
+ </div>
120
+
121
+ <div class="method-description">
122
+ <p>
123
+ Determines if the current_user is able to do specific permissions.
124
+ </p>
125
+ <p><a class="source-toggle" href="#"
126
+ onclick="toggleCode('M000551-source');return false;">[Source]</a></p>
127
+ <div class="method-source-code" id="M000551-source">
128
+ <pre>
129
+ <span class="ruby-comment cmt"># File app/helpers/cms/page_helper.rb, line 87</span>
130
+ 87: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">able_to?</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">perms</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
131
+ 88: <span class="ruby-keyword kw">yield</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">current_user</span>.<span class="ruby-identifier">able_to?</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">perms</span>)
132
+ 89: <span class="ruby-keyword kw">end</span>
133
+ </pre>
134
+ </div>
135
+ </div>
136
+ </div>
137
+
138
+ <div id="method-M000548" class="method-detail">
139
+ <a name="M000548"></a>
140
+
141
+ <div class="method-heading">
142
+ <a href="#M000548" class="method-signature">
115
143
  <span class="method-name">cms_toolbar</span><span class="method-args">()</span>
116
144
  </a>
117
145
  </div>
118
146
 
119
147
  <div class="method-description">
120
148
  <p><a class="source-toggle" href="#"
121
- onclick="toggleCode('M000503-source');return false;">[Source]</a></p>
122
- <div class="method-source-code" id="M000503-source">
149
+ onclick="toggleCode('M000548-source');return false;">[Source]</a></p>
150
+ <div class="method-source-code" id="M000548-source">
123
151
  <pre>
124
- <span class="ruby-comment cmt"># File app/helpers/cms/page_helper.rb, line 26</span>
125
- 26: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cms_toolbar</span>
126
- 27: <span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-value str">&quot;@content_for_layout&quot;</span>)
127
- 28: <span class="ruby-keyword kw">end</span>
152
+ <span class="ruby-comment cmt"># File app/helpers/cms/page_helper.rb, line 34</span>
153
+ 34: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cms_toolbar</span>
154
+ 35: <span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-value str">&quot;@content_for_layout&quot;</span>)
155
+ 36: <span class="ruby-keyword kw">end</span>
128
156
  </pre>
129
157
  </div>
130
158
  </div>
131
159
  </div>
132
160
 
133
- <div id="method-M000501" class="method-detail">
134
- <a name="M000501"></a>
161
+ <div id="method-M000546" class="method-detail">
162
+ <a name="M000546"></a>
135
163
 
136
164
  <div class="method-heading">
137
- <a href="#M000501" class="method-signature">
165
+ <a href="#M000546" class="method-signature">
138
166
  <span class="method-name">container</span><span class="method-args">(name)</span>
139
167
  </a>
140
168
  </div>
141
169
 
142
170
  <div class="method-description">
143
171
  <p><a class="source-toggle" href="#"
144
- onclick="toggleCode('M000501-source');return false;">[Source]</a></p>
145
- <div class="method-source-code" id="M000501-source">
172
+ onclick="toggleCode('M000546-source');return false;">[Source]</a></p>
173
+ <div class="method-source-code" id="M000546-source">
146
174
  <pre>
147
- <span class="ruby-comment cmt"># File app/helpers/cms/page_helper.rb, line 7</span>
148
- 7: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">container</span>(<span class="ruby-identifier">name</span>)
149
- 8: <span class="ruby-identifier">content</span> = <span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-node">&quot;@content_for_#{name}&quot;</span>)
150
- 9: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">logged_in?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@mode</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;edit&quot;</span>
151
- 10: <span class="ruby-identifier">render</span> <span class="ruby-identifier">:partial</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'cms/pages/edit_container'</span>, <span class="ruby-identifier">:locals</span> =<span class="ruby-operator">&gt;</span> {<span class="ruby-identifier">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span>, <span class="ruby-identifier">:content</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">content</span>}
152
- 11: <span class="ruby-keyword kw">else</span>
153
- 12: <span class="ruby-identifier">content</span>
154
- 13: <span class="ruby-keyword kw">end</span>
155
- 14: <span class="ruby-keyword kw">end</span>
175
+ <span class="ruby-comment cmt"># File app/helpers/cms/page_helper.rb, line 15</span>
176
+ 15: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">container</span>(<span class="ruby-identifier">name</span>)
177
+ 16: <span class="ruby-identifier">content</span> = <span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-node">&quot;@content_for_#{name}&quot;</span>)
178
+ 17: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">logged_in?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@page</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@mode</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;edit&quot;</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">current_user</span>.<span class="ruby-identifier">able_to_edit?</span>(<span class="ruby-ivar">@page</span>)
179
+ 18: <span class="ruby-identifier">render</span> <span class="ruby-identifier">:partial</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'cms/pages/edit_container'</span>, <span class="ruby-identifier">:locals</span> =<span class="ruby-operator">&gt;</span> {<span class="ruby-identifier">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span>, <span class="ruby-identifier">:content</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">content</span>}
180
+ 19: <span class="ruby-keyword kw">else</span>
181
+ 20: <span class="ruby-identifier">content</span>
182
+ 21: <span class="ruby-keyword kw">end</span>
183
+ 22: <span class="ruby-keyword kw">end</span>
156
184
  </pre>
157
185
  </div>
158
186
  </div>
159
187
  </div>
160
188
 
161
- <div id="method-M000502" class="method-detail">
162
- <a name="M000502"></a>
189
+ <div id="method-M000547" class="method-detail">
190
+ <a name="M000547"></a>
163
191
 
164
192
  <div class="method-heading">
165
- <a href="#M000502" class="method-signature">
193
+ <a href="#M000547" class="method-signature">
166
194
  <span class="method-name">container_has_block?</span><span class="method-args">(name, &amp;block)</span>
167
195
  </a>
168
196
  </div>
169
197
 
170
198
  <div class="method-description">
171
199
  <p><a class="source-toggle" href="#"
172
- onclick="toggleCode('M000502-source');return false;">[Source]</a></p>
173
- <div class="method-source-code" id="M000502-source">
200
+ onclick="toggleCode('M000547-source');return false;">[Source]</a></p>
201
+ <div class="method-source-code" id="M000547-source">
174
202
  <pre>
175
- <span class="ruby-comment cmt"># File app/helpers/cms/page_helper.rb, line 16</span>
176
- 16: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">container_has_block?</span>(<span class="ruby-identifier">name</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
177
- 17: <span class="ruby-identifier">has_block</span> = (<span class="ruby-ivar">@mode</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;edit&quot;</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">current_page</span>.<span class="ruby-identifier">connectable_count_for_container</span>(<span class="ruby-identifier">name</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
178
- 18: <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span> <span class="ruby-node">&quot;mode = #{@mode}, has_block = #{has_block}&quot;</span>
179
- 19: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
180
- 20: <span class="ruby-identifier">concat</span>(<span class="ruby-identifier">capture</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">has_block</span>
181
- 21: <span class="ruby-keyword kw">else</span>
182
- 22: <span class="ruby-identifier">has_block</span>
183
- 23: <span class="ruby-keyword kw">end</span>
184
- 24: <span class="ruby-keyword kw">end</span>
203
+ <span class="ruby-comment cmt"># File app/helpers/cms/page_helper.rb, line 24</span>
204
+ 24: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">container_has_block?</span>(<span class="ruby-identifier">name</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
205
+ 25: <span class="ruby-identifier">has_block</span> = (<span class="ruby-ivar">@mode</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;edit&quot;</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">current_page</span>.<span class="ruby-identifier">connectable_count_for_container</span>(<span class="ruby-identifier">name</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
206
+ 26: <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span> <span class="ruby-node">&quot;mode = #{@mode}, has_block = #{has_block}&quot;</span>
207
+ 27: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
208
+ 28: <span class="ruby-identifier">concat</span>(<span class="ruby-identifier">capture</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">has_block</span>
209
+ 29: <span class="ruby-keyword kw">else</span>
210
+ 30: <span class="ruby-identifier">has_block</span>
211
+ 31: <span class="ruby-keyword kw">end</span>
212
+ 32: <span class="ruby-keyword kw">end</span>
185
213
  </pre>
186
214
  </div>
187
215
  </div>
188
216
  </div>
189
217
 
190
- <div id="method-M000500" class="method-detail">
191
- <a name="M000500"></a>
218
+ <div id="method-M000545" class="method-detail">
219
+ <a name="M000545"></a>
192
220
 
193
221
  <div class="method-heading">
194
- <a href="#M000500" class="method-signature">
222
+ <a href="#M000545" class="method-signature">
195
223
  <span class="method-name">current_page</span><span class="method-args">()</span>
196
224
  </a>
197
225
  </div>
198
226
 
199
227
  <div class="method-description">
200
228
  <p><a class="source-toggle" href="#"
201
- onclick="toggleCode('M000500-source');return false;">[Source]</a></p>
202
- <div class="method-source-code" id="M000500-source">
229
+ onclick="toggleCode('M000545-source');return false;">[Source]</a></p>
230
+ <div class="method-source-code" id="M000545-source">
231
+ <pre>
232
+ <span class="ruby-comment cmt"># File app/helpers/cms/page_helper.rb, line 11</span>
233
+ 11: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">current_page</span>
234
+ 12: <span class="ruby-ivar">@page</span>
235
+ 13: <span class="ruby-keyword kw">end</span>
236
+ </pre>
237
+ </div>
238
+ </div>
239
+ </div>
240
+
241
+ <div id="method-M000544" class="method-detail">
242
+ <a name="M000544"></a>
243
+
244
+ <div class="method-heading">
245
+ <a href="#M000544" class="method-signature">
246
+ <span class="method-name">page_title</span><span class="method-args">(*args)</span>
247
+ </a>
248
+ </div>
249
+
250
+ <div class="method-description">
251
+ <p><a class="source-toggle" href="#"
252
+ onclick="toggleCode('M000544-source');return false;">[Source]</a></p>
253
+ <div class="method-source-code" id="M000544-source">
203
254
  <pre>
204
255
  <span class="ruby-comment cmt"># File app/helpers/cms/page_helper.rb, line 3</span>
205
- 3: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">current_page</span>
206
- 4: <span class="ruby-ivar">@page</span>
207
- 5: <span class="ruby-keyword kw">end</span>
256
+ 3: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">page_title</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
257
+ 4: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">first</span>
258
+ 5: <span class="ruby-ivar">@controller</span>.<span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-value str">&quot;@template&quot;</span>).<span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-value str">&quot;@page_title&quot;</span>, <span class="ruby-identifier">args</span>.<span class="ruby-identifier">first</span>)
259
+ 6: <span class="ruby-keyword kw">else</span>
260
+ 7: <span class="ruby-ivar">@controller</span>.<span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-value str">&quot;@template&quot;</span>).<span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-value str">&quot;@page_title&quot;</span>)
261
+ 8: <span class="ruby-keyword kw">end</span>
262
+ 9: <span class="ruby-keyword kw">end</span>
208
263
  </pre>
209
264
  </div>
210
265
  </div>
211
266
  </div>
212
267
 
213
- <div id="method-M000504" class="method-detail">
214
- <a name="M000504"></a>
268
+ <div id="method-M000549" class="method-detail">
269
+ <a name="M000549"></a>
215
270
 
216
271
  <div class="method-heading">
217
- <a href="#M000504" class="method-signature">
272
+ <a href="#M000549" class="method-signature">
218
273
  <span class="method-name">render_breadcrumbs</span><span class="method-args">(options={})</span>
219
274
  </a>
220
275
  </div>
221
276
 
222
277
  <div class="method-description">
278
+ <p>
279
+ Renders breadcrumbs based on the <a
280
+ href="PageHelper.html#M000545">current_page</a>. This will generate an
281
+ unordered list representing the current page and all it&#8216;s ancestors
282
+ including the root name of of the site. The UL can be styled via CSS for
283
+ layout purposes. Each breadcrumb except the last will be linked to the page
284
+ in question.
285
+ </p>
286
+ <p>
287
+ If the <a href="PageHelper.html#M000545">current_page</a> is nil, it will
288
+ return an empty string.
289
+ </p>
290
+ <h4>Params:</h4>
291
+ <pre>
292
+ options = A hash of options which determine how the breadcrumbs will be laid out.
293
+ </pre>
294
+ <h4>Options:</h4>
295
+ <ul>
296
+ <li><tt>:from_top</tt> - How many below levels from the root the tree should
297
+ start at. All sections at this level will be shown. The default is 0, which
298
+ means show all nodes that are direct children of the root.
299
+
300
+ </li>
301
+ <li><tt>:show_parent</tt> - Determines if the name of the page itself show be
302
+ shown as a breadcrumb link. Defaults to false, meaning that the parent
303
+ section of the current page will be the &#8216;last&#8217; breadcrumb link.
304
+ (Note: This probably better renamed as &#8216;show_page&#8217;).
305
+
306
+ </li>
307
+ </ul>
223
308
  <p><a class="source-toggle" href="#"
224
- onclick="toggleCode('M000504-source');return false;">[Source]</a></p>
225
- <div class="method-source-code" id="M000504-source">
309
+ onclick="toggleCode('M000549-source');return false;">[Source]</a></p>
310
+ <div class="method-source-code" id="M000549-source">
226
311
  <pre>
227
- <span class="ruby-comment cmt"># File app/helpers/cms/page_helper.rb, line 30</span>
228
- 30: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render_breadcrumbs</span>(<span class="ruby-identifier">options</span>={})
229
- 31: <span class="ruby-identifier">start</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:from_top</span>] <span class="ruby-operator">||</span> <span class="ruby-value">0</span>
230
- 32: <span class="ruby-identifier">show_parent</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:show_parent</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">false</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:show_parent</span>]
231
- 33: <span class="ruby-identifier">ancestors</span> = <span class="ruby-identifier">current_page</span>.<span class="ruby-identifier">ancestors</span>
232
- 34: <span class="ruby-identifier">items</span> = []
233
- 35: <span class="ruby-identifier">ancestors</span>[<span class="ruby-identifier">start</span><span class="ruby-operator">..</span><span class="ruby-identifier">ancestors</span>.<span class="ruby-identifier">size</span>].<span class="ruby-identifier">each_with_index</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sec</span>,<span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
234
- 36: <span class="ruby-identifier">items</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">content_tag</span>(<span class="ruby-identifier">:li</span>,
235
- 37: <span class="ruby-identifier">link_to</span>(<span class="ruby-identifier">h</span>(<span class="ruby-identifier">sec</span>.<span class="ruby-identifier">name</span>), <span class="ruby-identifier">sec</span>.<span class="ruby-identifier">actual_path</span>),
236
- 38: (<span class="ruby-identifier">i</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> {<span class="ruby-identifier">:class</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;first&quot;</span>} <span class="ruby-operator">:</span> {}))
237
- 39: <span class="ruby-keyword kw">end</span>
238
- 40: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">show_parent</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">current_page</span>.<span class="ruby-identifier">section</span>.<span class="ruby-identifier">path</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">current_page</span>.<span class="ruby-identifier">path</span>
239
- 41: <span class="ruby-identifier">items</span>[<span class="ruby-identifier">items</span>.<span class="ruby-identifier">size</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>] = <span class="ruby-identifier">content_tag</span>(<span class="ruby-identifier">:li</span>, <span class="ruby-identifier">h</span>(<span class="ruby-identifier">current_page</span>.<span class="ruby-identifier">section</span>.<span class="ruby-identifier">name</span>))
240
- 42: <span class="ruby-keyword kw">else</span>
241
- 43: <span class="ruby-identifier">items</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">content_tag</span>(<span class="ruby-identifier">:li</span>, <span class="ruby-identifier">h</span>(<span class="ruby-identifier">current_page</span>.<span class="ruby-identifier">page_title</span>))
242
- 44: <span class="ruby-keyword kw">end</span>
243
- 45: <span class="ruby-identifier">content_tag</span>(<span class="ruby-identifier">:ul</span>, <span class="ruby-node">&quot;\n #{items.join(&quot;\n &quot;)}\n&quot;</span>, <span class="ruby-identifier">:class</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;breadcrumbs&quot;</span>)
244
- 46: <span class="ruby-keyword kw">end</span>
312
+ <span class="ruby-comment cmt"># File app/helpers/cms/page_helper.rb, line 55</span>
313
+ 55: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render_breadcrumbs</span>(<span class="ruby-identifier">options</span>={})
314
+ 56: <span class="ruby-keyword kw">return</span> <span class="ruby-value str">&quot;&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">current_page</span>
315
+ 57:
316
+ 58: <span class="ruby-identifier">start</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:from_top</span>] <span class="ruby-operator">||</span> <span class="ruby-value">0</span>
317
+ 59: <span class="ruby-identifier">show_parent</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:show_parent</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-value">? </span><span class="ruby-keyword kw">false</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:show_parent</span>]
318
+ 60: <span class="ruby-identifier">ancestors</span> = <span class="ruby-identifier">current_page</span>.<span class="ruby-identifier">ancestors</span>
319
+ 61: <span class="ruby-identifier">items</span> = []
320
+ 62: <span class="ruby-identifier">ancestors</span>[<span class="ruby-identifier">start</span><span class="ruby-operator">..</span><span class="ruby-identifier">ancestors</span>.<span class="ruby-identifier">size</span>].<span class="ruby-identifier">each_with_index</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sec</span>,<span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
321
+ 63: <span class="ruby-identifier">items</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">content_tag</span>(<span class="ruby-identifier">:li</span>,
322
+ 64: <span class="ruby-identifier">link_to</span>(<span class="ruby-identifier">h</span>(<span class="ruby-identifier">sec</span>.<span class="ruby-identifier">name</span>), <span class="ruby-identifier">sec</span>.<span class="ruby-identifier">actual_path</span>),
323
+ 65: (<span class="ruby-identifier">i</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> {<span class="ruby-identifier">:class</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;first&quot;</span>} <span class="ruby-operator">:</span> {}))
324
+ 66: <span class="ruby-keyword kw">end</span>
325
+ 67: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">show_parent</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">current_page</span>.<span class="ruby-identifier">section</span>.<span class="ruby-identifier">path</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">current_page</span>.<span class="ruby-identifier">path</span>
326
+ 68: <span class="ruby-identifier">items</span>[<span class="ruby-identifier">items</span>.<span class="ruby-identifier">size</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>] = <span class="ruby-identifier">content_tag</span>(<span class="ruby-identifier">:li</span>, <span class="ruby-identifier">h</span>(<span class="ruby-identifier">current_page</span>.<span class="ruby-identifier">section</span>.<span class="ruby-identifier">name</span>))
327
+ 69: <span class="ruby-keyword kw">else</span>
328
+ 70: <span class="ruby-identifier">items</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">content_tag</span>(<span class="ruby-identifier">:li</span>, <span class="ruby-identifier">h</span>(<span class="ruby-identifier">current_page</span>.<span class="ruby-identifier">page_title</span>))
329
+ 71: <span class="ruby-keyword kw">end</span>
330
+ 72: <span class="ruby-identifier">content_tag</span>(<span class="ruby-identifier">:ul</span>, <span class="ruby-node">&quot;\n #{items.join(&quot;\n &quot;)}\n&quot;</span>, <span class="ruby-identifier">:class</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">&quot;breadcrumbs&quot;</span>)
331
+ 73: <span class="ruby-keyword kw">end</span>
245
332
  </pre>
246
333
  </div>
247
334
  </div>
248
335
  </div>
249
336
 
250
- <div id="method-M000505" class="method-detail">
251
- <a name="M000505"></a>
337
+ <div id="method-M000550" class="method-detail">
338
+ <a name="M000550"></a>
252
339
 
253
340
  <div class="method-heading">
254
- <a href="#M000505" class="method-signature">
341
+ <a href="#M000550" class="method-signature">
255
342
  <span class="method-name">render_portlet</span><span class="method-args">(name)</span>
256
343
  </a>
257
344
  </div>
258
345
 
259
346
  <div class="method-description">
260
347
  <p><a class="source-toggle" href="#"
261
- onclick="toggleCode('M000505-source');return false;">[Source]</a></p>
262
- <div class="method-source-code" id="M000505-source">
348
+ onclick="toggleCode('M000550-source');return false;">[Source]</a></p>
349
+ <div class="method-source-code" id="M000550-source">
263
350
  <pre>
264
- <span class="ruby-comment cmt"># File app/helpers/cms/page_helper.rb, line 48</span>
265
- 48: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render_portlet</span>(<span class="ruby-identifier">name</span>)
266
- 49: <span class="ruby-identifier">portlets</span> = <span class="ruby-constant">Portlet</span>.<span class="ruby-identifier">all</span>(<span class="ruby-identifier">:conditions</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-value str">&quot;name = ?&quot;</span>, <span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>])
267
- 50: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">portlets</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
268
- 51: <span class="ruby-ivar">@mode</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;edit&quot;</span> <span class="ruby-operator">?</span> <span class="ruby-node">&quot;ERROR: Multiple Portlets with name '#{name}'&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
269
- 52: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">portlets</span>.<span class="ruby-identifier">empty?</span>
270
- 53: <span class="ruby-ivar">@mode</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;edit&quot;</span> <span class="ruby-operator">?</span> <span class="ruby-node">&quot;ERROR: No Portlet with name '#{name}'&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
271
- 54: <span class="ruby-keyword kw">else</span>
272
- 55: <span class="ruby-identifier">render_connectable</span>(<span class="ruby-identifier">portlets</span>.<span class="ruby-identifier">first</span>)
273
- 56: <span class="ruby-keyword kw">end</span>
274
- 57: <span class="ruby-keyword kw">end</span>
351
+ <span class="ruby-comment cmt"># File app/helpers/cms/page_helper.rb, line 75</span>
352
+ 75: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">render_portlet</span>(<span class="ruby-identifier">name</span>)
353
+ 76: <span class="ruby-identifier">portlets</span> = <span class="ruby-constant">Portlet</span>.<span class="ruby-identifier">all</span>(<span class="ruby-identifier">:conditions</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-value str">&quot;name = ?&quot;</span>, <span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_s</span>])
354
+ 77: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">portlets</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
355
+ 78: <span class="ruby-ivar">@mode</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;edit&quot;</span> <span class="ruby-operator">?</span> <span class="ruby-node">&quot;ERROR: Multiple Portlets with name '#{name}'&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
356
+ 79: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">portlets</span>.<span class="ruby-identifier">empty?</span>
357
+ 80: <span class="ruby-ivar">@mode</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;edit&quot;</span> <span class="ruby-operator">?</span> <span class="ruby-node">&quot;ERROR: No Portlet with name '#{name}'&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
358
+ 81: <span class="ruby-keyword kw">else</span>
359
+ 82: <span class="ruby-identifier">render_connectable</span>(<span class="ruby-identifier">portlets</span>.<span class="ruby-identifier">first</span>)
360
+ 83: <span class="ruby-keyword kw">end</span>
361
+ 84: <span class="ruby-keyword kw">end</span>
275
362
  </pre>
276
363
  </div>
277
364
  </div>