browsercms 3.0.6 → 3.1.0

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