browsercms 3.0.6 → 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 (995) hide show
  1. data/app/controllers/cms/application_controller.rb +2 -12
  2. data/app/controllers/cms/content_block_controller.rb +1 -1
  3. data/app/controllers/cms/content_controller.rb +3 -83
  4. data/app/controllers/cms/dashboard_controller.rb +1 -1
  5. data/app/controllers/cms/pages_controller.rb +2 -0
  6. data/app/controllers/tests/pretend_controller.rb +32 -0
  7. data/app/helpers/application_helper.rb +2 -0
  8. data/app/helpers/cms/application_helper.rb +0 -32
  9. data/app/helpers/cms/form_builder.rb +131 -54
  10. data/app/helpers/cms/menu_helper.rb +13 -2
  11. data/app/helpers/cms/page_helper.rb +26 -2
  12. data/app/helpers/cms/rendering_helper.rb +42 -0
  13. data/app/models/forgot_password_mailer.rb +12 -0
  14. data/app/models/guest_user.rb +11 -3
  15. data/app/models/page.rb +1 -1
  16. data/app/models/page_template.rb +1 -18
  17. data/app/models/portlet.rb +10 -1
  18. data/app/models/section.rb +41 -33
  19. data/app/models/task.rb +32 -26
  20. data/app/models/templates.rb +31 -0
  21. data/app/models/user.rb +27 -9
  22. data/app/portlets/forgot_password_portlet.rb +29 -0
  23. data/app/portlets/reset_password_portlet.rb +28 -0
  24. data/app/views/cms/blocks/_toolbar_for_member.html.erb +1 -1
  25. data/app/views/cms/blocks/edit.html.erb +5 -0
  26. data/app/views/cms/blocks/show.html.erb +3 -0
  27. data/app/views/cms/dynamic_views/index.html.erb +3 -2
  28. data/app/views/cms/forgot_password_mailer/reset_password.text.html.erb +3 -0
  29. data/app/views/cms/forgot_password_mailer/reset_password.text.plain.erb +3 -0
  30. data/app/views/cms/form_builder/_cms_check_box.html.erb +7 -0
  31. data/app/views/cms/form_builder/_cms_drop_down.html.erb +0 -7
  32. data/app/views/cms/form_builder/_cms_fancy_drop_down.html.erb +9 -0
  33. data/app/views/cms/form_builder/_cms_file_field.html.erb +11 -7
  34. data/app/views/cms/form_builder/_cms_instructions.html.erb +4 -0
  35. data/app/views/cms/form_builder/_cms_template_editor.html.erb +8 -0
  36. data/app/views/cms/groups/_permissions.html.erb +1 -1
  37. data/app/views/cms/page_routes/index.html.erb +2 -2
  38. data/app/views/cms/page_routes/show.html.erb +2 -2
  39. data/app/views/cms/redirects/index.html.erb +1 -1
  40. data/app/views/layouts/cms/_footer.erb +1 -1
  41. data/app/views/layouts/cms/_head.html.erb +1 -1
  42. data/app/views/layouts/cms/content_library.html.erb +7 -7
  43. data/app/views/layouts/cms/thickbox.html.erb +2 -2
  44. data/app/views/portlets/forgot_password/_form.html.erb +6 -0
  45. data/app/views/portlets/forgot_password/render.html.erb +14 -0
  46. data/app/views/portlets/reset_password/_form.html.erb +3 -0
  47. data/app/views/portlets/reset_password/render.html.erb +24 -0
  48. data/app/views/tests/pretend/open_with_layout.html.erb +5 -0
  49. data/bin/bcms +6 -0
  50. data/bin/browsercms +73 -0
  51. data/browsercms.gemspec +493 -379
  52. data/db/demo/page_templates/sub_page.html.erb +1 -1
  53. data/db/migrate/20081114172307_load_seed_data.rb +0 -29
  54. data/db/migrate/20091109175123_browsercms_3_0_5.rb +9 -0
  55. data/doc/app/classes/AbstractFileBlock.html +32 -6
  56. data/doc/app/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html +136 -85
  57. data/doc/app/classes/ActiveSupport/Cache/FileStore.html +6 -6
  58. data/doc/app/classes/ActsAsList.html +6 -6
  59. data/doc/app/classes/ActsAsList/ClassMethods.html +8 -8
  60. data/doc/app/classes/ActsAsList/InstanceMethods.html +143 -119
  61. data/doc/app/classes/ApplicationHelper.html +4 -0
  62. data/doc/app/classes/Attachment.html +134 -134
  63. data/doc/app/classes/Category.html +24 -24
  64. data/doc/app/classes/CategoryType.html +18 -18
  65. data/doc/app/classes/Cms.html +227 -94
  66. data/doc/app/classes/Cms/Acts.html +5 -0
  67. data/doc/app/classes/Cms/Acts/ContentBlock.html +6 -6
  68. data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods.html +6 -6
  69. data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods/InstanceMethods.html +6 -6
  70. data/doc/app/classes/Cms/Acts/ContentPage.html +187 -0
  71. data/doc/app/classes/Cms/Acts/ContentPage/ClassMethods.html +188 -0
  72. data/doc/app/classes/Cms/ApplicationController.html +69 -118
  73. data/doc/app/classes/Cms/ApplicationHelper.html +277 -393
  74. data/doc/app/classes/Cms/AttachmentsController.html +6 -6
  75. data/doc/app/classes/Cms/Authentication/Controller.html +226 -228
  76. data/doc/app/classes/Cms/Authentication/Model.html +6 -6
  77. data/doc/app/classes/Cms/Authentication/Model/ClassMethods.html +30 -30
  78. data/doc/app/classes/Cms/Authentication/Model/InstanceMethods.html +66 -66
  79. data/doc/app/classes/Cms/Behaviors/Archiving.html +6 -6
  80. data/doc/app/classes/Cms/Behaviors/Archiving/InstanceMethods.html +24 -24
  81. data/doc/app/classes/Cms/Behaviors/Archiving/MacroMethods.html +12 -12
  82. data/doc/app/classes/Cms/Behaviors/Attaching.html +6 -6
  83. data/doc/app/classes/Cms/Behaviors/Attaching/InstanceMethods.html +123 -123
  84. data/doc/app/classes/Cms/Behaviors/Attaching/MacroMethods.html +12 -12
  85. data/doc/app/classes/Cms/Behaviors/Categorizing.html +6 -6
  86. data/doc/app/classes/Cms/Behaviors/Categorizing/InstanceMethods.html +6 -6
  87. data/doc/app/classes/Cms/Behaviors/Categorizing/MacroMethods.html +12 -12
  88. data/doc/app/classes/Cms/Behaviors/ClassMethods.html +60 -60
  89. data/doc/app/classes/Cms/Behaviors/Connecting.html +6 -6
  90. data/doc/app/classes/Cms/Behaviors/Connecting/ClassMethods.html +18 -18
  91. data/doc/app/classes/Cms/Behaviors/Connecting/InstanceMethods.html +42 -42
  92. data/doc/app/classes/Cms/Behaviors/Connecting/MacroMethods.html +12 -12
  93. data/doc/app/classes/Cms/Behaviors/DynamicAttributes.html +6 -6
  94. data/doc/app/classes/Cms/Behaviors/DynamicAttributes/InstanceMethods.html +14 -14
  95. data/doc/app/classes/Cms/Behaviors/DynamicAttributes/MacroMethods.html +12 -12
  96. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange.html +12 -12
  97. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/InstanceMethods.html +6 -6
  98. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/MacroMethods.html +12 -12
  99. data/doc/app/classes/Cms/Behaviors/Hiding.html +6 -6
  100. data/doc/app/classes/Cms/Behaviors/Hiding/InstanceMethods.html +24 -24
  101. data/doc/app/classes/Cms/Behaviors/Hiding/MacroMethods.html +12 -12
  102. data/doc/app/classes/Cms/Behaviors/InstanceMethods.html +127 -74
  103. data/doc/app/classes/Cms/Behaviors/Pagination.html +6 -6
  104. data/doc/app/classes/Cms/Behaviors/Pagination/ClassMethods.html +12 -12
  105. data/doc/app/classes/Cms/Behaviors/Pagination/Collection.html +55 -55
  106. data/doc/app/classes/Cms/Behaviors/Pagination/InvalidPage.html +6 -6
  107. data/doc/app/classes/Cms/Behaviors/Publishing.html +12 -12
  108. data/doc/app/classes/Cms/Behaviors/Publishing/InstanceMethods.html +119 -119
  109. data/doc/app/classes/Cms/Behaviors/Publishing/MacroMethods.html +25 -14
  110. data/doc/app/classes/Cms/Behaviors/Rendering.html +10 -13
  111. data/doc/app/classes/Cms/Behaviors/Rendering/MacroMethods.html +33 -33
  112. data/doc/app/classes/Cms/Behaviors/Searching.html +6 -6
  113. data/doc/app/classes/Cms/Behaviors/Searching/ClassMethods.html +12 -12
  114. data/doc/app/classes/Cms/Behaviors/Searching/MacroMethods.html +12 -12
  115. data/doc/app/classes/Cms/Behaviors/SoftDeleting.html +6 -6
  116. data/doc/app/classes/Cms/Behaviors/SoftDeleting/ClassMethods.html +24 -24
  117. data/doc/app/classes/Cms/Behaviors/SoftDeleting/InstanceMethods.html +30 -30
  118. data/doc/app/classes/Cms/Behaviors/SoftDeleting/MacroMethods.html +12 -12
  119. data/doc/app/classes/Cms/Behaviors/Taggable.html +6 -6
  120. data/doc/app/classes/Cms/Behaviors/Taggable/ClassMethods.html +12 -12
  121. data/doc/app/classes/Cms/Behaviors/Taggable/InstanceMethods.html +34 -33
  122. data/doc/app/classes/Cms/Behaviors/Taggable/MacroMethods.html +12 -12
  123. data/doc/app/classes/Cms/Behaviors/Userstamping.html +6 -6
  124. data/doc/app/classes/Cms/Behaviors/Userstamping/InstanceMethods.html +6 -6
  125. data/doc/app/classes/Cms/Behaviors/Userstamping/MacroMethods.html +12 -12
  126. data/doc/app/classes/Cms/Behaviors/Versioning.html +6 -6
  127. data/doc/app/classes/Cms/Behaviors/Versioning/ClassMethods.html +30 -30
  128. data/doc/app/classes/Cms/Behaviors/Versioning/InstanceMethods.html +322 -294
  129. data/doc/app/classes/Cms/Behaviors/Versioning/MacroMethods.html +31 -31
  130. data/doc/app/classes/Cms/CacheController.html +12 -12
  131. data/doc/app/classes/Cms/Caching.html +12 -12
  132. data/doc/app/classes/Cms/CategoriesController.html +35 -0
  133. data/doc/app/classes/Cms/CategoryTypesController.html +6 -6
  134. data/doc/app/classes/Cms/ConnectorsController.html +19 -19
  135. data/doc/app/classes/Cms/ContentBlockController.html +486 -440
  136. data/doc/app/classes/Cms/ContentController.html +48 -121
  137. data/doc/app/classes/Cms/ContentRenderingSupport.html +222 -0
  138. data/doc/app/classes/Cms/ContentTypesController.html +6 -6
  139. data/doc/app/classes/Cms/DashboardController.html +12 -11
  140. data/doc/app/classes/Cms/DataLoader.html +12 -12
  141. data/doc/app/classes/Cms/DomainSupport.html +166 -0
  142. data/doc/app/classes/Cms/DynamicViewsController.html +54 -54
  143. data/doc/app/classes/Cms/EmailMessagesController.html +12 -12
  144. data/doc/app/classes/Cms/ErrorHandling.html +50 -23
  145. data/doc/app/classes/Cms/Errors/AccessDenied.html +10 -10
  146. data/doc/app/classes/Cms/Extensions/ActionView/Base.html +6 -6
  147. data/doc/app/classes/Cms/Extensions/ActiveRecord/Base.html +6 -6
  148. data/doc/app/classes/Cms/Extensions/ActiveRecord/Errors.html +6 -6
  149. data/doc/app/classes/Cms/Extensions/Hash.html +12 -12
  150. data/doc/app/classes/Cms/Extensions/Integer.html +6 -6
  151. data/doc/app/classes/Cms/Extensions/NilClass.html +24 -24
  152. data/doc/app/classes/Cms/Extensions/String.html +24 -24
  153. data/doc/app/classes/Cms/FormBuilder.html +258 -90
  154. data/doc/app/classes/Cms/FormTagHelper.html +30 -30
  155. data/doc/app/classes/Cms/GroupsController.html +24 -24
  156. data/doc/app/classes/Cms/HomeController.html +6 -6
  157. data/doc/app/classes/Cms/LinksController.html +64 -62
  158. data/doc/app/classes/Cms/MenuHelper.html +210 -165
  159. data/doc/app/classes/Cms/PageHelper.html +178 -91
  160. data/doc/app/classes/Cms/PageRouteOptionsController.html +54 -54
  161. data/doc/app/classes/Cms/PageRoutesController.html +36 -36
  162. data/doc/app/classes/Cms/PagesController.html +111 -109
  163. data/doc/app/classes/Cms/PathHelper.html +36 -36
  164. data/doc/app/classes/Cms/PortletController.html +6 -6
  165. data/doc/app/classes/Cms/PortletsController.html +43 -43
  166. data/doc/app/classes/Cms/RedirectsController.html +12 -12
  167. data/doc/app/classes/Cms/RenderingHelper.html +214 -0
  168. data/doc/app/classes/Cms/ResourceController.html +114 -114
  169. data/doc/app/classes/Cms/Routes.html +151 -143
  170. data/doc/app/classes/Cms/RoutesController.html +6 -6
  171. data/doc/app/classes/Cms/SectionNodesController.html +36 -36
  172. data/doc/app/classes/Cms/SectionNodesHelper.html +6 -6
  173. data/doc/app/classes/Cms/SectionsController.html +212 -188
  174. data/doc/app/classes/Cms/SessionsController.html +68 -39
  175. data/doc/app/classes/Cms/TagsController.html +30 -6
  176. data/doc/app/classes/Cms/TasksController.html +18 -18
  177. data/doc/app/classes/Cms/TemplateSupport.html +185 -0
  178. data/doc/app/classes/Cms/ToolbarController.html +6 -6
  179. data/doc/app/classes/Cms/UsersController.html +129 -153
  180. data/doc/app/classes/CommandLine.html +226 -0
  181. data/doc/app/classes/Connector.html +75 -71
  182. data/doc/app/classes/ContentType.html +72 -72
  183. data/doc/app/classes/DynamicPortlet.html +6 -6
  184. data/doc/app/classes/DynamicView.html +130 -133
  185. data/doc/app/classes/EmailMessage.html +24 -24
  186. data/doc/app/classes/EmailMessageMailer.html +6 -6
  187. data/doc/app/classes/EmailPagePortlet.html +12 -12
  188. data/doc/app/classes/FileBlock.html +18 -18
  189. data/doc/app/classes/ForgotPasswordMailer.html +151 -0
  190. data/doc/app/classes/ForgotPasswordPortlet.html +162 -0
  191. data/doc/app/classes/Group.html +72 -20
  192. data/doc/app/classes/GuestUser.html +138 -93
  193. data/doc/app/classes/HtmlBlock.html +12 -12
  194. data/doc/app/classes/ImageBlock.html +18 -18
  195. data/doc/app/classes/InitialData.html +6 -6
  196. data/doc/app/classes/Link.html +30 -30
  197. data/doc/app/classes/LoginPortlet.html +6 -6
  198. data/doc/app/classes/Page.html +185 -185
  199. data/doc/app/classes/PagePartial.html +18 -18
  200. data/doc/app/classes/PageRoute.html +48 -48
  201. data/doc/app/classes/PageTemplate.html +60 -78
  202. data/doc/app/classes/Portlet.html +339 -267
  203. data/doc/app/classes/ResetPasswordPortlet.html +169 -0
  204. data/doc/app/classes/Section.html +257 -200
  205. data/doc/app/classes/SectionNode.html +60 -60
  206. data/doc/app/classes/Sequence.html +6 -6
  207. data/doc/app/classes/Site.html +30 -30
  208. data/doc/app/classes/Tag.html +31 -31
  209. data/doc/app/classes/TagCloudPortlet.html +12 -12
  210. data/doc/app/classes/Tagging.html +6 -6
  211. data/doc/app/classes/Task.html +37 -37
  212. data/doc/app/classes/Templates.html +151 -0
  213. data/doc/app/classes/Tests.html +107 -0
  214. data/doc/app/classes/Tests/PretendController.html +275 -0
  215. data/doc/app/classes/User.html +344 -205
  216. data/doc/app/created.rid +1 -1
  217. data/doc/app/files/app/controllers/cms/application_controller_rb.html +1 -1
  218. data/doc/app/files/app/controllers/cms/categories_controller_rb.html +1 -1
  219. data/doc/app/files/app/controllers/cms/connectors_controller_rb.html +1 -1
  220. data/doc/app/files/app/controllers/cms/content_block_controller_rb.html +1 -1
  221. data/doc/app/files/app/controllers/cms/content_controller_rb.html +1 -1
  222. data/doc/app/files/app/controllers/cms/dashboard_controller_rb.html +1 -1
  223. data/doc/app/files/app/controllers/cms/error_handling_rb.html +1 -1
  224. data/doc/app/files/app/controllers/cms/links_controller_rb.html +1 -1
  225. data/doc/app/files/app/controllers/cms/pages_controller_rb.html +1 -1
  226. data/doc/app/files/app/controllers/cms/portlets_controller_rb.html +1 -1
  227. data/doc/app/files/app/controllers/cms/section_nodes_controller_rb.html +1 -1
  228. data/doc/app/files/app/controllers/cms/sections_controller_rb.html +1 -1
  229. data/doc/app/files/app/controllers/cms/sessions_controller_rb.html +1 -1
  230. data/doc/app/files/app/controllers/cms/tags_controller_rb.html +1 -1
  231. data/doc/app/files/app/controllers/cms/users_controller_rb.html +1 -1
  232. data/doc/app/files/app/controllers/tests/pretend_controller_rb.html +112 -0
  233. data/doc/app/files/app/helpers/application_helper_rb.html +5 -1
  234. data/doc/app/files/app/helpers/cms/application_helper_rb.html +1 -1
  235. data/doc/app/files/app/helpers/cms/form_builder_rb.html +8 -1
  236. data/doc/app/files/app/helpers/cms/menu_helper_rb.html +1 -1
  237. data/doc/app/files/app/helpers/cms/page_helper_rb.html +1 -1
  238. data/doc/app/files/app/helpers/cms/rendering_helper_rb.html +111 -0
  239. data/doc/app/files/app/helpers/cms/template_support_rb.html +108 -0
  240. data/doc/app/files/app/models/abstract_file_block_rb.html +1 -1
  241. data/doc/app/files/app/models/attachment_rb.html +2 -2
  242. data/doc/app/files/app/models/connector_rb.html +1 -1
  243. data/doc/app/files/app/models/content_type_rb.html +1 -1
  244. data/doc/app/files/app/models/dynamic_view_rb.html +1 -1
  245. data/doc/app/files/app/models/forgot_password_mailer_rb.html +101 -0
  246. data/doc/app/files/app/models/group_rb.html +10 -1
  247. data/doc/app/files/app/models/guest_user_rb.html +14 -1
  248. data/doc/app/files/app/models/link_rb.html +1 -1
  249. data/doc/app/files/app/models/page_rb.html +1 -1
  250. data/doc/app/files/app/models/page_template_rb.html +1 -1
  251. data/doc/app/files/app/models/portlet_rb.html +1 -1
  252. data/doc/app/files/app/models/section_rb.html +1 -1
  253. data/doc/app/files/app/models/tag_rb.html +1 -1
  254. data/doc/app/files/app/models/task_rb.html +1 -1
  255. data/doc/app/files/app/models/templates_rb.html +108 -0
  256. data/doc/app/files/app/models/user_rb.html +1 -1
  257. data/doc/app/files/app/portlets/forgot_password_portlet_rb.html +108 -0
  258. data/doc/app/files/app/portlets/reset_password_portlet_rb.html +101 -0
  259. data/doc/app/files/doc/README_FOR_APP.html +7 -6
  260. data/doc/app/files/lib/acts_as_list_rb.html +1 -1
  261. data/doc/app/files/lib/browsercms_rb.html +1 -1
  262. data/doc/app/files/lib/cms/acts/content_block_rb.html +1 -1
  263. data/doc/app/files/lib/cms/acts/content_page_rb.html +125 -0
  264. data/doc/app/files/lib/cms/authentication/controller_rb.html +61 -1
  265. data/doc/app/files/lib/cms/behaviors/attaching_rb.html +1 -1
  266. data/doc/app/files/lib/cms/behaviors/publishing_rb.html +1 -1
  267. data/doc/app/files/lib/cms/behaviors/rendering_rb.html +1 -1
  268. data/doc/app/files/lib/cms/behaviors/taggable_rb.html +1 -1
  269. data/doc/app/files/lib/cms/behaviors/versioning_rb.html +1 -1
  270. data/doc/app/files/lib/cms/content_rendering_support_rb.html +108 -0
  271. data/doc/app/files/lib/cms/domain_support_rb.html +108 -0
  272. data/doc/app/files/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements_rb.html +1 -1
  273. data/doc/app/files/lib/cms/init_rb.html +8 -1
  274. data/doc/app/files/lib/cms/routes_rb.html +1 -1
  275. data/doc/app/files/lib/cms/version_rb.html +107 -0
  276. data/doc/app/files/lib/command_line_rb.html +101 -0
  277. data/doc/app/fr_class_index.html +13 -0
  278. data/doc/app/fr_file_index.html +12 -0
  279. data/doc/app/fr_method_index.html +761 -712
  280. data/doc/guides/html/authentication.html +201 -0
  281. data/doc/guides/html/build_it_yourself.html +21 -18
  282. data/doc/guides/html/building_modules.html +107 -51
  283. data/doc/guides/html/building_templates.html +507 -0
  284. data/doc/guides/html/content_blocks.html +477 -0
  285. data/doc/guides/html/customizing_browsercms.html +173 -0
  286. data/doc/guides/html/deployment_guide.html +31 -5
  287. data/doc/guides/html/getting_started.html +62 -27
  288. data/doc/guides/html/images/content_blocks/add_field_to_form.png +0 -0
  289. data/doc/guides/html/images/content_blocks/add_second_block.png +0 -0
  290. data/doc/guides/html/images/nfl_sitemap.png +0 -0
  291. data/doc/guides/html/index.html +31 -22
  292. data/doc/guides/html/installing_modules.html +25 -17
  293. data/doc/guides/html/portlets.html +238 -0
  294. data/doc/guides/html/user_guide.html +11 -2
  295. data/doc/guides/html/{designer_guide.html → writing_guides.html} +21 -20
  296. data/lib/cms/acts/content_page.rb +69 -0
  297. data/lib/cms/authentication/controller.rb +1 -1
  298. data/lib/cms/behaviors/rendering.rb +9 -2
  299. data/lib/cms/behaviors/versioning.rb +1 -1
  300. data/lib/cms/content_rendering_support.rb +96 -0
  301. data/lib/cms/domain_support.rb +20 -0
  302. data/lib/cms/init.rb +22 -5
  303. data/lib/cms/version.rb +6 -0
  304. data/lib/command_line.rb +39 -0
  305. data/lib/tasks/cms.rake +4 -2
  306. data/public/bcms/ckeditor/ckeditor.js +108 -0
  307. data/public/bcms/ckeditor/config.js +18 -0
  308. data/public/bcms/ckeditor/core/_bootstrap.js +64 -0
  309. data/public/bcms/ckeditor/core/ajax.js +143 -0
  310. data/public/bcms/ckeditor/core/ckeditor.js +96 -0
  311. data/public/bcms/ckeditor/core/ckeditor_base.js +190 -0
  312. data/public/bcms/ckeditor/core/ckeditor_basic.js +241 -0
  313. data/public/bcms/ckeditor/core/command.js +70 -0
  314. data/public/bcms/ckeditor/core/commanddefinition.js +72 -0
  315. data/public/bcms/ckeditor/core/config.js +287 -0
  316. data/public/bcms/ckeditor/core/dom.js +21 -0
  317. data/public/bcms/ckeditor/core/dom/document.js +210 -0
  318. data/public/bcms/ckeditor/core/dom/documentfragment.js +49 -0
  319. data/public/bcms/ckeditor/core/dom/domobject.js +204 -0
  320. data/public/bcms/ckeditor/core/dom/element.js +1384 -0
  321. data/public/bcms/ckeditor/core/dom/elementpath.js +104 -0
  322. data/public/bcms/ckeditor/core/dom/event.js +137 -0
  323. data/public/bcms/ckeditor/core/dom/node.js +649 -0
  324. data/public/bcms/ckeditor/core/dom/nodelist.js +23 -0
  325. data/public/bcms/ckeditor/core/dom/range.js +1668 -0
  326. data/public/bcms/ckeditor/core/dom/text.js +123 -0
  327. data/public/bcms/ckeditor/core/dom/walker.js +411 -0
  328. data/public/bcms/ckeditor/core/dom/window.js +96 -0
  329. data/public/bcms/ckeditor/core/dtd.js +200 -0
  330. data/public/bcms/ckeditor/core/editor.js +650 -0
  331. data/public/bcms/ckeditor/core/editor_basic.js +178 -0
  332. data/public/bcms/ckeditor/core/env.js +219 -0
  333. data/public/bcms/ckeditor/core/event.js +335 -0
  334. data/public/bcms/ckeditor/core/eventInfo.js +120 -0
  335. data/public/bcms/ckeditor/core/focusmanager.js +123 -0
  336. data/public/bcms/ckeditor/core/htmlparser.js +212 -0
  337. data/public/bcms/ckeditor/core/htmlparser/basicwriter.js +140 -0
  338. data/public/bcms/ckeditor/core/htmlparser/cdata.js +44 -0
  339. data/public/bcms/ckeditor/core/htmlparser/comment.js +59 -0
  340. data/public/bcms/ckeditor/core/htmlparser/element.js +196 -0
  341. data/public/bcms/ckeditor/core/htmlparser/filter.js +233 -0
  342. data/public/bcms/ckeditor/core/htmlparser/fragment.js +434 -0
  343. data/public/bcms/ckeditor/core/htmlparser/text.js +55 -0
  344. data/public/bcms/ckeditor/core/imagecacher.js +58 -0
  345. data/public/bcms/ckeditor/core/lang.js +147 -0
  346. data/public/bcms/ckeditor/core/loader.js +238 -0
  347. data/public/bcms/ckeditor/core/plugindefinition.js +66 -0
  348. data/public/bcms/ckeditor/core/plugins.js +82 -0
  349. data/public/bcms/ckeditor/core/resourcemanager.js +233 -0
  350. data/public/bcms/ckeditor/core/scriptloader.js +194 -0
  351. data/public/bcms/ckeditor/core/skins.js +185 -0
  352. data/public/bcms/ckeditor/core/test.js +184 -0
  353. data/public/bcms/ckeditor/core/themes.js +18 -0
  354. data/public/bcms/ckeditor/core/tools.js +531 -0
  355. data/public/bcms/ckeditor/core/ui.js +106 -0
  356. data/public/bcms/ckeditor/core/xml.js +165 -0
  357. data/public/bcms/ckeditor/editor.js +51 -0
  358. data/public/bcms/ckeditor/lang/_languages.js +82 -0
  359. data/public/bcms/ckeditor/lang/_translationstatus.txt +59 -0
  360. data/public/bcms/ckeditor/lang/af.js +674 -0
  361. data/public/bcms/ckeditor/lang/ar.js +674 -0
  362. data/public/bcms/ckeditor/lang/bg.js +674 -0
  363. data/public/bcms/ckeditor/lang/bn.js +674 -0
  364. data/public/bcms/ckeditor/lang/bs.js +674 -0
  365. data/public/bcms/ckeditor/lang/ca.js +674 -0
  366. data/public/bcms/ckeditor/lang/cs.js +674 -0
  367. data/public/bcms/ckeditor/lang/da.js +674 -0
  368. data/public/bcms/ckeditor/lang/de.js +674 -0
  369. data/public/bcms/ckeditor/lang/el.js +674 -0
  370. data/public/bcms/ckeditor/lang/en-au.js +674 -0
  371. data/public/bcms/ckeditor/lang/en-ca.js +674 -0
  372. data/public/bcms/ckeditor/lang/en-uk.js +674 -0
  373. data/public/bcms/ckeditor/lang/en.js +674 -0
  374. data/public/bcms/ckeditor/lang/eo.js +674 -0
  375. data/public/bcms/ckeditor/lang/es.js +674 -0
  376. data/public/bcms/ckeditor/lang/et.js +674 -0
  377. data/public/bcms/ckeditor/lang/eu.js +674 -0
  378. data/public/bcms/ckeditor/lang/fa.js +674 -0
  379. data/public/bcms/ckeditor/lang/fi.js +674 -0
  380. data/public/bcms/ckeditor/lang/fo.js +674 -0
  381. data/public/bcms/ckeditor/lang/fr-ca.js +674 -0
  382. data/public/bcms/ckeditor/lang/fr.js +674 -0
  383. data/public/bcms/ckeditor/lang/gl.js +674 -0
  384. data/public/bcms/ckeditor/lang/gu.js +674 -0
  385. data/public/bcms/ckeditor/lang/he.js +674 -0
  386. data/public/bcms/ckeditor/lang/hi.js +674 -0
  387. data/public/bcms/ckeditor/lang/hr.js +674 -0
  388. data/public/bcms/ckeditor/lang/hu.js +674 -0
  389. data/public/bcms/ckeditor/lang/is.js +674 -0
  390. data/public/bcms/ckeditor/lang/it.js +674 -0
  391. data/public/bcms/ckeditor/lang/ja.js +674 -0
  392. data/public/bcms/ckeditor/lang/km.js +674 -0
  393. data/public/bcms/ckeditor/lang/ko.js +674 -0
  394. data/public/bcms/ckeditor/lang/lt.js +674 -0
  395. data/public/bcms/ckeditor/lang/lv.js +674 -0
  396. data/public/bcms/ckeditor/lang/mn.js +674 -0
  397. data/public/bcms/ckeditor/lang/ms.js +674 -0
  398. data/public/bcms/ckeditor/lang/nb.js +674 -0
  399. data/public/bcms/ckeditor/lang/nl.js +674 -0
  400. data/public/bcms/ckeditor/lang/no.js +674 -0
  401. data/public/bcms/ckeditor/lang/pl.js +674 -0
  402. data/public/bcms/ckeditor/lang/pt-br.js +674 -0
  403. data/public/bcms/ckeditor/lang/pt.js +674 -0
  404. data/public/bcms/ckeditor/lang/ro.js +674 -0
  405. data/public/bcms/ckeditor/lang/ru.js +674 -0
  406. data/public/bcms/ckeditor/lang/sk.js +674 -0
  407. data/public/bcms/ckeditor/lang/sl.js +674 -0
  408. data/public/bcms/ckeditor/lang/sr-latn.js +674 -0
  409. data/public/bcms/ckeditor/lang/sr.js +674 -0
  410. data/public/bcms/ckeditor/lang/sv.js +674 -0
  411. data/public/bcms/ckeditor/lang/th.js +674 -0
  412. data/public/bcms/ckeditor/lang/tr.js +674 -0
  413. data/public/bcms/ckeditor/lang/uk.js +674 -0
  414. data/public/bcms/ckeditor/lang/vi.js +674 -0
  415. data/public/bcms/ckeditor/lang/zh-cn.js +674 -0
  416. data/public/bcms/ckeditor/lang/zh.js +674 -0
  417. data/public/bcms/ckeditor/plugins/about/dialogs/about.js +73 -0
  418. data/public/bcms/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  419. data/public/bcms/ckeditor/plugins/about/plugin.js +22 -0
  420. data/public/bcms/ckeditor/plugins/basicstyles/plugin.js +50 -0
  421. data/public/bcms/ckeditor/plugins/blockquote/plugin.js +301 -0
  422. data/public/bcms/ckeditor/plugins/button/plugin.js +264 -0
  423. data/public/bcms/ckeditor/plugins/clipboard/dialogs/paste.js +167 -0
  424. data/public/bcms/ckeditor/plugins/clipboard/plugin.js +208 -0
  425. data/public/bcms/ckeditor/plugins/colorbutton/plugin.js +202 -0
  426. data/public/bcms/ckeditor/plugins/contextmenu/plugin.js +178 -0
  427. data/public/bcms/ckeditor/plugins/dialog/dialogDefinition.js +315 -0
  428. data/public/bcms/ckeditor/plugins/dialog/plugin.js +2742 -0
  429. data/public/bcms/ckeditor/plugins/dialogui/plugin.js +1319 -0
  430. data/public/bcms/ckeditor/plugins/domiterator/plugin.js +354 -0
  431. data/public/bcms/ckeditor/plugins/editingblock/plugin.js +236 -0
  432. data/public/bcms/ckeditor/plugins/elementspath/plugin.js +182 -0
  433. data/public/bcms/ckeditor/plugins/enterkey/plugin.js +324 -0
  434. data/public/bcms/ckeditor/plugins/entities/plugin.js +200 -0
  435. data/public/bcms/ckeditor/plugins/fakeobjects/plugin.js +111 -0
  436. data/public/bcms/ckeditor/plugins/filebrowser/plugin.js +383 -0
  437. data/public/bcms/ckeditor/plugins/find/dialogs/find.js +843 -0
  438. data/public/bcms/ckeditor/plugins/find/plugin.js +46 -0
  439. data/public/bcms/ckeditor/plugins/flash/dialogs/flash.js +682 -0
  440. data/public/bcms/ckeditor/plugins/flash/images/placeholder.png +0 -0
  441. data/public/bcms/ckeditor/plugins/flash/plugin.js +165 -0
  442. data/public/bcms/ckeditor/plugins/floatpanel/plugin.js +325 -0
  443. data/public/bcms/ckeditor/plugins/font/plugin.js +227 -0
  444. data/public/bcms/ckeditor/plugins/format/plugin.js +191 -0
  445. data/public/bcms/ckeditor/plugins/forms/dialogs/button.js +135 -0
  446. data/public/bcms/ckeditor/plugins/forms/dialogs/checkbox.js +138 -0
  447. data/public/bcms/ckeditor/plugins/forms/dialogs/form.js +177 -0
  448. data/public/bcms/ckeditor/plugins/forms/dialogs/hiddenfield.js +91 -0
  449. data/public/bcms/ckeditor/plugins/forms/dialogs/radio.js +135 -0
  450. data/public/bcms/ckeditor/plugins/forms/dialogs/select.js +541 -0
  451. data/public/bcms/ckeditor/plugins/forms/dialogs/textarea.js +114 -0
  452. data/public/bcms/ckeditor/plugins/forms/dialogs/textfield.js +193 -0
  453. data/public/bcms/ckeditor/plugins/forms/plugin.js +193 -0
  454. data/public/bcms/ckeditor/plugins/horizontalrule/plugin.js +35 -0
  455. data/public/bcms/ckeditor/plugins/htmldataprocessor/plugin.js +373 -0
  456. data/public/bcms/ckeditor/plugins/htmlwriter/plugin.js +289 -0
  457. data/public/bcms/ckeditor/plugins/iframedialog/plugin.js +136 -0
  458. data/public/bcms/ckeditor/plugins/image/dialogs/image.js +1225 -0
  459. data/public/bcms/ckeditor/plugins/image/plugin.js +64 -0
  460. data/public/bcms/ckeditor/plugins/indent/plugin.js +323 -0
  461. data/public/bcms/ckeditor/plugins/justify/plugin.js +164 -0
  462. data/public/bcms/ckeditor/plugins/keystrokes/plugin.js +217 -0
  463. data/public/bcms/ckeditor/plugins/link/dialogs/anchor.js +98 -0
  464. data/public/bcms/ckeditor/plugins/link/dialogs/link.js +1217 -0
  465. data/public/{fckeditor/editor → bcms/ckeditor/plugins/link}/images/anchor.gif +0 -0
  466. data/public/bcms/ckeditor/plugins/link/plugin.js +188 -0
  467. data/public/bcms/ckeditor/plugins/list/plugin.js +570 -0
  468. data/public/bcms/ckeditor/plugins/listblock/plugin.js +231 -0
  469. data/public/bcms/ckeditor/plugins/maximize/plugin.js +267 -0
  470. data/public/bcms/ckeditor/plugins/menu/plugin.js +377 -0
  471. data/public/bcms/ckeditor/plugins/menubutton/plugin.js +93 -0
  472. data/public/bcms/ckeditor/plugins/newpage/plugin.js +65 -0
  473. data/public/{fckeditor/editor/css/images/fck_pagebreak.gif → bcms/ckeditor/plugins/pagebreak/images/pagebreak.gif} +0 -0
  474. data/public/bcms/ckeditor/plugins/pagebreak/plugin.js +96 -0
  475. data/public/bcms/ckeditor/plugins/panel/plugin.js +330 -0
  476. data/public/bcms/ckeditor/plugins/panelbutton/plugin.js +140 -0
  477. data/public/bcms/ckeditor/plugins/pastefromword/dialogs/pastefromword.js +307 -0
  478. data/public/bcms/ckeditor/plugins/pastefromword/plugin.js +54 -0
  479. data/public/bcms/ckeditor/plugins/pastetext/dialogs/pastetext.js +65 -0
  480. data/public/bcms/ckeditor/plugins/pastetext/plugin.js +142 -0
  481. data/public/bcms/ckeditor/plugins/popup/plugin.js +62 -0
  482. data/public/bcms/ckeditor/plugins/preview/plugin.js +97 -0
  483. data/public/bcms/ckeditor/plugins/print/plugin.js +41 -0
  484. data/public/bcms/ckeditor/plugins/removeformat/plugin.js +132 -0
  485. data/public/bcms/ckeditor/plugins/resize/plugin.js +115 -0
  486. data/public/bcms/ckeditor/plugins/richcombo/plugin.js +357 -0
  487. data/public/bcms/ckeditor/plugins/save/plugin.js +55 -0
  488. data/public/bcms/ckeditor/plugins/scayt/dialogs/options.js +494 -0
  489. data/public/bcms/ckeditor/plugins/scayt/dialogs/toolbar.css +71 -0
  490. data/public/bcms/ckeditor/plugins/scayt/plugin.js +511 -0
  491. data/public/bcms/ckeditor/plugins/selection/plugin.js +1072 -0
  492. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_address.png +0 -0
  493. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_blockquote.png +0 -0
  494. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_div.png +0 -0
  495. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h1.png +0 -0
  496. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h2.png +0 -0
  497. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h3.png +0 -0
  498. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h4.png +0 -0
  499. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h5.png +0 -0
  500. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h6.png +0 -0
  501. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_p.png +0 -0
  502. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_pre.png +0 -0
  503. data/public/bcms/ckeditor/plugins/showblocks/plugin.js +153 -0
  504. data/public/bcms/ckeditor/plugins/smiley/dialogs/smiley.js +219 -0
  505. data/public/bcms/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  506. data/public/bcms/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  507. data/public/bcms/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  508. data/public/bcms/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  509. data/public/bcms/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  510. data/public/bcms/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  511. data/public/bcms/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  512. data/public/bcms/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  513. data/public/bcms/ckeditor/plugins/smiley/images/heart.gif +0 -0
  514. data/public/bcms/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  515. data/public/bcms/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  516. data/public/bcms/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  517. data/public/bcms/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  518. data/public/bcms/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  519. data/public/bcms/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  520. data/public/bcms/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  521. data/public/bcms/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  522. data/public/bcms/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  523. data/public/bcms/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  524. data/public/bcms/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  525. data/public/bcms/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  526. data/public/bcms/ckeditor/plugins/smiley/plugin.js +74 -0
  527. data/public/bcms/ckeditor/plugins/sourcearea/plugin.js +185 -0
  528. data/public/bcms/ckeditor/plugins/specialchar/dialogs/specialchar.js +362 -0
  529. data/public/bcms/ckeditor/plugins/specialchar/plugin.js +29 -0
  530. data/public/bcms/ckeditor/plugins/styles/plugin.js +1242 -0
  531. data/public/bcms/ckeditor/plugins/stylescombo/plugin.js +295 -0
  532. data/public/bcms/ckeditor/plugins/stylescombo/styles/default.js +85 -0
  533. data/public/bcms/ckeditor/plugins/tab/plugin.js +266 -0
  534. data/public/bcms/ckeditor/plugins/table/dialogs/table.js +550 -0
  535. data/public/bcms/ckeditor/plugins/table/plugin.js +70 -0
  536. data/public/bcms/ckeditor/plugins/tabletools/dialogs/tableCell.js +328 -0
  537. data/public/bcms/ckeditor/plugins/tabletools/plugin.js +701 -0
  538. data/public/bcms/ckeditor/plugins/templates/dialogs/templates.js +170 -0
  539. data/public/bcms/ckeditor/plugins/templates/plugin.js +99 -0
  540. data/public/bcms/ckeditor/plugins/templates/templates/default.js +94 -0
  541. data/public/{fckeditor/editor/dialog/fck_template → bcms/ckeditor/plugins/templates/templates}/images/template1.gif +0 -0
  542. data/public/{fckeditor/editor/dialog/fck_template → bcms/ckeditor/plugins/templates/templates}/images/template2.gif +0 -0
  543. data/public/{fckeditor/editor/dialog/fck_template → bcms/ckeditor/plugins/templates/templates}/images/template3.gif +0 -0
  544. data/public/bcms/ckeditor/plugins/toolbar/plugin.js +412 -0
  545. data/public/bcms/ckeditor/plugins/uicolor/dialogs/uicolor.js +203 -0
  546. data/public/bcms/ckeditor/plugins/uicolor/lang/en.js +15 -0
  547. data/public/bcms/ckeditor/plugins/uicolor/plugin.js +35 -0
  548. data/public/bcms/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  549. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  550. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  551. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  552. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  553. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/yui.css +15 -0
  554. data/public/bcms/ckeditor/plugins/uicolor/yui/yui.js +71 -0
  555. data/public/bcms/ckeditor/plugins/undo/plugin.js +490 -0
  556. data/public/bcms/ckeditor/plugins/wsc/dialogs/ciframe.html +49 -0
  557. data/public/bcms/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  558. data/public/bcms/ckeditor/plugins/wsc/dialogs/wsc.css +83 -0
  559. data/public/bcms/ckeditor/plugins/wsc/dialogs/wsc.js +169 -0
  560. data/public/bcms/ckeditor/plugins/wsc/plugin.js +32 -0
  561. data/public/bcms/ckeditor/plugins/wysiwygarea/plugin.js +636 -0
  562. data/public/bcms/ckeditor/skins/kama/dialog.css +742 -0
  563. data/public/bcms/ckeditor/skins/kama/editor.css +21 -0
  564. data/public/bcms/ckeditor/skins/kama/elementspath.css +68 -0
  565. data/public/bcms/ckeditor/skins/kama/icons.css +309 -0
  566. data/public/bcms/ckeditor/skins/kama/icons.png +0 -0
  567. data/public/{fckeditor/editor/skins/default/images/dialog.sides.gif → bcms/ckeditor/skins/kama/images/dialog_sides.gif} +0 -0
  568. data/public/{fckeditor/editor/skins/default/images/dialog.sides.png → bcms/ckeditor/skins/kama/images/dialog_sides.png} +0 -0
  569. data/public/{fckeditor/editor/skins/default/images/dialog.sides.rtl.png → bcms/ckeditor/skins/kama/images/dialog_sides_rtl.png} +0 -0
  570. data/public/bcms/ckeditor/skins/kama/images/mini.gif +0 -0
  571. data/public/bcms/ckeditor/skins/kama/images/noimage.png +0 -0
  572. data/public/bcms/ckeditor/skins/kama/images/sprites.png +0 -0
  573. data/public/bcms/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  574. data/public/{fckeditor/editor/skins/default/images/toolbar.start.gif → bcms/ckeditor/skins/kama/images/toolbar_start.gif} +0 -0
  575. data/public/bcms/ckeditor/skins/kama/mainui.css +139 -0
  576. data/public/bcms/ckeditor/skins/kama/menu.css +179 -0
  577. data/public/bcms/ckeditor/skins/kama/panel.css +203 -0
  578. data/public/bcms/ckeditor/skins/kama/presets.css +49 -0
  579. data/public/bcms/ckeditor/skins/kama/reset.css +78 -0
  580. data/public/bcms/ckeditor/skins/kama/richcombo.css +260 -0
  581. data/public/bcms/ckeditor/skins/kama/skin.js +291 -0
  582. data/public/bcms/ckeditor/skins/kama/templates.css +71 -0
  583. data/public/bcms/ckeditor/skins/kama/toolbar.css +384 -0
  584. data/public/bcms/ckeditor/skins/office2003/dialog.css +643 -0
  585. data/public/bcms/ckeditor/skins/office2003/editor.css +21 -0
  586. data/public/bcms/ckeditor/skins/office2003/elementspath.css +68 -0
  587. data/public/bcms/ckeditor/skins/office2003/icons.css +309 -0
  588. data/public/bcms/ckeditor/skins/office2003/icons.png +0 -0
  589. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  590. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  591. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  592. data/public/bcms/ckeditor/skins/office2003/images/mini.gif +0 -0
  593. data/public/bcms/ckeditor/skins/office2003/images/noimage.png +0 -0
  594. data/public/bcms/ckeditor/skins/office2003/images/sprites.png +0 -0
  595. data/public/bcms/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  596. data/public/bcms/ckeditor/skins/office2003/mainui.css +97 -0
  597. data/public/bcms/ckeditor/skins/office2003/menu.css +175 -0
  598. data/public/bcms/ckeditor/skins/office2003/panel.css +198 -0
  599. data/public/bcms/ckeditor/skins/office2003/presets.css +49 -0
  600. data/public/bcms/ckeditor/skins/office2003/reset.css +78 -0
  601. data/public/bcms/ckeditor/skins/office2003/richcombo.css +279 -0
  602. data/public/bcms/ckeditor/skins/office2003/skin.js +77 -0
  603. data/public/bcms/ckeditor/skins/office2003/templates.css +71 -0
  604. data/public/bcms/ckeditor/skins/office2003/toolbar.css +442 -0
  605. data/public/bcms/ckeditor/skins/v2/dialog.css +653 -0
  606. data/public/bcms/ckeditor/skins/v2/editor.css +21 -0
  607. data/public/bcms/ckeditor/skins/v2/elementspath.css +68 -0
  608. data/public/bcms/ckeditor/skins/v2/icons.css +309 -0
  609. data/public/bcms/ckeditor/skins/v2/icons.png +0 -0
  610. data/public/bcms/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  611. data/public/bcms/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  612. data/public/bcms/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  613. data/public/bcms/ckeditor/skins/v2/images/mini.gif +0 -0
  614. data/public/bcms/ckeditor/skins/v2/images/noimage.png +0 -0
  615. data/public/bcms/ckeditor/skins/v2/images/sprites.png +0 -0
  616. data/public/bcms/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  617. data/public/{fckeditor/editor/skins/silver/images/toolbar.start.gif → bcms/ckeditor/skins/v2/images/toolbar_start.gif} +0 -0
  618. data/public/bcms/ckeditor/skins/v2/mainui.css +112 -0
  619. data/public/bcms/ckeditor/skins/v2/menu.css +178 -0
  620. data/public/bcms/ckeditor/skins/v2/panel.css +198 -0
  621. data/public/bcms/ckeditor/skins/v2/presets.css +50 -0
  622. data/public/bcms/ckeditor/skins/v2/reset.css +78 -0
  623. data/public/bcms/ckeditor/skins/v2/richcombo.css +275 -0
  624. data/public/bcms/ckeditor/skins/v2/skin.js +73 -0
  625. data/public/bcms/ckeditor/skins/v2/templates.css +71 -0
  626. data/public/bcms/ckeditor/skins/v2/toolbar.css +399 -0
  627. data/public/bcms/ckeditor/tests/_assets/sample.css +4 -0
  628. data/public/bcms/ckeditor/tests/_assets/sample.js +1 -0
  629. data/public/bcms/ckeditor/tests/_assets/sample.txt +1 -0
  630. data/public/bcms/ckeditor/tests/_assets/sample.xml +5 -0
  631. data/public/bcms/ckeditor/tests/_assets/sample_xml.txt +5 -0
  632. data/public/bcms/ckeditor/tests/core/_editor/custom_config_1.js +10 -0
  633. data/public/bcms/ckeditor/tests/core/_editor/custom_config_2.js +9 -0
  634. data/public/bcms/ckeditor/tests/core/ajax.html +163 -0
  635. data/public/bcms/ckeditor/tests/core/bootstrap.html +66 -0
  636. data/public/bcms/ckeditor/tests/core/ckeditor.html +160 -0
  637. data/public/bcms/ckeditor/tests/core/dom/document.html +126 -0
  638. data/public/bcms/ckeditor/tests/core/dom/documentfragment.html +292 -0
  639. data/public/bcms/ckeditor/tests/core/dom/element.html +637 -0
  640. data/public/bcms/ckeditor/tests/core/dom/node.html +164 -0
  641. data/public/bcms/ckeditor/tests/core/dom/range.html +2411 -0
  642. data/public/bcms/ckeditor/tests/core/dom/text.html +128 -0
  643. data/public/bcms/ckeditor/tests/core/dom/walker.html +340 -0
  644. data/public/bcms/ckeditor/tests/core/dom/window.html +53 -0
  645. data/public/bcms/ckeditor/tests/core/editor.html +123 -0
  646. data/public/bcms/ckeditor/tests/core/env.html +52 -0
  647. data/public/bcms/ckeditor/tests/core/event.html +487 -0
  648. data/public/bcms/ckeditor/tests/core/htmlparser/fragment.html +188 -0
  649. data/public/bcms/ckeditor/tests/core/htmlparser/htmlparser.html +91 -0
  650. data/public/bcms/ckeditor/tests/core/plugins.html +45 -0
  651. data/public/bcms/ckeditor/tests/core/plugins/myplugins/sample/my_plugin.js +3 -0
  652. data/public/bcms/ckeditor/tests/core/scriptloader.html +52 -0
  653. data/public/bcms/ckeditor/tests/core/tools.html +170 -0
  654. data/public/bcms/ckeditor/tests/core/xml.html +150 -0
  655. data/public/bcms/ckeditor/tests/plugins/domiterator/domiterator.html +236 -0
  656. data/public/bcms/ckeditor/tests/plugins/htmldataprocessor/htmldataprocessor.html +386 -0
  657. data/public/bcms/ckeditor/tests/plugins/link/link.html +123 -0
  658. data/public/bcms/ckeditor/tests/plugins/list/list.html +217 -0
  659. data/public/bcms/ckeditor/tests/plugins/selection/selection.html +49 -0
  660. data/public/bcms/ckeditor/tests/plugins/styles/styles.html +596 -0
  661. data/public/bcms/ckeditor/tests/test.css +81 -0
  662. data/public/bcms/ckeditor/tests/test.js +93 -0
  663. data/public/bcms/ckeditor/tests/testall.html +114 -0
  664. data/public/bcms/ckeditor/tests/yuitest.js +75 -0
  665. data/public/bcms/ckeditor/themes/default/theme.js +232 -0
  666. data/public/stylesheets/cms/application.css +2 -2
  667. data/public/stylesheets/cms/form_layout.css +2 -6
  668. data/rails_generators/content_block/templates/migration.rb +1 -1
  669. data/rails_generators/portlet/USAGE +3 -1
  670. data/rails_generators/portlet/portlet_generator.rb +4 -0
  671. data/rails_generators/portlet/templates/_form.html.erb +1 -2
  672. data/rails_generators/portlet/templates/portlet.rb +4 -1
  673. data/rails_generators/portlet/templates/portlet_helper.rb +5 -0
  674. data/rails_generators/template/USAGE +10 -0
  675. data/rails_generators/template/template_generator.rb +18 -0
  676. data/rails_generators/template/templates/template.erb +3 -0
  677. data/templates/blank.rb +11 -1
  678. data/templates/demo.rb +11 -1
  679. data/templates/module.rb +15 -4
  680. data/test/functional/cms/dashboard_controller_test.rb +1 -2
  681. data/test/functional/tests/pretend_controller_test.rb +54 -0
  682. data/test/integration/cms/ckeditor_test.rb +27 -0
  683. data/test/integration/cms/password_management_test.rb +56 -0
  684. data/test/test_helper.rb +14 -0
  685. data/test/unit/helpers/form_builder_test.rb +21 -2
  686. data/test/unit/helpers/menu_helper_test.rb +164 -142
  687. data/test/unit/helpers/page_helper_test.rb +11 -3
  688. data/test/unit/lib/acts_as_content_page_test.rb +72 -0
  689. data/test/unit/lib/cms/authentication/controller_test.rb +20 -0
  690. data/test/unit/lib/cms_domain_support_test.rb +43 -0
  691. data/test/unit/lib/command_line_test.rb +70 -0
  692. data/test/unit/lib/content_rendering_support_test.rb +40 -0
  693. data/test/unit/models/content_type_test.rb +19 -7
  694. data/test/unit/models/page_template_test.rb +4 -1
  695. data/test/unit/models/portlet_test.rb +49 -1
  696. data/test/unit/models/sections_test.rb +41 -2
  697. data/test/unit/models/task_test.rb +37 -22
  698. data/test/unit/models/user_test.rb +158 -55
  699. metadata +490 -378
  700. data/doc/guides/html/developer_guide.html +0 -308
  701. data/public/fckeditor/editor/css/behaviors/disablehandles.htc +0 -15
  702. data/public/fckeditor/editor/css/behaviors/showtableborders.htc +0 -36
  703. data/public/fckeditor/editor/css/fck_editorarea.css +0 -110
  704. data/public/fckeditor/editor/css/fck_internal.css +0 -199
  705. data/public/fckeditor/editor/css/fck_showtableborders_gecko.css +0 -49
  706. data/public/fckeditor/editor/css/images/fck_anchor.gif +0 -0
  707. data/public/fckeditor/editor/css/images/fck_flashlogo.gif +0 -0
  708. data/public/fckeditor/editor/css/images/fck_hiddenfield.gif +0 -0
  709. data/public/fckeditor/editor/css/images/fck_plugin.gif +0 -0
  710. data/public/fckeditor/editor/dialog/common/fck_dialog_common.css +0 -85
  711. data/public/fckeditor/editor/dialog/common/fck_dialog_common.js +0 -311
  712. data/public/fckeditor/editor/dialog/common/images/locked.gif +0 -0
  713. data/public/fckeditor/editor/dialog/common/images/reset.gif +0 -0
  714. data/public/fckeditor/editor/dialog/common/images/unlocked.gif +0 -0
  715. data/public/fckeditor/editor/dialog/fck_about.html +0 -161
  716. data/public/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif +0 -0
  717. data/public/fckeditor/editor/dialog/fck_about/logo_fredck.gif +0 -0
  718. data/public/fckeditor/editor/dialog/fck_about/sponsors/spellchecker_net.gif +0 -0
  719. data/public/fckeditor/editor/dialog/fck_anchor.html +0 -220
  720. data/public/fckeditor/editor/dialog/fck_button.html +0 -104
  721. data/public/fckeditor/editor/dialog/fck_checkbox.html +0 -104
  722. data/public/fckeditor/editor/dialog/fck_colorselector.html +0 -172
  723. data/public/fckeditor/editor/dialog/fck_div.html +0 -364
  724. data/public/fckeditor/editor/dialog/fck_docprops.html +0 -600
  725. data/public/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html +0 -113
  726. data/public/fckeditor/editor/dialog/fck_flash.html +0 -152
  727. data/public/fckeditor/editor/dialog/fck_flash/fck_flash.js +0 -300
  728. data/public/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html +0 -50
  729. data/public/fckeditor/editor/dialog/fck_form.html +0 -109
  730. data/public/fckeditor/editor/dialog/fck_hiddenfield.html +0 -115
  731. data/public/fckeditor/editor/dialog/fck_image.html +0 -258
  732. data/public/fckeditor/editor/dialog/fck_image/fck_image.js +0 -512
  733. data/public/fckeditor/editor/dialog/fck_image/fck_image_preview.html +0 -72
  734. data/public/fckeditor/editor/dialog/fck_link.html +0 -295
  735. data/public/fckeditor/editor/dialog/fck_link/fck_link.js +0 -893
  736. data/public/fckeditor/editor/dialog/fck_listprop.html +0 -120
  737. data/public/fckeditor/editor/dialog/fck_paste.html +0 -346
  738. data/public/fckeditor/editor/dialog/fck_radiobutton.html +0 -104
  739. data/public/fckeditor/editor/dialog/fck_replace.html +0 -648
  740. data/public/fckeditor/editor/dialog/fck_select.html +0 -180
  741. data/public/fckeditor/editor/dialog/fck_select/fck_select.js +0 -194
  742. data/public/fckeditor/editor/dialog/fck_smiley.html +0 -111
  743. data/public/fckeditor/editor/dialog/fck_source.html +0 -68
  744. data/public/fckeditor/editor/dialog/fck_specialchar.html +0 -121
  745. data/public/fckeditor/editor/dialog/fck_spellerpages.html +0 -70
  746. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html +0 -0
  747. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js +0 -87
  748. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html +0 -153
  749. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm +0 -148
  750. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php +0 -199
  751. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl +0 -181
  752. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js +0 -461
  753. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html +0 -71
  754. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css +0 -49
  755. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js +0 -272
  756. data/public/fckeditor/editor/dialog/fck_table.html +0 -298
  757. data/public/fckeditor/editor/dialog/fck_tablecell.html +0 -257
  758. data/public/fckeditor/editor/dialog/fck_template.html +0 -242
  759. data/public/fckeditor/editor/dialog/fck_textarea.html +0 -94
  760. data/public/fckeditor/editor/dialog/fck_textfield.html +0 -136
  761. data/public/fckeditor/editor/dtd/fck_dtd_test.html +0 -41
  762. data/public/fckeditor/editor/dtd/fck_xhtml10strict.js +0 -116
  763. data/public/fckeditor/editor/dtd/fck_xhtml10transitional.js +0 -140
  764. data/public/fckeditor/editor/fckdebug.html +0 -153
  765. data/public/fckeditor/editor/fckdialog.html +0 -812
  766. data/public/fckeditor/editor/fckeditor.html +0 -317
  767. data/public/fckeditor/editor/fckeditor.original.html +0 -424
  768. data/public/fckeditor/editor/filemanager/browser/default/browser.css +0 -87
  769. data/public/fckeditor/editor/filemanager/browser/default/browser.html +0 -200
  770. data/public/fckeditor/editor/filemanager/browser/default/frmactualfolder.html +0 -95
  771. data/public/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html +0 -114
  772. data/public/fckeditor/editor/filemanager/browser/default/frmfolders.html +0 -198
  773. data/public/fckeditor/editor/filemanager/browser/default/frmresourceslist.html +0 -169
  774. data/public/fckeditor/editor/filemanager/browser/default/frmresourcetype.html +0 -68
  775. data/public/fckeditor/editor/filemanager/browser/default/frmupload.html +0 -115
  776. data/public/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif +0 -0
  777. data/public/fckeditor/editor/filemanager/browser/default/images/Folder.gif +0 -0
  778. data/public/fckeditor/editor/filemanager/browser/default/images/Folder32.gif +0 -0
  779. data/public/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif +0 -0
  780. data/public/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif +0 -0
  781. data/public/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif +0 -0
  782. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif +0 -0
  783. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif +0 -0
  784. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif +0 -0
  785. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif +0 -0
  786. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif +0 -0
  787. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif +0 -0
  788. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif +0 -0
  789. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif +0 -0
  790. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif +0 -0
  791. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif +0 -0
  792. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif +0 -0
  793. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif +0 -0
  794. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif +0 -0
  795. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif +0 -0
  796. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif +0 -0
  797. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif +0 -0
  798. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif +0 -0
  799. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif +0 -0
  800. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif +0 -0
  801. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif +0 -0
  802. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif +0 -0
  803. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif +0 -0
  804. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif +0 -0
  805. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif +0 -0
  806. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif +0 -0
  807. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif +0 -0
  808. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif +0 -0
  809. data/public/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif +0 -0
  810. data/public/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif +0 -0
  811. data/public/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif +0 -0
  812. data/public/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif +0 -0
  813. data/public/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif +0 -0
  814. data/public/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif +0 -0
  815. data/public/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif +0 -0
  816. data/public/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif +0 -0
  817. data/public/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif +0 -0
  818. data/public/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif +0 -0
  819. data/public/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif +0 -0
  820. data/public/fckeditor/editor/filemanager/browser/default/images/icons/html.gif +0 -0
  821. data/public/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif +0 -0
  822. data/public/fckeditor/editor/filemanager/browser/default/images/icons/js.gif +0 -0
  823. data/public/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif +0 -0
  824. data/public/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif +0 -0
  825. data/public/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif +0 -0
  826. data/public/fckeditor/editor/filemanager/browser/default/images/icons/png.gif +0 -0
  827. data/public/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif +0 -0
  828. data/public/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif +0 -0
  829. data/public/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif +0 -0
  830. data/public/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif +0 -0
  831. data/public/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif +0 -0
  832. data/public/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif +0 -0
  833. data/public/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif +0 -0
  834. data/public/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif +0 -0
  835. data/public/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif +0 -0
  836. data/public/fckeditor/editor/filemanager/browser/default/images/spacer.gif +0 -0
  837. data/public/fckeditor/editor/filemanager/browser/default/js/common.js +0 -88
  838. data/public/fckeditor/editor/filemanager/browser/default/js/fckxml.js +0 -147
  839. data/public/fckeditor/editor/images/arrow_ltr.gif +0 -0
  840. data/public/fckeditor/editor/images/arrow_rtl.gif +0 -0
  841. data/public/fckeditor/editor/images/smiley/msn/angel_smile.gif +0 -0
  842. data/public/fckeditor/editor/images/smiley/msn/angry_smile.gif +0 -0
  843. data/public/fckeditor/editor/images/smiley/msn/broken_heart.gif +0 -0
  844. data/public/fckeditor/editor/images/smiley/msn/cake.gif +0 -0
  845. data/public/fckeditor/editor/images/smiley/msn/confused_smile.gif +0 -0
  846. data/public/fckeditor/editor/images/smiley/msn/cry_smile.gif +0 -0
  847. data/public/fckeditor/editor/images/smiley/msn/devil_smile.gif +0 -0
  848. data/public/fckeditor/editor/images/smiley/msn/embaressed_smile.gif +0 -0
  849. data/public/fckeditor/editor/images/smiley/msn/envelope.gif +0 -0
  850. data/public/fckeditor/editor/images/smiley/msn/heart.gif +0 -0
  851. data/public/fckeditor/editor/images/smiley/msn/kiss.gif +0 -0
  852. data/public/fckeditor/editor/images/smiley/msn/lightbulb.gif +0 -0
  853. data/public/fckeditor/editor/images/smiley/msn/omg_smile.gif +0 -0
  854. data/public/fckeditor/editor/images/smiley/msn/regular_smile.gif +0 -0
  855. data/public/fckeditor/editor/images/smiley/msn/sad_smile.gif +0 -0
  856. data/public/fckeditor/editor/images/smiley/msn/shades_smile.gif +0 -0
  857. data/public/fckeditor/editor/images/smiley/msn/teeth_smile.gif +0 -0
  858. data/public/fckeditor/editor/images/smiley/msn/thumbs_down.gif +0 -0
  859. data/public/fckeditor/editor/images/smiley/msn/thumbs_up.gif +0 -0
  860. data/public/fckeditor/editor/images/smiley/msn/tounge_smile.gif +0 -0
  861. data/public/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif +0 -0
  862. data/public/fckeditor/editor/images/smiley/msn/wink_smile.gif +0 -0
  863. data/public/fckeditor/editor/images/spacer.gif +0 -0
  864. data/public/fckeditor/editor/js/fckadobeair.js +0 -176
  865. data/public/fckeditor/editor/js/fckeditorcode_gecko.js +0 -108
  866. data/public/fckeditor/editor/js/fckeditorcode_ie.js +0 -109
  867. data/public/fckeditor/editor/lang/_translationstatus.txt +0 -78
  868. data/public/fckeditor/editor/lang/af.js +0 -526
  869. data/public/fckeditor/editor/lang/ar.js +0 -526
  870. data/public/fckeditor/editor/lang/bg.js +0 -526
  871. data/public/fckeditor/editor/lang/bn.js +0 -526
  872. data/public/fckeditor/editor/lang/bs.js +0 -526
  873. data/public/fckeditor/editor/lang/ca.js +0 -526
  874. data/public/fckeditor/editor/lang/cs.js +0 -526
  875. data/public/fckeditor/editor/lang/da.js +0 -526
  876. data/public/fckeditor/editor/lang/de.js +0 -526
  877. data/public/fckeditor/editor/lang/el.js +0 -526
  878. data/public/fckeditor/editor/lang/en-au.js +0 -526
  879. data/public/fckeditor/editor/lang/en-ca.js +0 -526
  880. data/public/fckeditor/editor/lang/en-uk.js +0 -526
  881. data/public/fckeditor/editor/lang/en.js +0 -526
  882. data/public/fckeditor/editor/lang/eo.js +0 -526
  883. data/public/fckeditor/editor/lang/es.js +0 -526
  884. data/public/fckeditor/editor/lang/et.js +0 -526
  885. data/public/fckeditor/editor/lang/eu.js +0 -527
  886. data/public/fckeditor/editor/lang/fa.js +0 -526
  887. data/public/fckeditor/editor/lang/fi.js +0 -526
  888. data/public/fckeditor/editor/lang/fo.js +0 -526
  889. data/public/fckeditor/editor/lang/fr-ca.js +0 -526
  890. data/public/fckeditor/editor/lang/fr.js +0 -526
  891. data/public/fckeditor/editor/lang/gl.js +0 -526
  892. data/public/fckeditor/editor/lang/gu.js +0 -526
  893. data/public/fckeditor/editor/lang/he.js +0 -526
  894. data/public/fckeditor/editor/lang/hi.js +0 -526
  895. data/public/fckeditor/editor/lang/hr.js +0 -526
  896. data/public/fckeditor/editor/lang/hu.js +0 -526
  897. data/public/fckeditor/editor/lang/it.js +0 -526
  898. data/public/fckeditor/editor/lang/ja.js +0 -526
  899. data/public/fckeditor/editor/lang/km.js +0 -526
  900. data/public/fckeditor/editor/lang/ko.js +0 -526
  901. data/public/fckeditor/editor/lang/lt.js +0 -526
  902. data/public/fckeditor/editor/lang/lv.js +0 -526
  903. data/public/fckeditor/editor/lang/mn.js +0 -526
  904. data/public/fckeditor/editor/lang/ms.js +0 -526
  905. data/public/fckeditor/editor/lang/nb.js +0 -526
  906. data/public/fckeditor/editor/lang/nl.js +0 -526
  907. data/public/fckeditor/editor/lang/no.js +0 -526
  908. data/public/fckeditor/editor/lang/pl.js +0 -526
  909. data/public/fckeditor/editor/lang/pt-br.js +0 -526
  910. data/public/fckeditor/editor/lang/pt.js +0 -526
  911. data/public/fckeditor/editor/lang/ro.js +0 -526
  912. data/public/fckeditor/editor/lang/ru.js +0 -526
  913. data/public/fckeditor/editor/lang/sk.js +0 -526
  914. data/public/fckeditor/editor/lang/sl.js +0 -526
  915. data/public/fckeditor/editor/lang/sr-latn.js +0 -526
  916. data/public/fckeditor/editor/lang/sr.js +0 -526
  917. data/public/fckeditor/editor/lang/sv.js +0 -526
  918. data/public/fckeditor/editor/lang/th.js +0 -526
  919. data/public/fckeditor/editor/lang/tr.js +0 -526
  920. data/public/fckeditor/editor/lang/uk.js +0 -526
  921. data/public/fckeditor/editor/lang/vi.js +0 -526
  922. data/public/fckeditor/editor/lang/zh-cn.js +0 -526
  923. data/public/fckeditor/editor/lang/zh.js +0 -526
  924. data/public/fckeditor/editor/plugins/autogrow/fckplugin.js +0 -99
  925. data/public/fckeditor/editor/plugins/bbcode/_sample/sample.config.js +0 -26
  926. data/public/fckeditor/editor/plugins/bbcode/_sample/sample.html +0 -67
  927. data/public/fckeditor/editor/plugins/bbcode/fckplugin.js +0 -123
  928. data/public/fckeditor/editor/plugins/dragresizetable/fckplugin.js +0 -524
  929. data/public/fckeditor/editor/plugins/placeholder/fck_placeholder.html +0 -105
  930. data/public/fckeditor/editor/plugins/placeholder/fckplugin.js +0 -187
  931. data/public/fckeditor/editor/plugins/placeholder/lang/de.js +0 -27
  932. data/public/fckeditor/editor/plugins/placeholder/lang/en.js +0 -27
  933. data/public/fckeditor/editor/plugins/placeholder/lang/es.js +0 -27
  934. data/public/fckeditor/editor/plugins/placeholder/lang/fr.js +0 -27
  935. data/public/fckeditor/editor/plugins/placeholder/lang/it.js +0 -27
  936. data/public/fckeditor/editor/plugins/placeholder/lang/pl.js +0 -27
  937. data/public/fckeditor/editor/plugins/placeholder/placeholder.gif +0 -0
  938. data/public/fckeditor/editor/plugins/simplecommands/fckplugin.js +0 -29
  939. data/public/fckeditor/editor/plugins/tablecommands/fckplugin.js +0 -33
  940. data/public/fckeditor/editor/skins/_fckviewstrips.html +0 -121
  941. data/public/fckeditor/editor/skins/default/fck_dialog.css +0 -402
  942. data/public/fckeditor/editor/skins/default/fck_dialog_ie6.js +0 -110
  943. data/public/fckeditor/editor/skins/default/fck_editor.css +0 -464
  944. data/public/fckeditor/editor/skins/default/fck_strip.gif +0 -0
  945. data/public/fckeditor/editor/skins/default/images/sprites.gif +0 -0
  946. data/public/fckeditor/editor/skins/default/images/sprites.png +0 -0
  947. data/public/fckeditor/editor/skins/default/images/toolbar.arrowright.gif +0 -0
  948. data/public/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif +0 -0
  949. data/public/fckeditor/editor/skins/default/images/toolbar.collapse.gif +0 -0
  950. data/public/fckeditor/editor/skins/default/images/toolbar.end.gif +0 -0
  951. data/public/fckeditor/editor/skins/default/images/toolbar.expand.gif +0 -0
  952. data/public/fckeditor/editor/skins/default/images/toolbar.separator.gif +0 -0
  953. data/public/fckeditor/editor/skins/office2003/fck_dialog.css +0 -402
  954. data/public/fckeditor/editor/skins/office2003/fck_dialog_ie6.js +0 -110
  955. data/public/fckeditor/editor/skins/office2003/fck_editor.css +0 -476
  956. data/public/fckeditor/editor/skins/office2003/fck_strip.gif +0 -0
  957. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.gif +0 -0
  958. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.png +0 -0
  959. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.rtl.png +0 -0
  960. data/public/fckeditor/editor/skins/office2003/images/sprites.gif +0 -0
  961. data/public/fckeditor/editor/skins/office2003/images/sprites.png +0 -0
  962. data/public/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif +0 -0
  963. data/public/fckeditor/editor/skins/office2003/images/toolbar.bg.gif +0 -0
  964. data/public/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif +0 -0
  965. data/public/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif +0 -0
  966. data/public/fckeditor/editor/skins/office2003/images/toolbar.end.gif +0 -0
  967. data/public/fckeditor/editor/skins/office2003/images/toolbar.expand.gif +0 -0
  968. data/public/fckeditor/editor/skins/office2003/images/toolbar.separator.gif +0 -0
  969. data/public/fckeditor/editor/skins/office2003/images/toolbar.start.gif +0 -0
  970. data/public/fckeditor/editor/skins/silver/fck_dialog.css +0 -402
  971. data/public/fckeditor/editor/skins/silver/fck_dialog_ie6.js +0 -110
  972. data/public/fckeditor/editor/skins/silver/fck_editor.css +0 -473
  973. data/public/fckeditor/editor/skins/silver/fck_strip.gif +0 -0
  974. data/public/fckeditor/editor/skins/silver/images/dialog.sides.gif +0 -0
  975. data/public/fckeditor/editor/skins/silver/images/dialog.sides.png +0 -0
  976. data/public/fckeditor/editor/skins/silver/images/dialog.sides.rtl.png +0 -0
  977. data/public/fckeditor/editor/skins/silver/images/sprites.gif +0 -0
  978. data/public/fckeditor/editor/skins/silver/images/sprites.png +0 -0
  979. data/public/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif +0 -0
  980. data/public/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif +0 -0
  981. data/public/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif +0 -0
  982. data/public/fckeditor/editor/skins/silver/images/toolbar.collapse.gif +0 -0
  983. data/public/fckeditor/editor/skins/silver/images/toolbar.end.gif +0 -0
  984. data/public/fckeditor/editor/skins/silver/images/toolbar.expand.gif +0 -0
  985. data/public/fckeditor/editor/skins/silver/images/toolbar.separator.gif +0 -0
  986. data/public/fckeditor/fckconfig.js +0 -364
  987. data/public/fckeditor/fckdebug.html +0 -153
  988. data/public/fckeditor/fckdialog.html +0 -812
  989. data/public/fckeditor/fckeditor.html +0 -317
  990. data/public/fckeditor/fckeditor.js +0 -328
  991. data/public/fckeditor/fckeditor.original.html +0 -424
  992. data/public/fckeditor/fckpackager.xml +0 -262
  993. data/public/fckeditor/fckstyles.xml +0 -111
  994. data/public/fckeditor/fcktemplates.xml +0 -103
  995. 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>