browsercmsi 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1493) hide show
  1. data/LICENSE.txt +165 -0
  2. data/README.markdown +56 -0
  3. data/app/controllers/application_controller.rb +14 -0
  4. data/app/controllers/cms/application_controller.rb +68 -0
  5. data/app/controllers/cms/attachments_controller.rb +11 -0
  6. data/app/controllers/cms/base_controller.rb +21 -0
  7. data/app/controllers/cms/cache_controller.rb +22 -0
  8. data/app/controllers/cms/categories_controller.rb +5 -0
  9. data/app/controllers/cms/category_types_controller.rb +5 -0
  10. data/app/controllers/cms/connectors_controller.rb +63 -0
  11. data/app/controllers/cms/content_block_controller.rb +289 -0
  12. data/app/controllers/cms/content_controller.rb +176 -0
  13. data/app/controllers/cms/content_types_controller.rb +7 -0
  14. data/app/controllers/cms/dashboard_controller.rb +10 -0
  15. data/app/controllers/cms/dynamic_views_controller.rb +65 -0
  16. data/app/controllers/cms/email_messages_controller.rb +14 -0
  17. data/app/controllers/cms/error_handling.rb +25 -0
  18. data/app/controllers/cms/file_blocks_controller.rb +2 -0
  19. data/app/controllers/cms/groups_controller.rb +26 -0
  20. data/app/controllers/cms/home_controller.rb +5 -0
  21. data/app/controllers/cms/html_blocks_controller.rb +2 -0
  22. data/app/controllers/cms/image_blocks_controller.rb +2 -0
  23. data/app/controllers/cms/links_controller.rb +66 -0
  24. data/app/controllers/cms/locales_controller.rb +12 -0
  25. data/app/controllers/cms/page_route_conditions_controller.rb +2 -0
  26. data/app/controllers/cms/page_route_options_controller.rb +56 -0
  27. data/app/controllers/cms/page_route_requirements_controller.rb +2 -0
  28. data/app/controllers/cms/page_routes_controller.rb +45 -0
  29. data/app/controllers/cms/pages_controller.rb +137 -0
  30. data/app/controllers/cms/portlet_controller.rb +12 -0
  31. data/app/controllers/cms/portlets_controller.rb +40 -0
  32. data/app/controllers/cms/redirects_controller.rb +19 -0
  33. data/app/controllers/cms/resource_controller.rb +108 -0
  34. data/app/controllers/cms/routes_controller.rb +23 -0
  35. data/app/controllers/cms/section_nodes_controller.rb +40 -0
  36. data/app/controllers/cms/sections_controller.rb +130 -0
  37. data/app/controllers/cms/sessions_controller.rb +71 -0
  38. data/app/controllers/cms/tags_controller.rb +12 -0
  39. data/app/controllers/cms/tasks_controller.rb +52 -0
  40. data/app/controllers/cms/toolbar_controller.rb +12 -0
  41. data/app/controllers/cms/users_controller.rb +100 -0
  42. data/app/controllers/tests/pretend_controller.rb +32 -0
  43. data/app/helpers/application_helper.rb +5 -0
  44. data/app/helpers/cms/application_helper.rb +155 -0
  45. data/app/helpers/cms/form_builder.rb +178 -0
  46. data/app/helpers/cms/form_tag_helper.rb +32 -0
  47. data/app/helpers/cms/menu_helper.rb +169 -0
  48. data/app/helpers/cms/page_helper.rb +92 -0
  49. data/app/helpers/cms/path_helper.rb +48 -0
  50. data/app/helpers/cms/rendering_helper.rb +42 -0
  51. data/app/helpers/cms/section_nodes_helper.rb +13 -0
  52. data/app/helpers/cms/template_support.rb +21 -0
  53. data/app/models/abstract_file_block.rb +17 -0
  54. data/app/models/attachment.rb +193 -0
  55. data/app/models/category.rb +49 -0
  56. data/app/models/category_type.rb +42 -0
  57. data/app/models/connector.rb +80 -0
  58. data/app/models/content_type.rb +95 -0
  59. data/app/models/content_type_group.rb +3 -0
  60. data/app/models/dynamic_view.rb +80 -0
  61. data/app/models/email_message.rb +31 -0
  62. data/app/models/email_message_mailer.rb +11 -0
  63. data/app/models/file_block.rb +21 -0
  64. data/app/models/forgot_password_mailer.rb +12 -0
  65. data/app/models/group.rb +41 -0
  66. data/app/models/group_permission.rb +7 -0
  67. data/app/models/group_section.rb +4 -0
  68. data/app/models/group_type.rb +12 -0
  69. data/app/models/group_type_permission.rb +4 -0
  70. data/app/models/guest_user.rb +53 -0
  71. data/app/models/html_block.rb +40 -0
  72. data/app/models/image_block.rb +22 -0
  73. data/app/models/link.rb +35 -0
  74. data/app/models/page.rb +276 -0
  75. data/app/models/page_partial.rb +22 -0
  76. data/app/models/page_route.rb +58 -0
  77. data/app/models/page_route_condition.rb +2 -0
  78. data/app/models/page_route_option.rb +3 -0
  79. data/app/models/page_route_requirement.rb +2 -0
  80. data/app/models/page_template.rb +31 -0
  81. data/app/models/permission.rb +10 -0
  82. data/app/models/portlet.rb +167 -0
  83. data/app/models/redirect.rb +4 -0
  84. data/app/models/section.rb +155 -0
  85. data/app/models/section_node.rb +93 -0
  86. data/app/models/site.rb +41 -0
  87. data/app/models/tag.rb +62 -0
  88. data/app/models/tagging.rb +9 -0
  89. data/app/models/task.rb +76 -0
  90. data/app/models/templates.rb +31 -0
  91. data/app/models/user.rb +169 -0
  92. data/app/models/user_group_membership.rb +4 -0
  93. data/app/portlets/dynamic_portlet.rb +7 -0
  94. data/app/portlets/email_page_portlet.rb +24 -0
  95. data/app/portlets/forgot_password_portlet.rb +29 -0
  96. data/app/portlets/login_portlet.rb +10 -0
  97. data/app/portlets/reset_password_portlet.rb +28 -0
  98. data/app/portlets/tag_cloud_portlet.rb +13 -0
  99. data/app/views/cms/blocks/_hidden_fields.html.erb +10 -0
  100. data/app/views/cms/blocks/_toolbar.html.erb +9 -0
  101. data/app/views/cms/blocks/_toolbar_for_collection.html.erb +26 -0
  102. data/app/views/cms/blocks/_toolbar_for_member.html.erb +38 -0
  103. data/app/views/cms/blocks/edit.html.erb +30 -0
  104. data/app/views/cms/blocks/index.html.erb +128 -0
  105. data/app/views/cms/blocks/new.html.erb +21 -0
  106. data/app/views/cms/blocks/show.html.erb +43 -0
  107. data/app/views/cms/blocks/usages.html.erb +44 -0
  108. data/app/views/cms/blocks/versions.html.erb +90 -0
  109. data/app/views/cms/cache/show.html.erb +12 -0
  110. data/app/views/cms/categories/_form.html.erb +36 -0
  111. data/app/views/cms/category_types/_form.html.erb +1 -0
  112. data/app/views/cms/connectors/new.html.erb +71 -0
  113. data/app/views/cms/content/no_page.html.erb +37 -0
  114. data/app/views/cms/content/show.html.erb +21 -0
  115. data/app/views/cms/content_types/index.html.erb +14 -0
  116. data/app/views/cms/dashboard/_page_drafts.html.erb +49 -0
  117. data/app/views/cms/dashboard/_tasks.html.erb +54 -0
  118. data/app/views/cms/dashboard/index.html.erb +15 -0
  119. data/app/views/cms/dynamic_views/_form.html.erb +11 -0
  120. data/app/views/cms/dynamic_views/edit.html.erb +3 -0
  121. data/app/views/cms/dynamic_views/index.html.erb +53 -0
  122. data/app/views/cms/dynamic_views/new.html.erb +3 -0
  123. data/app/views/cms/email_messages/index.html.erb +39 -0
  124. data/app/views/cms/email_messages/show.html.erb +57 -0
  125. data/app/views/cms/file_blocks/_form.html.erb +30 -0
  126. data/app/views/cms/file_blocks/render.html.erb +5 -0
  127. data/app/views/cms/forgot_password_mailer/reset_password.text.html.erb +3 -0
  128. data/app/views/cms/forgot_password_mailer/reset_password.text.plain.erb +3 -0
  129. data/app/views/cms/form_builder/_cms_check_box.html.erb +7 -0
  130. data/app/views/cms/form_builder/_cms_date_picker.html.erb +12 -0
  131. data/app/views/cms/form_builder/_cms_datetime_select.html.erb +12 -0
  132. data/app/views/cms/form_builder/_cms_drop_down.html.erb +12 -0
  133. data/app/views/cms/form_builder/_cms_fancy_drop_down.html.erb +9 -0
  134. data/app/views/cms/form_builder/_cms_file_field.html.erb +36 -0
  135. data/app/views/cms/form_builder/_cms_instructions.html.erb +4 -0
  136. data/app/views/cms/form_builder/_cms_tag_list.html.erb +15 -0
  137. data/app/views/cms/form_builder/_cms_template_editor.html.erb +8 -0
  138. data/app/views/cms/form_builder/_cms_text_area.html.erb +13 -0
  139. data/app/views/cms/form_builder/_cms_text_editor.html.erb +18 -0
  140. data/app/views/cms/form_builder/_cms_text_field.html.erb +12 -0
  141. data/app/views/cms/groups/_form.html.erb +45 -0
  142. data/app/views/cms/groups/_permissions.html.erb +37 -0
  143. data/app/views/cms/groups/_sections.html.erb +19 -0
  144. data/app/views/cms/groups/edit.html.erb +4 -0
  145. data/app/views/cms/groups/index.html.erb +58 -0
  146. data/app/views/cms/groups/new.html.erb +4 -0
  147. data/app/views/cms/html_blocks/_form.html.erb +3 -0
  148. data/app/views/cms/html_blocks/render.html.erb +1 -0
  149. data/app/views/cms/image_blocks/_form.html.erb +30 -0
  150. data/app/views/cms/image_blocks/render.html.erb +1 -0
  151. data/app/views/cms/links/_form.html.erb +13 -0
  152. data/app/views/cms/links/destroy.js.rjs +2 -0
  153. data/app/views/cms/links/edit.html.erb +14 -0
  154. data/app/views/cms/links/new.html.erb +15 -0
  155. data/app/views/cms/menus/_menu.html.erb +9 -0
  156. data/app/views/cms/menus/_menu_item.html.erb +11 -0
  157. data/app/views/cms/page_routes/_form.html.erb +11 -0
  158. data/app/views/cms/page_routes/edit.html.erb +3 -0
  159. data/app/views/cms/page_routes/index.html.erb +56 -0
  160. data/app/views/cms/page_routes/new.html.erb +3 -0
  161. data/app/views/cms/page_routes/show.html.erb +14 -0
  162. data/app/views/cms/pages/_edit_connector.html.erb +27 -0
  163. data/app/views/cms/pages/_edit_container.html.erb +11 -0
  164. data/app/views/cms/pages/_form.html.erb +46 -0
  165. data/app/views/cms/pages/edit.html.erb +23 -0
  166. data/app/views/cms/pages/new.html.erb +33 -0
  167. data/app/views/cms/pages/versions.html.erb +91 -0
  168. data/app/views/cms/redirects/_form.html.erb +15 -0
  169. data/app/views/cms/redirects/edit.html.erb +3 -0
  170. data/app/views/cms/redirects/index.html.erb +50 -0
  171. data/app/views/cms/redirects/new.html.erb +3 -0
  172. data/app/views/cms/routes/index.html.erb +40 -0
  173. data/app/views/cms/section_nodes/_link.html.erb +11 -0
  174. data/app/views/cms/section_nodes/_node.html.erb +34 -0
  175. data/app/views/cms/section_nodes/_page.html.erb +14 -0
  176. data/app/views/cms/section_nodes/_section.html.erb +12 -0
  177. data/app/views/cms/section_nodes/_section_node.html.erb +10 -0
  178. data/app/views/cms/section_nodes/index.html.erb +31 -0
  179. data/app/views/cms/sections/_form.html.erb +59 -0
  180. data/app/views/cms/sections/_page.html.erb +4 -0
  181. data/app/views/cms/sections/_section.html.erb +8 -0
  182. data/app/views/cms/sections/destroy.js.rjs +2 -0
  183. data/app/views/cms/sections/edit.html.erb +10 -0
  184. data/app/views/cms/sections/file_browser.xml.builder +14 -0
  185. data/app/views/cms/sections/index.html.erb +23 -0
  186. data/app/views/cms/sections/new.html.erb +21 -0
  187. data/app/views/cms/sessions/new.html.erb +32 -0
  188. data/app/views/cms/shared/_admin_sidebar.html.erb +30 -0
  189. data/app/views/cms/shared/_exception.html.erb +6 -0
  190. data/app/views/cms/shared/_pagination.html.erb +31 -0
  191. data/app/views/cms/shared/_version_conflict_diff.html.erb +11 -0
  192. data/app/views/cms/shared/_version_conflict_error.html.erb +8 -0
  193. data/app/views/cms/shared/access_denied.html.erb +3 -0
  194. data/app/views/cms/shared/error.html.erb +40 -0
  195. data/app/views/cms/tags/_form.html.erb +1 -0
  196. data/app/views/cms/tags/render.html.erb +53 -0
  197. data/app/views/cms/tasks/new.html.erb +36 -0
  198. data/app/views/cms/toolbar/index.html.erb +1 -0
  199. data/app/views/cms/users/_form.html.erb +12 -0
  200. data/app/views/cms/users/_groups.html.erb +12 -0
  201. data/app/views/cms/users/_password.html.erb +8 -0
  202. data/app/views/cms/users/_toolbar.html.erb +22 -0
  203. data/app/views/cms/users/_user_fields.html.erb +20 -0
  204. data/app/views/cms/users/change_password.html.erb +21 -0
  205. data/app/views/cms/users/edit.html.erb +16 -0
  206. data/app/views/cms/users/index.html.erb +62 -0
  207. data/app/views/cms/users/new.html.erb +13 -0
  208. data/app/views/cms/users/show.html.erb +50 -0
  209. data/app/views/layouts/_cms_toolbar.html.erb +59 -0
  210. data/app/views/layouts/_page_toolbar.html.erb +118 -0
  211. data/app/views/layouts/application.html.erb +11 -0
  212. data/app/views/layouts/cms/_footer.erb +4 -0
  213. data/app/views/layouts/cms/_head.html.erb +22 -0
  214. data/app/views/layouts/cms/administration.html.erb +51 -0
  215. data/app/views/layouts/cms/application.html.erb +25 -0
  216. data/app/views/layouts/cms/content_library.html.erb +94 -0
  217. data/app/views/layouts/cms/dashboard.html.erb +16 -0
  218. data/app/views/layouts/cms/login.html.erb +30 -0
  219. data/app/views/layouts/cms/section_nodes.html.erb +20 -0
  220. data/app/views/layouts/cms/thickbox.html.erb +24 -0
  221. data/app/views/layouts/cms/toolbar.html.erb +23 -0
  222. data/app/views/portlets/dynamic/_form.html.erb +3 -0
  223. data/app/views/portlets/email_page/_form.html.erb +7 -0
  224. data/app/views/portlets/email_page/render.html.erb +17 -0
  225. data/app/views/portlets/forgot_password/_form.html.erb +7 -0
  226. data/app/views/portlets/forgot_password/render.html.erb +14 -0
  227. data/app/views/portlets/login/_form.html.erb +7 -0
  228. data/app/views/portlets/login/render.html.erb +27 -0
  229. data/app/views/portlets/portlets/_form.html.erb +19 -0
  230. data/app/views/portlets/reset_password/_form.html.erb +5 -0
  231. data/app/views/portlets/reset_password/render.html.erb +24 -0
  232. data/app/views/portlets/tag_cloud/_form.html.erb +4 -0
  233. data/app/views/portlets/tag_cloud/render.html.erb +5 -0
  234. data/app/views/tests/pretend/open_with_layout.html.erb +5 -0
  235. data/bin/bcmsi +6 -0
  236. data/bin/browsercmsi +76 -0
  237. data/browsercmsi.gemspec +1526 -0
  238. data/config/locales/bcms/en/behaviors.yml +22 -0
  239. data/config/locales/bcms/en/bootstrap.yml +30 -0
  240. data/config/locales/bcms/en/controllers.yml +76 -0
  241. data/config/locales/bcms/en/helpers.yml +13 -0
  242. data/config/locales/bcms/en/js.yml +7 -0
  243. data/config/locales/bcms/en/models.yml +146 -0
  244. data/config/locales/bcms/en/portlets.yml +10 -0
  245. data/config/locales/bcms/en/views/cms/blocks.yml +68 -0
  246. data/config/locales/bcms/en/views/cms/cache.yml +7 -0
  247. data/config/locales/bcms/en/views/cms/categories.yml +10 -0
  248. data/config/locales/bcms/en/views/cms/connectors.yml +10 -0
  249. data/config/locales/bcms/en/views/cms/content.yml +5 -0
  250. data/config/locales/bcms/en/views/cms/content_types.yml +4 -0
  251. data/config/locales/bcms/en/views/cms/dashboard.yml +18 -0
  252. data/config/locales/bcms/en/views/cms/dynamic_views.yml +18 -0
  253. data/config/locales/bcms/en/views/cms/email_messages.yml +18 -0
  254. data/config/locales/bcms/en/views/cms/forgot_password_mailer.yml +10 -0
  255. data/config/locales/bcms/en/views/cms/form_builder.yml +6 -0
  256. data/config/locales/bcms/en/views/cms/groups.yml +34 -0
  257. data/config/locales/bcms/en/views/cms/links.yml +14 -0
  258. data/config/locales/bcms/en/views/cms/page_routes.yml +28 -0
  259. data/config/locales/bcms/en/views/cms/pages.yml +39 -0
  260. data/config/locales/bcms/en/views/cms/redirects.yml +19 -0
  261. data/config/locales/bcms/en/views/cms/routes.yml +10 -0
  262. data/config/locales/bcms/en/views/cms/section_nodes.yml +15 -0
  263. data/config/locales/bcms/en/views/cms/sections.yml +23 -0
  264. data/config/locales/bcms/en/views/cms/sessions.yml +7 -0
  265. data/config/locales/bcms/en/views/cms/shared.yml +39 -0
  266. data/config/locales/bcms/en/views/cms/tags.yml +5 -0
  267. data/config/locales/bcms/en/views/cms/tasks.yml +8 -0
  268. data/config/locales/bcms/en/views/cms/users.yml +48 -0
  269. data/config/locales/bcms/en/views/layouts/cms/content_library.yml +8 -0
  270. data/config/locales/bcms/en/views/layouts/cms/footer.yml +5 -0
  271. data/config/locales/bcms/en/views/layouts/cms_toolbar.yml +4 -0
  272. data/config/locales/bcms/en/views/layouts/page_toolbar.yml +23 -0
  273. data/config/locales/bcms/en/views/portlets.yml +57 -0
  274. data/config/locales/bcms/es/behaviors.yml +22 -0
  275. data/config/locales/bcms/es/bootstrap.yml +29 -0
  276. data/config/locales/bcms/es/controllers.yml +77 -0
  277. data/config/locales/bcms/es/helpers.yml +12 -0
  278. data/config/locales/bcms/es/js.yml +7 -0
  279. data/config/locales/bcms/es/models.yml +146 -0
  280. data/config/locales/bcms/es/portlets.yml +10 -0
  281. data/config/locales/bcms/es/views/cms/blocks.yml +68 -0
  282. data/config/locales/bcms/es/views/cms/cache.yml +9 -0
  283. data/config/locales/bcms/es/views/cms/categories.yml +11 -0
  284. data/config/locales/bcms/es/views/cms/connectors.yml +10 -0
  285. data/config/locales/bcms/es/views/cms/content.yml +5 -0
  286. data/config/locales/bcms/es/views/cms/content_types.yml +6 -0
  287. data/config/locales/bcms/es/views/cms/dashboard.yml +18 -0
  288. data/config/locales/bcms/es/views/cms/dynamic_views.yml +19 -0
  289. data/config/locales/bcms/es/views/cms/email_messages.yml +18 -0
  290. data/config/locales/bcms/es/views/cms/forgot_password_mailer.yml +11 -0
  291. data/config/locales/bcms/es/views/cms/form_builder.yml +6 -0
  292. data/config/locales/bcms/es/views/cms/groups.yml +36 -0
  293. data/config/locales/bcms/es/views/cms/links.yml +14 -0
  294. data/config/locales/bcms/es/views/cms/page_routes.yml +30 -0
  295. data/config/locales/bcms/es/views/cms/pages.yml +39 -0
  296. data/config/locales/bcms/es/views/cms/redirects.yml +19 -0
  297. data/config/locales/bcms/es/views/cms/routes.yml +9 -0
  298. data/config/locales/bcms/es/views/cms/section_nodes.yml +15 -0
  299. data/config/locales/bcms/es/views/cms/sections.yml +25 -0
  300. data/config/locales/bcms/es/views/cms/sessions.yml +7 -0
  301. data/config/locales/bcms/es/views/cms/shared.yml +41 -0
  302. data/config/locales/bcms/es/views/cms/tags.yml +7 -0
  303. data/config/locales/bcms/es/views/cms/tasks.yml +8 -0
  304. data/config/locales/bcms/es/views/cms/users.yml +47 -0
  305. data/config/locales/bcms/es/views/layouts/cms/content_library.yml +8 -0
  306. data/config/locales/bcms/es/views/layouts/cms/footer.yml +5 -0
  307. data/config/locales/bcms/es/views/layouts/cms_toolbar.yml +4 -0
  308. data/config/locales/bcms/es/views/layouts/page_toolbar.yml +23 -0
  309. data/config/locales/bcms/es/views/portlets.yml +57 -0
  310. data/db/demo/data.rb +97 -0
  311. data/db/demo/page_partials/_footer.html.erb +6 -0
  312. data/db/demo/page_partials/_header.html.erb +24 -0
  313. data/db/demo/page_templates/home_page.html.erb +49 -0
  314. data/db/demo/page_templates/sub_page.html.erb +37 -0
  315. data/db/migrate/20080815014337_browsercms_3_0_0.rb +274 -0
  316. data/db/migrate/20081114172307_load_seed_data.rb +63 -0
  317. data/db/migrate/20091109175123_browsercms_3_0_5.rb +9 -0
  318. data/doc/app/classes/AbstractFileBlock.html +172 -0
  319. data/doc/app/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html +293 -0
  320. data/doc/app/classes/ActiveRecord.html +105 -0
  321. data/doc/app/classes/ActiveSupport/Cache/FileStore.html +146 -0
  322. data/doc/app/classes/ActiveSupport/Cache.html +111 -0
  323. data/doc/app/classes/ActiveSupport.html +111 -0
  324. data/doc/app/classes/ActsAsList/ClassMethods.html +202 -0
  325. data/doc/app/classes/ActsAsList/InstanceMethods.html +534 -0
  326. data/doc/app/classes/ActsAsList.html +147 -0
  327. data/doc/app/classes/ApplicationController.html +119 -0
  328. data/doc/app/classes/ApplicationHelper.html +116 -0
  329. data/doc/app/classes/Attachment.html +726 -0
  330. data/doc/app/classes/Category.html +230 -0
  331. data/doc/app/classes/CategoryType.html +214 -0
  332. data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods/InstanceMethods.html +140 -0
  333. data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods.html +165 -0
  334. data/doc/app/classes/Cms/Acts/ContentBlock.html +146 -0
  335. data/doc/app/classes/Cms/Acts/ContentPage/ClassMethods.html +188 -0
  336. data/doc/app/classes/Cms/Acts/ContentPage.html +187 -0
  337. data/doc/app/classes/Cms/Acts.html +116 -0
  338. data/doc/app/classes/Cms/ApplicationController.html +369 -0
  339. data/doc/app/classes/Cms/ApplicationHelper.html +698 -0
  340. data/doc/app/classes/Cms/AttachmentsController.html +154 -0
  341. data/doc/app/classes/Cms/Authentication/Controller.html +700 -0
  342. data/doc/app/classes/Cms/Authentication/Model/ClassMethods.html +246 -0
  343. data/doc/app/classes/Cms/Authentication/Model/InstanceMethods.html +412 -0
  344. data/doc/app/classes/Cms/Authentication/Model.html +165 -0
  345. data/doc/app/classes/Cms/Authentication.html +116 -0
  346. data/doc/app/classes/Cms/BaseController.html +113 -0
  347. data/doc/app/classes/Cms/Behaviors/Archiving/InstanceMethods.html +220 -0
  348. data/doc/app/classes/Cms/Behaviors/Archiving/MacroMethods.html +175 -0
  349. data/doc/app/classes/Cms/Behaviors/Archiving.html +147 -0
  350. data/doc/app/classes/Cms/Behaviors/Attaching/InstanceMethods.html +670 -0
  351. data/doc/app/classes/Cms/Behaviors/Attaching/MacroMethods.html +188 -0
  352. data/doc/app/classes/Cms/Behaviors/Attaching.html +160 -0
  353. data/doc/app/classes/Cms/Behaviors/Categorizing/ClassMethods.html +105 -0
  354. data/doc/app/classes/Cms/Behaviors/Categorizing/InstanceMethods.html +140 -0
  355. data/doc/app/classes/Cms/Behaviors/Categorizing/MacroMethods.html +178 -0
  356. data/doc/app/classes/Cms/Behaviors/Categorizing.html +148 -0
  357. data/doc/app/classes/Cms/Behaviors/ClassMethods.html +272 -0
  358. data/doc/app/classes/Cms/Behaviors/Connecting/ClassMethods.html +188 -0
  359. data/doc/app/classes/Cms/Behaviors/Connecting/InstanceMethods.html +312 -0
  360. data/doc/app/classes/Cms/Behaviors/Connecting/MacroMethods.html +184 -0
  361. data/doc/app/classes/Cms/Behaviors/Connecting.html +148 -0
  362. data/doc/app/classes/Cms/Behaviors/DynamicAttributes/InstanceMethods.html +181 -0
  363. data/doc/app/classes/Cms/Behaviors/DynamicAttributes/MacroMethods.html +243 -0
  364. data/doc/app/classes/Cms/Behaviors/DynamicAttributes.html +285 -0
  365. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/InstanceMethods.html +142 -0
  366. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/MacroMethods.html +175 -0
  367. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange.html +178 -0
  368. data/doc/app/classes/Cms/Behaviors/Hiding/ClassMethods.html +105 -0
  369. data/doc/app/classes/Cms/Behaviors/Hiding/InstanceMethods.html +220 -0
  370. data/doc/app/classes/Cms/Behaviors/Hiding/MacroMethods.html +176 -0
  371. data/doc/app/classes/Cms/Behaviors/Hiding.html +148 -0
  372. data/doc/app/classes/Cms/Behaviors/InstanceMethods.html +287 -0
  373. data/doc/app/classes/Cms/Behaviors/Pagination/ClassMethods.html +252 -0
  374. data/doc/app/classes/Cms/Behaviors/Pagination/Collection.html +437 -0
  375. data/doc/app/classes/Cms/Behaviors/Pagination/InvalidPage.html +146 -0
  376. data/doc/app/classes/Cms/Behaviors/Pagination.html +151 -0
  377. data/doc/app/classes/Cms/Behaviors/Publishing/ClassMethods.html +105 -0
  378. data/doc/app/classes/Cms/Behaviors/Publishing/InstanceMethods.html +333 -0
  379. data/doc/app/classes/Cms/Behaviors/Publishing/MacroMethods.html +191 -0
  380. data/doc/app/classes/Cms/Behaviors/Publishing.html +179 -0
  381. data/doc/app/classes/Cms/Behaviors/Rendering/MacroMethods.html +186 -0
  382. data/doc/app/classes/Cms/Behaviors/Rendering.html +176 -0
  383. data/doc/app/classes/Cms/Behaviors/Searching/ClassMethods.html +164 -0
  384. data/doc/app/classes/Cms/Behaviors/Searching/MacroMethods.html +188 -0
  385. data/doc/app/classes/Cms/Behaviors/Searching.html +147 -0
  386. data/doc/app/classes/Cms/Behaviors/SoftDeleting/ClassMethods.html +217 -0
  387. data/doc/app/classes/Cms/Behaviors/SoftDeleting/InstanceMethods.html +247 -0
  388. data/doc/app/classes/Cms/Behaviors/SoftDeleting/MacroMethods.html +205 -0
  389. data/doc/app/classes/Cms/Behaviors/SoftDeleting.html +148 -0
  390. data/doc/app/classes/Cms/Behaviors/Taggable/ClassMethods.html +164 -0
  391. data/doc/app/classes/Cms/Behaviors/Taggable/InstanceMethods.html +198 -0
  392. data/doc/app/classes/Cms/Behaviors/Taggable/MacroMethods.html +182 -0
  393. data/doc/app/classes/Cms/Behaviors/Taggable.html +148 -0
  394. data/doc/app/classes/Cms/Behaviors/Userstamping/ClassMethods.html +105 -0
  395. data/doc/app/classes/Cms/Behaviors/Userstamping/InstanceMethods.html +143 -0
  396. data/doc/app/classes/Cms/Behaviors/Userstamping/MacroMethods.html +181 -0
  397. data/doc/app/classes/Cms/Behaviors/Userstamping.html +148 -0
  398. data/doc/app/classes/Cms/Behaviors/Versioning/ClassMethods.html +237 -0
  399. data/doc/app/classes/Cms/Behaviors/Versioning/InstanceMethods.html +713 -0
  400. data/doc/app/classes/Cms/Behaviors/Versioning/MacroMethods.html +290 -0
  401. data/doc/app/classes/Cms/Behaviors/Versioning.html +148 -0
  402. data/doc/app/classes/Cms/Behaviors.html +235 -0
  403. data/doc/app/classes/Cms/CacheController.html +174 -0
  404. data/doc/app/classes/Cms/Caching.html +171 -0
  405. data/doc/app/classes/Cms/CategoriesController.html +148 -0
  406. data/doc/app/classes/Cms/CategoryTypesController.html +148 -0
  407. data/doc/app/classes/Cms/ConnectorsController.html +215 -0
  408. data/doc/app/classes/Cms/ContentBlockController.html +1221 -0
  409. data/doc/app/classes/Cms/ContentController.html +240 -0
  410. data/doc/app/classes/Cms/ContentRenderingSupport.html +222 -0
  411. data/doc/app/classes/Cms/ContentTypesController.html +148 -0
  412. data/doc/app/classes/Cms/DashboardController.html +152 -0
  413. data/doc/app/classes/Cms/DataLoader.html +182 -0
  414. data/doc/app/classes/Cms/DomainSupport.html +166 -0
  415. data/doc/app/classes/Cms/DynamicViewsController.html +359 -0
  416. data/doc/app/classes/Cms/EmailMessagesController.html +172 -0
  417. data/doc/app/classes/Cms/ErrorHandling.html +199 -0
  418. data/doc/app/classes/Cms/Errors/AccessDenied.html +146 -0
  419. data/doc/app/classes/Cms/Errors.html +111 -0
  420. data/doc/app/classes/Cms/Extensions/ActionView/Base.html +141 -0
  421. data/doc/app/classes/Cms/Extensions/ActionView.html +111 -0
  422. data/doc/app/classes/Cms/Extensions/ActiveRecord/Base.html +144 -0
  423. data/doc/app/classes/Cms/Extensions/ActiveRecord/Errors.html +140 -0
  424. data/doc/app/classes/Cms/Extensions/ActiveRecord.html +116 -0
  425. data/doc/app/classes/Cms/Extensions/Hash.html +175 -0
  426. data/doc/app/classes/Cms/Extensions/Integer.html +146 -0
  427. data/doc/app/classes/Cms/Extensions/NilClass.html +212 -0
  428. data/doc/app/classes/Cms/Extensions/String.html +212 -0
  429. data/doc/app/classes/Cms/Extensions.html +140 -0
  430. data/doc/app/classes/Cms/FileBlocksController.html +113 -0
  431. data/doc/app/classes/Cms/FormBuilder.html +480 -0
  432. data/doc/app/classes/Cms/FormTagHelper.html +245 -0
  433. data/doc/app/classes/Cms/GroupsController.html +225 -0
  434. data/doc/app/classes/Cms/HomeController.html +148 -0
  435. data/doc/app/classes/Cms/HtmlBlocksController.html +113 -0
  436. data/doc/app/classes/Cms/ImageBlocksController.html +113 -0
  437. data/doc/app/classes/Cms/LinksController.html +343 -0
  438. data/doc/app/classes/Cms/MenuHelper.html +375 -0
  439. data/doc/app/classes/Cms/PageHelper.html +379 -0
  440. data/doc/app/classes/Cms/PageRouteConditionsController.html +113 -0
  441. data/doc/app/classes/Cms/PageRouteOptionsController.html +355 -0
  442. data/doc/app/classes/Cms/PageRouteRequirementsController.html +113 -0
  443. data/doc/app/classes/Cms/PageRoutesController.html +284 -0
  444. data/doc/app/classes/Cms/PagesController.html +333 -0
  445. data/doc/app/classes/Cms/PathHelper.html +268 -0
  446. data/doc/app/classes/Cms/PortletController.html +150 -0
  447. data/doc/app/classes/Cms/PortletsController.html +301 -0
  448. data/doc/app/classes/Cms/RedirectsController.html +172 -0
  449. data/doc/app/classes/Cms/RenderingHelper.html +214 -0
  450. data/doc/app/classes/Cms/ResourceController.html +616 -0
  451. data/doc/app/classes/Cms/Routes.html +311 -0
  452. data/doc/app/classes/Cms/RoutesController.html +164 -0
  453. data/doc/app/classes/Cms/SectionNodesController.html +272 -0
  454. data/doc/app/classes/Cms/SectionNodesHelper.html +145 -0
  455. data/doc/app/classes/Cms/SectionsController.html +566 -0
  456. data/doc/app/classes/Cms/SessionsController.html +299 -0
  457. data/doc/app/classes/Cms/TagsController.html +176 -0
  458. data/doc/app/classes/Cms/TasksController.html +221 -0
  459. data/doc/app/classes/Cms/TemplateSupport.html +185 -0
  460. data/doc/app/classes/Cms/ToolbarController.html +153 -0
  461. data/doc/app/classes/Cms/UsersController.html +381 -0
  462. data/doc/app/classes/Cms.html +771 -0
  463. data/doc/app/classes/CommandLine.html +226 -0
  464. data/doc/app/classes/Connector.html +354 -0
  465. data/doc/app/classes/ContentType.html +448 -0
  466. data/doc/app/classes/ContentTypeGroup.html +111 -0
  467. data/doc/app/classes/DynamicPortlet.html +148 -0
  468. data/doc/app/classes/DynamicView.html +408 -0
  469. data/doc/app/classes/EmailMessage.html +228 -0
  470. data/doc/app/classes/EmailMessageMailer.html +150 -0
  471. data/doc/app/classes/EmailPagePortlet.html +184 -0
  472. data/doc/app/classes/FileBlock.html +202 -0
  473. data/doc/app/classes/ForgotPasswordMailer.html +151 -0
  474. data/doc/app/classes/ForgotPasswordPortlet.html +162 -0
  475. data/doc/app/classes/Group.html +222 -0
  476. data/doc/app/classes/GroupPermission.html +111 -0
  477. data/doc/app/classes/GroupSection.html +111 -0
  478. data/doc/app/classes/GroupType.html +111 -0
  479. data/doc/app/classes/GroupTypePermission.html +111 -0
  480. data/doc/app/classes/GuestUser.html +392 -0
  481. data/doc/app/classes/HtmlBlock.html +170 -0
  482. data/doc/app/classes/ImageBlock.html +202 -0
  483. data/doc/app/classes/InitialData.html +171 -0
  484. data/doc/app/classes/Link.html +249 -0
  485. data/doc/app/classes/LoginPortlet.html +151 -0
  486. data/doc/app/classes/Page.html +954 -0
  487. data/doc/app/classes/PagePartial.html +201 -0
  488. data/doc/app/classes/PageRoute.html +335 -0
  489. data/doc/app/classes/PageRouteCondition.html +113 -0
  490. data/doc/app/classes/PageRouteOption.html +111 -0
  491. data/doc/app/classes/PageRouteRequirement.html +113 -0
  492. data/doc/app/classes/PageTemplate.html +260 -0
  493. data/doc/app/classes/Permission.html +111 -0
  494. data/doc/app/classes/Portlet.html +810 -0
  495. data/doc/app/classes/Redirect.html +111 -0
  496. data/doc/app/classes/ResetPasswordPortlet.html +169 -0
  497. data/doc/app/classes/Section.html +637 -0
  498. data/doc/app/classes/SectionNode.html +410 -0
  499. data/doc/app/classes/Sequence.html +146 -0
  500. data/doc/app/classes/Site.html +253 -0
  501. data/doc/app/classes/Tag.html +292 -0
  502. data/doc/app/classes/TagCloudPortlet.html +176 -0
  503. data/doc/app/classes/Tagging.html +146 -0
  504. data/doc/app/classes/Task.html +288 -0
  505. data/doc/app/classes/Templates.html +151 -0
  506. data/doc/app/classes/Tests/PretendController.html +275 -0
  507. data/doc/app/classes/Tests.html +107 -0
  508. data/doc/app/classes/User.html +757 -0
  509. data/doc/app/classes/UserGroupMembership.html +111 -0
  510. data/doc/app/created.rid +1 -0
  511. data/doc/app/files/app/controllers/application_controller_rb.html +109 -0
  512. data/doc/app/files/app/controllers/cms/application_controller_rb.html +101 -0
  513. data/doc/app/files/app/controllers/cms/attachments_controller_rb.html +101 -0
  514. data/doc/app/files/app/controllers/cms/base_controller_rb.html +101 -0
  515. data/doc/app/files/app/controllers/cms/cache_controller_rb.html +101 -0
  516. data/doc/app/files/app/controllers/cms/categories_controller_rb.html +101 -0
  517. data/doc/app/files/app/controllers/cms/category_types_controller_rb.html +101 -0
  518. data/doc/app/files/app/controllers/cms/connectors_controller_rb.html +101 -0
  519. data/doc/app/files/app/controllers/cms/content_block_controller_rb.html +107 -0
  520. data/doc/app/files/app/controllers/cms/content_controller_rb.html +101 -0
  521. data/doc/app/files/app/controllers/cms/content_types_controller_rb.html +101 -0
  522. data/doc/app/files/app/controllers/cms/dashboard_controller_rb.html +101 -0
  523. data/doc/app/files/app/controllers/cms/dynamic_views_controller_rb.html +101 -0
  524. data/doc/app/files/app/controllers/cms/email_messages_controller_rb.html +101 -0
  525. data/doc/app/files/app/controllers/cms/error_handling_rb.html +101 -0
  526. data/doc/app/files/app/controllers/cms/file_blocks_controller_rb.html +101 -0
  527. data/doc/app/files/app/controllers/cms/groups_controller_rb.html +101 -0
  528. data/doc/app/files/app/controllers/cms/home_controller_rb.html +101 -0
  529. data/doc/app/files/app/controllers/cms/html_blocks_controller_rb.html +101 -0
  530. data/doc/app/files/app/controllers/cms/image_blocks_controller_rb.html +101 -0
  531. data/doc/app/files/app/controllers/cms/links_controller_rb.html +101 -0
  532. data/doc/app/files/app/controllers/cms/page_route_conditions_controller_rb.html +101 -0
  533. data/doc/app/files/app/controllers/cms/page_route_options_controller_rb.html +101 -0
  534. data/doc/app/files/app/controllers/cms/page_route_requirements_controller_rb.html +101 -0
  535. data/doc/app/files/app/controllers/cms/page_routes_controller_rb.html +101 -0
  536. data/doc/app/files/app/controllers/cms/pages_controller_rb.html +101 -0
  537. data/doc/app/files/app/controllers/cms/portlet_controller_rb.html +101 -0
  538. data/doc/app/files/app/controllers/cms/portlets_controller_rb.html +101 -0
  539. data/doc/app/files/app/controllers/cms/redirects_controller_rb.html +101 -0
  540. data/doc/app/files/app/controllers/cms/resource_controller_rb.html +108 -0
  541. data/doc/app/files/app/controllers/cms/routes_controller_rb.html +101 -0
  542. data/doc/app/files/app/controllers/cms/section_nodes_controller_rb.html +101 -0
  543. data/doc/app/files/app/controllers/cms/sections_controller_rb.html +101 -0
  544. data/doc/app/files/app/controllers/cms/sessions_controller_rb.html +107 -0
  545. data/doc/app/files/app/controllers/cms/tags_controller_rb.html +101 -0
  546. data/doc/app/files/app/controllers/cms/tasks_controller_rb.html +101 -0
  547. data/doc/app/files/app/controllers/cms/toolbar_controller_rb.html +101 -0
  548. data/doc/app/files/app/controllers/cms/users_controller_rb.html +101 -0
  549. data/doc/app/files/app/controllers/tests/pretend_controller_rb.html +112 -0
  550. data/doc/app/files/app/helpers/application_helper_rb.html +112 -0
  551. data/doc/app/files/app/helpers/cms/application_helper_rb.html +107 -0
  552. data/doc/app/files/app/helpers/cms/form_builder_rb.html +108 -0
  553. data/doc/app/files/app/helpers/cms/form_tag_helper_rb.html +101 -0
  554. data/doc/app/files/app/helpers/cms/menu_helper_rb.html +101 -0
  555. data/doc/app/files/app/helpers/cms/page_helper_rb.html +101 -0
  556. data/doc/app/files/app/helpers/cms/path_helper_rb.html +101 -0
  557. data/doc/app/files/app/helpers/cms/rendering_helper_rb.html +111 -0
  558. data/doc/app/files/app/helpers/cms/section_nodes_helper_rb.html +101 -0
  559. data/doc/app/files/app/helpers/cms/template_support_rb.html +108 -0
  560. data/doc/app/files/app/models/abstract_file_block_rb.html +101 -0
  561. data/doc/app/files/app/models/attachment_rb.html +109 -0
  562. data/doc/app/files/app/models/category_rb.html +101 -0
  563. data/doc/app/files/app/models/category_type_rb.html +101 -0
  564. data/doc/app/files/app/models/connector_rb.html +101 -0
  565. data/doc/app/files/app/models/content_type_group_rb.html +101 -0
  566. data/doc/app/files/app/models/content_type_rb.html +101 -0
  567. data/doc/app/files/app/models/dynamic_view_rb.html +101 -0
  568. data/doc/app/files/app/models/email_message_mailer_rb.html +101 -0
  569. data/doc/app/files/app/models/email_message_rb.html +101 -0
  570. data/doc/app/files/app/models/file_block_rb.html +101 -0
  571. data/doc/app/files/app/models/forgot_password_mailer_rb.html +101 -0
  572. data/doc/app/files/app/models/group_permission_rb.html +101 -0
  573. data/doc/app/files/app/models/group_rb.html +110 -0
  574. data/doc/app/files/app/models/group_section_rb.html +101 -0
  575. data/doc/app/files/app/models/group_type_permission_rb.html +101 -0
  576. data/doc/app/files/app/models/group_type_rb.html +101 -0
  577. data/doc/app/files/app/models/guest_user_rb.html +114 -0
  578. data/doc/app/files/app/models/html_block_rb.html +101 -0
  579. data/doc/app/files/app/models/image_block_rb.html +101 -0
  580. data/doc/app/files/app/models/link_rb.html +101 -0
  581. data/doc/app/files/app/models/page_partial_rb.html +101 -0
  582. data/doc/app/files/app/models/page_rb.html +101 -0
  583. data/doc/app/files/app/models/page_route_condition_rb.html +101 -0
  584. data/doc/app/files/app/models/page_route_option_rb.html +101 -0
  585. data/doc/app/files/app/models/page_route_rb.html +101 -0
  586. data/doc/app/files/app/models/page_route_requirement_rb.html +101 -0
  587. data/doc/app/files/app/models/page_template_rb.html +101 -0
  588. data/doc/app/files/app/models/permission_rb.html +101 -0
  589. data/doc/app/files/app/models/portlet_rb.html +101 -0
  590. data/doc/app/files/app/models/redirect_rb.html +101 -0
  591. data/doc/app/files/app/models/section_node_rb.html +101 -0
  592. data/doc/app/files/app/models/section_rb.html +101 -0
  593. data/doc/app/files/app/models/site_rb.html +101 -0
  594. data/doc/app/files/app/models/tag_rb.html +101 -0
  595. data/doc/app/files/app/models/tagging_rb.html +101 -0
  596. data/doc/app/files/app/models/task_rb.html +101 -0
  597. data/doc/app/files/app/models/templates_rb.html +108 -0
  598. data/doc/app/files/app/models/user_group_membership_rb.html +101 -0
  599. data/doc/app/files/app/models/user_rb.html +108 -0
  600. data/doc/app/files/app/portlets/dynamic_portlet_rb.html +101 -0
  601. data/doc/app/files/app/portlets/email_page_portlet_rb.html +101 -0
  602. data/doc/app/files/app/portlets/forgot_password_portlet_rb.html +108 -0
  603. data/doc/app/files/app/portlets/login_portlet_rb.html +101 -0
  604. data/doc/app/files/app/portlets/reset_password_portlet_rb.html +101 -0
  605. data/doc/app/files/app/portlets/tag_cloud_portlet_rb.html +101 -0
  606. data/doc/app/files/doc/README_FOR_APP.html +128 -0
  607. data/doc/app/files/lib/acts_as_list_rb.html +101 -0
  608. data/doc/app/files/lib/browsercms_rb.html +113 -0
  609. data/doc/app/files/lib/cms/acts/content_block_rb.html +101 -0
  610. data/doc/app/files/lib/cms/acts/content_page_rb.html +125 -0
  611. data/doc/app/files/lib/cms/authentication/controller_rb.html +161 -0
  612. data/doc/app/files/lib/cms/authentication/model_rb.html +101 -0
  613. data/doc/app/files/lib/cms/behaviors/archiving_rb.html +101 -0
  614. data/doc/app/files/lib/cms/behaviors/attaching_rb.html +101 -0
  615. data/doc/app/files/lib/cms/behaviors/categorizing_rb.html +101 -0
  616. data/doc/app/files/lib/cms/behaviors/connecting_rb.html +101 -0
  617. data/doc/app/files/lib/cms/behaviors/dynamic_attributes_rb.html +101 -0
  618. data/doc/app/files/lib/cms/behaviors/flush_cache_on_change_rb.html +101 -0
  619. data/doc/app/files/lib/cms/behaviors/hiding_rb.html +101 -0
  620. data/doc/app/files/lib/cms/behaviors/pagination_rb.html +107 -0
  621. data/doc/app/files/lib/cms/behaviors/publishing_rb.html +101 -0
  622. data/doc/app/files/lib/cms/behaviors/rendering_rb.html +101 -0
  623. data/doc/app/files/lib/cms/behaviors/searching_rb.html +101 -0
  624. data/doc/app/files/lib/cms/behaviors/soft_deleting_rb.html +101 -0
  625. data/doc/app/files/lib/cms/behaviors/taggable_rb.html +101 -0
  626. data/doc/app/files/lib/cms/behaviors/userstamping_rb.html +101 -0
  627. data/doc/app/files/lib/cms/behaviors/versioning_rb.html +101 -0
  628. data/doc/app/files/lib/cms/behaviors_rb.html +147 -0
  629. data/doc/app/files/lib/cms/caching_rb.html +101 -0
  630. data/doc/app/files/lib/cms/content_rendering_support_rb.html +108 -0
  631. data/doc/app/files/lib/cms/data_loader_rb.html +101 -0
  632. data/doc/app/files/lib/cms/domain_support_rb.html +108 -0
  633. data/doc/app/files/lib/cms/extensions/action_view/base_rb.html +101 -0
  634. data/doc/app/files/lib/cms/extensions/active_record/base_rb.html +101 -0
  635. data/doc/app/files/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements_rb.html +101 -0
  636. data/doc/app/files/lib/cms/extensions/active_record/errors_rb.html +101 -0
  637. data/doc/app/files/lib/cms/extensions/active_support/cache/file_store_rb.html +101 -0
  638. data/doc/app/files/lib/cms/extensions/hash_rb.html +101 -0
  639. data/doc/app/files/lib/cms/extensions/integer_rb.html +101 -0
  640. data/doc/app/files/lib/cms/extensions/nil_rb.html +101 -0
  641. data/doc/app/files/lib/cms/extensions/string_rb.html +101 -0
  642. data/doc/app/files/lib/cms/extensions_rb.html +101 -0
  643. data/doc/app/files/lib/cms/init_rb.html +108 -0
  644. data/doc/app/files/lib/cms/routes_rb.html +101 -0
  645. data/doc/app/files/lib/cms/version_rb.html +107 -0
  646. data/doc/app/files/lib/command_line_rb.html +101 -0
  647. data/doc/app/files/lib/initial_data_rb.html +101 -0
  648. data/doc/app/files/lib/sequence_rb.html +101 -0
  649. data/doc/app/fr_class_index.html +218 -0
  650. data/doc/app/fr_file_index.html +164 -0
  651. data/doc/app/fr_method_index.html +787 -0
  652. data/doc/app/index.html +24 -0
  653. data/doc/app/rdoc-style.css +208 -0
  654. data/doc/guides/html/authentication.html +201 -0
  655. data/doc/guides/html/build_it_yourself.html +178 -0
  656. data/doc/guides/html/building_modules.html +249 -0
  657. data/doc/guides/html/building_templates.html +507 -0
  658. data/doc/guides/html/content_blocks.html +477 -0
  659. data/doc/guides/html/customizing_browsercms.html +173 -0
  660. data/doc/guides/html/deployment_guide.html +207 -0
  661. data/doc/guides/html/files/javascripts/code_highlighter.js +188 -0
  662. data/doc/guides/html/files/javascripts/guides.js +7 -0
  663. data/doc/guides/html/files/javascripts/highlighters.js +90 -0
  664. data/doc/guides/html/files/stylesheets/main.css +441 -0
  665. data/doc/guides/html/files/stylesheets/reset.css +43 -0
  666. data/doc/guides/html/files/stylesheets/style.css +13 -0
  667. data/doc/guides/html/files/stylesheets/syntax.css +31 -0
  668. data/doc/guides/html/getting_started.html +216 -0
  669. data/doc/guides/html/images/bg.png +0 -0
  670. data/doc/guides/html/images/bottom_cap.png +0 -0
  671. data/doc/guides/html/images/browsercms_logo.png +0 -0
  672. data/doc/guides/html/images/content_blocks/add_field_to_form.png +0 -0
  673. data/doc/guides/html/images/content_blocks/add_second_block.png +0 -0
  674. data/doc/guides/html/images/dot.png +0 -0
  675. data/doc/guides/html/images/icons/README +5 -0
  676. data/doc/guides/html/images/icons/callouts/1.png +0 -0
  677. data/doc/guides/html/images/icons/callouts/10.png +0 -0
  678. data/doc/guides/html/images/icons/callouts/11.png +0 -0
  679. data/doc/guides/html/images/icons/callouts/12.png +0 -0
  680. data/doc/guides/html/images/icons/callouts/13.png +0 -0
  681. data/doc/guides/html/images/icons/callouts/14.png +0 -0
  682. data/doc/guides/html/images/icons/callouts/15.png +0 -0
  683. data/doc/guides/html/images/icons/callouts/2.png +0 -0
  684. data/doc/guides/html/images/icons/callouts/3.png +0 -0
  685. data/doc/guides/html/images/icons/callouts/4.png +0 -0
  686. data/doc/guides/html/images/icons/callouts/5.png +0 -0
  687. data/doc/guides/html/images/icons/callouts/6.png +0 -0
  688. data/doc/guides/html/images/icons/callouts/7.png +0 -0
  689. data/doc/guides/html/images/icons/callouts/8.png +0 -0
  690. data/doc/guides/html/images/icons/callouts/9.png +0 -0
  691. data/doc/guides/html/images/icons/caution.png +0 -0
  692. data/doc/guides/html/images/icons/example.png +0 -0
  693. data/doc/guides/html/images/icons/home.png +0 -0
  694. data/doc/guides/html/images/icons/important.png +0 -0
  695. data/doc/guides/html/images/icons/next.png +0 -0
  696. data/doc/guides/html/images/icons/note.png +0 -0
  697. data/doc/guides/html/images/icons/prev.png +0 -0
  698. data/doc/guides/html/images/icons/tip.png +0 -0
  699. data/doc/guides/html/images/icons/up.png +0 -0
  700. data/doc/guides/html/images/icons/warning.png +0 -0
  701. data/doc/guides/html/images/nfl_sitemap.png +0 -0
  702. data/doc/guides/html/images/top_cap.png +0 -0
  703. data/doc/guides/html/images/top_cap_content.png +0 -0
  704. data/doc/guides/html/index.html +177 -0
  705. data/doc/guides/html/installing_modules.html +189 -0
  706. data/doc/guides/html/portlets.html +238 -0
  707. data/doc/guides/html/user_guide.html +275 -0
  708. data/doc/guides/html/writing_guides.html +164 -0
  709. data/lib/acts_as_list.rb +256 -0
  710. data/lib/browsercms.rb +12 -0
  711. data/lib/cms/acts/content_block.rb +31 -0
  712. data/lib/cms/acts/content_page.rb +69 -0
  713. data/lib/cms/authentication/controller.rb +214 -0
  714. data/lib/cms/authentication/model.rb +116 -0
  715. data/lib/cms/behaviors/archiving.rb +43 -0
  716. data/lib/cms/behaviors/attaching.rb +184 -0
  717. data/lib/cms/behaviors/categorizing.rb +31 -0
  718. data/lib/cms/behaviors/connecting.rb +99 -0
  719. data/lib/cms/behaviors/dynamic_attributes.rb +367 -0
  720. data/lib/cms/behaviors/flush_cache_on_change.rb +33 -0
  721. data/lib/cms/behaviors/hiding.rb +46 -0
  722. data/lib/cms/behaviors/pagination.rb +209 -0
  723. data/lib/cms/behaviors/publishing.rb +123 -0
  724. data/lib/cms/behaviors/rendering.rb +164 -0
  725. data/lib/cms/behaviors/searching.rb +49 -0
  726. data/lib/cms/behaviors/soft_deleting.rb +77 -0
  727. data/lib/cms/behaviors/taggable.rb +57 -0
  728. data/lib/cms/behaviors/userstamping.rb +37 -0
  729. data/lib/cms/behaviors/versioning.rb +273 -0
  730. data/lib/cms/behaviors.rb +33 -0
  731. data/lib/cms/caching.rb +20 -0
  732. data/lib/cms/content_rendering_support.rb +96 -0
  733. data/lib/cms/data_loader.rb +28 -0
  734. data/lib/cms/domain_support.rb +20 -0
  735. data/lib/cms/extensions/action_view/base.rb +13 -0
  736. data/lib/cms/extensions/active_record/base.rb +16 -0
  737. data/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements.rb +88 -0
  738. data/lib/cms/extensions/active_record/errors.rb +12 -0
  739. data/lib/cms/extensions/active_support/cache/file_store.rb +9 -0
  740. data/lib/cms/extensions/hash.rb +21 -0
  741. data/lib/cms/extensions/integer.rb +16 -0
  742. data/lib/cms/extensions/nil.rb +19 -0
  743. data/lib/cms/extensions/string.rb +19 -0
  744. data/lib/cms/extensions.rb +4 -0
  745. data/lib/cms/init.rb +118 -0
  746. data/lib/cms/routes.rb +140 -0
  747. data/lib/cms/version.rb +6 -0
  748. data/lib/command_line.rb +39 -0
  749. data/lib/initial_data.rb +30 -0
  750. data/lib/sequence.rb +6 -0
  751. data/lib/tasks/cms.rake +41 -0
  752. data/lib/tasks/db.rake +71 -0
  753. data/lib/tasks/dev.rake +20 -0
  754. data/public/bcms/ckeditor/ckeditor.js +108 -0
  755. data/public/bcms/ckeditor/config.js +18 -0
  756. data/public/bcms/ckeditor/core/_bootstrap.js +64 -0
  757. data/public/bcms/ckeditor/core/ajax.js +143 -0
  758. data/public/bcms/ckeditor/core/ckeditor.js +96 -0
  759. data/public/bcms/ckeditor/core/ckeditor_base.js +190 -0
  760. data/public/bcms/ckeditor/core/ckeditor_basic.js +241 -0
  761. data/public/bcms/ckeditor/core/command.js +70 -0
  762. data/public/bcms/ckeditor/core/commanddefinition.js +72 -0
  763. data/public/bcms/ckeditor/core/config.js +287 -0
  764. data/public/bcms/ckeditor/core/dom/document.js +210 -0
  765. data/public/bcms/ckeditor/core/dom/documentfragment.js +49 -0
  766. data/public/bcms/ckeditor/core/dom/domobject.js +204 -0
  767. data/public/bcms/ckeditor/core/dom/element.js +1384 -0
  768. data/public/bcms/ckeditor/core/dom/elementpath.js +104 -0
  769. data/public/bcms/ckeditor/core/dom/event.js +137 -0
  770. data/public/bcms/ckeditor/core/dom/node.js +649 -0
  771. data/public/bcms/ckeditor/core/dom/nodelist.js +23 -0
  772. data/public/bcms/ckeditor/core/dom/range.js +1668 -0
  773. data/public/bcms/ckeditor/core/dom/text.js +123 -0
  774. data/public/bcms/ckeditor/core/dom/walker.js +411 -0
  775. data/public/bcms/ckeditor/core/dom/window.js +96 -0
  776. data/public/bcms/ckeditor/core/dom.js +21 -0
  777. data/public/bcms/ckeditor/core/dtd.js +200 -0
  778. data/public/bcms/ckeditor/core/editor.js +650 -0
  779. data/public/bcms/ckeditor/core/editor_basic.js +178 -0
  780. data/public/bcms/ckeditor/core/env.js +219 -0
  781. data/public/bcms/ckeditor/core/event.js +335 -0
  782. data/public/bcms/ckeditor/core/eventInfo.js +120 -0
  783. data/public/bcms/ckeditor/core/focusmanager.js +123 -0
  784. data/public/bcms/ckeditor/core/htmlparser/basicwriter.js +140 -0
  785. data/public/bcms/ckeditor/core/htmlparser/cdata.js +44 -0
  786. data/public/bcms/ckeditor/core/htmlparser/comment.js +59 -0
  787. data/public/bcms/ckeditor/core/htmlparser/element.js +196 -0
  788. data/public/bcms/ckeditor/core/htmlparser/filter.js +233 -0
  789. data/public/bcms/ckeditor/core/htmlparser/fragment.js +434 -0
  790. data/public/bcms/ckeditor/core/htmlparser/text.js +55 -0
  791. data/public/bcms/ckeditor/core/htmlparser.js +212 -0
  792. data/public/bcms/ckeditor/core/imagecacher.js +58 -0
  793. data/public/bcms/ckeditor/core/lang.js +147 -0
  794. data/public/bcms/ckeditor/core/loader.js +238 -0
  795. data/public/bcms/ckeditor/core/plugindefinition.js +66 -0
  796. data/public/bcms/ckeditor/core/plugins.js +82 -0
  797. data/public/bcms/ckeditor/core/resourcemanager.js +233 -0
  798. data/public/bcms/ckeditor/core/scriptloader.js +194 -0
  799. data/public/bcms/ckeditor/core/skins.js +185 -0
  800. data/public/bcms/ckeditor/core/test.js +184 -0
  801. data/public/bcms/ckeditor/core/themes.js +18 -0
  802. data/public/bcms/ckeditor/core/tools.js +531 -0
  803. data/public/bcms/ckeditor/core/ui.js +106 -0
  804. data/public/bcms/ckeditor/core/xml.js +165 -0
  805. data/public/bcms/ckeditor/editor.js +51 -0
  806. data/public/bcms/ckeditor/lang/_languages.js +82 -0
  807. data/public/bcms/ckeditor/lang/_translationstatus.txt +59 -0
  808. data/public/bcms/ckeditor/lang/af.js +674 -0
  809. data/public/bcms/ckeditor/lang/ar.js +674 -0
  810. data/public/bcms/ckeditor/lang/bg.js +674 -0
  811. data/public/bcms/ckeditor/lang/bn.js +674 -0
  812. data/public/bcms/ckeditor/lang/bs.js +674 -0
  813. data/public/bcms/ckeditor/lang/ca.js +674 -0
  814. data/public/bcms/ckeditor/lang/cs.js +674 -0
  815. data/public/bcms/ckeditor/lang/da.js +674 -0
  816. data/public/bcms/ckeditor/lang/de.js +674 -0
  817. data/public/bcms/ckeditor/lang/el.js +674 -0
  818. data/public/bcms/ckeditor/lang/en-au.js +674 -0
  819. data/public/bcms/ckeditor/lang/en-ca.js +674 -0
  820. data/public/bcms/ckeditor/lang/en-uk.js +674 -0
  821. data/public/bcms/ckeditor/lang/en.js +674 -0
  822. data/public/bcms/ckeditor/lang/eo.js +674 -0
  823. data/public/bcms/ckeditor/lang/es.js +674 -0
  824. data/public/bcms/ckeditor/lang/et.js +674 -0
  825. data/public/bcms/ckeditor/lang/eu.js +674 -0
  826. data/public/bcms/ckeditor/lang/fa.js +674 -0
  827. data/public/bcms/ckeditor/lang/fi.js +674 -0
  828. data/public/bcms/ckeditor/lang/fo.js +674 -0
  829. data/public/bcms/ckeditor/lang/fr-ca.js +674 -0
  830. data/public/bcms/ckeditor/lang/fr.js +674 -0
  831. data/public/bcms/ckeditor/lang/gl.js +674 -0
  832. data/public/bcms/ckeditor/lang/gu.js +674 -0
  833. data/public/bcms/ckeditor/lang/he.js +674 -0
  834. data/public/bcms/ckeditor/lang/hi.js +674 -0
  835. data/public/bcms/ckeditor/lang/hr.js +674 -0
  836. data/public/bcms/ckeditor/lang/hu.js +674 -0
  837. data/public/bcms/ckeditor/lang/is.js +674 -0
  838. data/public/bcms/ckeditor/lang/it.js +674 -0
  839. data/public/bcms/ckeditor/lang/ja.js +674 -0
  840. data/public/bcms/ckeditor/lang/km.js +674 -0
  841. data/public/bcms/ckeditor/lang/ko.js +674 -0
  842. data/public/bcms/ckeditor/lang/lt.js +674 -0
  843. data/public/bcms/ckeditor/lang/lv.js +674 -0
  844. data/public/bcms/ckeditor/lang/mn.js +674 -0
  845. data/public/bcms/ckeditor/lang/ms.js +674 -0
  846. data/public/bcms/ckeditor/lang/nb.js +674 -0
  847. data/public/bcms/ckeditor/lang/nl.js +674 -0
  848. data/public/bcms/ckeditor/lang/no.js +674 -0
  849. data/public/bcms/ckeditor/lang/pl.js +674 -0
  850. data/public/bcms/ckeditor/lang/pt-br.js +674 -0
  851. data/public/bcms/ckeditor/lang/pt.js +674 -0
  852. data/public/bcms/ckeditor/lang/ro.js +674 -0
  853. data/public/bcms/ckeditor/lang/ru.js +674 -0
  854. data/public/bcms/ckeditor/lang/sk.js +674 -0
  855. data/public/bcms/ckeditor/lang/sl.js +674 -0
  856. data/public/bcms/ckeditor/lang/sr-latn.js +674 -0
  857. data/public/bcms/ckeditor/lang/sr.js +674 -0
  858. data/public/bcms/ckeditor/lang/sv.js +674 -0
  859. data/public/bcms/ckeditor/lang/th.js +674 -0
  860. data/public/bcms/ckeditor/lang/tr.js +674 -0
  861. data/public/bcms/ckeditor/lang/uk.js +674 -0
  862. data/public/bcms/ckeditor/lang/vi.js +674 -0
  863. data/public/bcms/ckeditor/lang/zh-cn.js +674 -0
  864. data/public/bcms/ckeditor/lang/zh.js +674 -0
  865. data/public/bcms/ckeditor/plugins/about/dialogs/about.js +73 -0
  866. data/public/bcms/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  867. data/public/bcms/ckeditor/plugins/about/plugin.js +22 -0
  868. data/public/bcms/ckeditor/plugins/basicstyles/plugin.js +50 -0
  869. data/public/bcms/ckeditor/plugins/blockquote/plugin.js +301 -0
  870. data/public/bcms/ckeditor/plugins/button/plugin.js +264 -0
  871. data/public/bcms/ckeditor/plugins/clipboard/dialogs/paste.js +167 -0
  872. data/public/bcms/ckeditor/plugins/clipboard/plugin.js +208 -0
  873. data/public/bcms/ckeditor/plugins/colorbutton/plugin.js +202 -0
  874. data/public/bcms/ckeditor/plugins/contextmenu/plugin.js +178 -0
  875. data/public/bcms/ckeditor/plugins/dialog/dialogDefinition.js +315 -0
  876. data/public/bcms/ckeditor/plugins/dialog/plugin.js +2742 -0
  877. data/public/bcms/ckeditor/plugins/dialogui/plugin.js +1319 -0
  878. data/public/bcms/ckeditor/plugins/domiterator/plugin.js +354 -0
  879. data/public/bcms/ckeditor/plugins/editingblock/plugin.js +236 -0
  880. data/public/bcms/ckeditor/plugins/elementspath/plugin.js +182 -0
  881. data/public/bcms/ckeditor/plugins/enterkey/plugin.js +324 -0
  882. data/public/bcms/ckeditor/plugins/entities/plugin.js +200 -0
  883. data/public/bcms/ckeditor/plugins/fakeobjects/plugin.js +111 -0
  884. data/public/bcms/ckeditor/plugins/filebrowser/plugin.js +383 -0
  885. data/public/bcms/ckeditor/plugins/find/dialogs/find.js +843 -0
  886. data/public/bcms/ckeditor/plugins/find/plugin.js +46 -0
  887. data/public/bcms/ckeditor/plugins/flash/dialogs/flash.js +682 -0
  888. data/public/bcms/ckeditor/plugins/flash/images/placeholder.png +0 -0
  889. data/public/bcms/ckeditor/plugins/flash/plugin.js +165 -0
  890. data/public/bcms/ckeditor/plugins/floatpanel/plugin.js +325 -0
  891. data/public/bcms/ckeditor/plugins/font/plugin.js +227 -0
  892. data/public/bcms/ckeditor/plugins/format/plugin.js +191 -0
  893. data/public/bcms/ckeditor/plugins/forms/dialogs/button.js +135 -0
  894. data/public/bcms/ckeditor/plugins/forms/dialogs/checkbox.js +138 -0
  895. data/public/bcms/ckeditor/plugins/forms/dialogs/form.js +177 -0
  896. data/public/bcms/ckeditor/plugins/forms/dialogs/hiddenfield.js +91 -0
  897. data/public/bcms/ckeditor/plugins/forms/dialogs/radio.js +135 -0
  898. data/public/bcms/ckeditor/plugins/forms/dialogs/select.js +541 -0
  899. data/public/bcms/ckeditor/plugins/forms/dialogs/textarea.js +114 -0
  900. data/public/bcms/ckeditor/plugins/forms/dialogs/textfield.js +193 -0
  901. data/public/bcms/ckeditor/plugins/forms/plugin.js +193 -0
  902. data/public/bcms/ckeditor/plugins/horizontalrule/plugin.js +35 -0
  903. data/public/bcms/ckeditor/plugins/htmldataprocessor/plugin.js +373 -0
  904. data/public/bcms/ckeditor/plugins/htmlwriter/plugin.js +289 -0
  905. data/public/bcms/ckeditor/plugins/iframedialog/plugin.js +136 -0
  906. data/public/bcms/ckeditor/plugins/image/dialogs/image.js +1225 -0
  907. data/public/bcms/ckeditor/plugins/image/plugin.js +64 -0
  908. data/public/bcms/ckeditor/plugins/indent/plugin.js +323 -0
  909. data/public/bcms/ckeditor/plugins/justify/plugin.js +164 -0
  910. data/public/bcms/ckeditor/plugins/keystrokes/plugin.js +217 -0
  911. data/public/bcms/ckeditor/plugins/link/dialogs/anchor.js +98 -0
  912. data/public/bcms/ckeditor/plugins/link/dialogs/link.js +1217 -0
  913. data/public/bcms/ckeditor/plugins/link/images/anchor.gif +0 -0
  914. data/public/bcms/ckeditor/plugins/link/plugin.js +188 -0
  915. data/public/bcms/ckeditor/plugins/list/plugin.js +570 -0
  916. data/public/bcms/ckeditor/plugins/listblock/plugin.js +231 -0
  917. data/public/bcms/ckeditor/plugins/maximize/plugin.js +267 -0
  918. data/public/bcms/ckeditor/plugins/menu/plugin.js +377 -0
  919. data/public/bcms/ckeditor/plugins/menubutton/plugin.js +93 -0
  920. data/public/bcms/ckeditor/plugins/newpage/plugin.js +65 -0
  921. data/public/bcms/ckeditor/plugins/pagebreak/images/pagebreak.gif +0 -0
  922. data/public/bcms/ckeditor/plugins/pagebreak/plugin.js +96 -0
  923. data/public/bcms/ckeditor/plugins/panel/plugin.js +330 -0
  924. data/public/bcms/ckeditor/plugins/panelbutton/plugin.js +140 -0
  925. data/public/bcms/ckeditor/plugins/pastefromword/dialogs/pastefromword.js +307 -0
  926. data/public/bcms/ckeditor/plugins/pastefromword/plugin.js +54 -0
  927. data/public/bcms/ckeditor/plugins/pastetext/dialogs/pastetext.js +65 -0
  928. data/public/bcms/ckeditor/plugins/pastetext/plugin.js +142 -0
  929. data/public/bcms/ckeditor/plugins/popup/plugin.js +62 -0
  930. data/public/bcms/ckeditor/plugins/preview/plugin.js +97 -0
  931. data/public/bcms/ckeditor/plugins/print/plugin.js +41 -0
  932. data/public/bcms/ckeditor/plugins/removeformat/plugin.js +132 -0
  933. data/public/bcms/ckeditor/plugins/resize/plugin.js +115 -0
  934. data/public/bcms/ckeditor/plugins/richcombo/plugin.js +357 -0
  935. data/public/bcms/ckeditor/plugins/save/plugin.js +55 -0
  936. data/public/bcms/ckeditor/plugins/scayt/dialogs/options.js +494 -0
  937. data/public/bcms/ckeditor/plugins/scayt/dialogs/toolbar.css +71 -0
  938. data/public/bcms/ckeditor/plugins/scayt/plugin.js +511 -0
  939. data/public/bcms/ckeditor/plugins/selection/plugin.js +1072 -0
  940. data/public/bcms/ckeditor/plugins/showblocks/images/block_address.png +0 -0
  941. data/public/bcms/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
  942. data/public/bcms/ckeditor/plugins/showblocks/images/block_div.png +0 -0
  943. data/public/bcms/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
  944. data/public/bcms/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
  945. data/public/bcms/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
  946. data/public/bcms/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
  947. data/public/bcms/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
  948. data/public/bcms/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
  949. data/public/bcms/ckeditor/plugins/showblocks/images/block_p.png +0 -0
  950. data/public/bcms/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
  951. data/public/bcms/ckeditor/plugins/showblocks/plugin.js +153 -0
  952. data/public/bcms/ckeditor/plugins/smiley/dialogs/smiley.js +219 -0
  953. data/public/bcms/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  954. data/public/bcms/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  955. data/public/bcms/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  956. data/public/bcms/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  957. data/public/bcms/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  958. data/public/bcms/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  959. data/public/bcms/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  960. data/public/bcms/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  961. data/public/bcms/ckeditor/plugins/smiley/images/heart.gif +0 -0
  962. data/public/bcms/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  963. data/public/bcms/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  964. data/public/bcms/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  965. data/public/bcms/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  966. data/public/bcms/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  967. data/public/bcms/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  968. data/public/bcms/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  969. data/public/bcms/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  970. data/public/bcms/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  971. data/public/bcms/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  972. data/public/bcms/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  973. data/public/bcms/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  974. data/public/bcms/ckeditor/plugins/smiley/plugin.js +74 -0
  975. data/public/bcms/ckeditor/plugins/sourcearea/plugin.js +185 -0
  976. data/public/bcms/ckeditor/plugins/specialchar/dialogs/specialchar.js +362 -0
  977. data/public/bcms/ckeditor/plugins/specialchar/plugin.js +29 -0
  978. data/public/bcms/ckeditor/plugins/styles/plugin.js +1242 -0
  979. data/public/bcms/ckeditor/plugins/stylescombo/plugin.js +295 -0
  980. data/public/bcms/ckeditor/plugins/stylescombo/styles/default.js +85 -0
  981. data/public/bcms/ckeditor/plugins/tab/plugin.js +266 -0
  982. data/public/bcms/ckeditor/plugins/table/dialogs/table.js +550 -0
  983. data/public/bcms/ckeditor/plugins/table/plugin.js +70 -0
  984. data/public/bcms/ckeditor/plugins/tabletools/dialogs/tableCell.js +328 -0
  985. data/public/bcms/ckeditor/plugins/tabletools/plugin.js +701 -0
  986. data/public/bcms/ckeditor/plugins/templates/dialogs/templates.js +170 -0
  987. data/public/bcms/ckeditor/plugins/templates/plugin.js +99 -0
  988. data/public/bcms/ckeditor/plugins/templates/templates/default.js +94 -0
  989. data/public/bcms/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
  990. data/public/bcms/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
  991. data/public/bcms/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
  992. data/public/bcms/ckeditor/plugins/toolbar/plugin.js +412 -0
  993. data/public/bcms/ckeditor/plugins/uicolor/dialogs/uicolor.js +203 -0
  994. data/public/bcms/ckeditor/plugins/uicolor/lang/en.js +15 -0
  995. data/public/bcms/ckeditor/plugins/uicolor/plugin.js +35 -0
  996. data/public/bcms/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  997. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  998. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  999. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  1000. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  1001. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/yui.css +15 -0
  1002. data/public/bcms/ckeditor/plugins/uicolor/yui/yui.js +71 -0
  1003. data/public/bcms/ckeditor/plugins/undo/plugin.js +490 -0
  1004. data/public/bcms/ckeditor/plugins/wsc/dialogs/ciframe.html +49 -0
  1005. data/public/bcms/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  1006. data/public/bcms/ckeditor/plugins/wsc/dialogs/wsc.css +83 -0
  1007. data/public/bcms/ckeditor/plugins/wsc/dialogs/wsc.js +169 -0
  1008. data/public/bcms/ckeditor/plugins/wsc/plugin.js +32 -0
  1009. data/public/bcms/ckeditor/plugins/wysiwygarea/plugin.js +636 -0
  1010. data/public/bcms/ckeditor/skins/kama/dialog.css +742 -0
  1011. data/public/bcms/ckeditor/skins/kama/editor.css +21 -0
  1012. data/public/bcms/ckeditor/skins/kama/elementspath.css +68 -0
  1013. data/public/bcms/ckeditor/skins/kama/icons.css +309 -0
  1014. data/public/bcms/ckeditor/skins/kama/icons.png +0 -0
  1015. data/public/bcms/ckeditor/skins/kama/images/dialog_sides.gif +0 -0
  1016. data/public/bcms/ckeditor/skins/kama/images/dialog_sides.png +0 -0
  1017. data/public/bcms/ckeditor/skins/kama/images/dialog_sides_rtl.png +0 -0
  1018. data/public/bcms/ckeditor/skins/kama/images/mini.gif +0 -0
  1019. data/public/bcms/ckeditor/skins/kama/images/noimage.png +0 -0
  1020. data/public/bcms/ckeditor/skins/kama/images/sprites.png +0 -0
  1021. data/public/bcms/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  1022. data/public/bcms/ckeditor/skins/kama/images/toolbar_start.gif +0 -0
  1023. data/public/bcms/ckeditor/skins/kama/mainui.css +139 -0
  1024. data/public/bcms/ckeditor/skins/kama/menu.css +179 -0
  1025. data/public/bcms/ckeditor/skins/kama/panel.css +203 -0
  1026. data/public/bcms/ckeditor/skins/kama/presets.css +49 -0
  1027. data/public/bcms/ckeditor/skins/kama/reset.css +78 -0
  1028. data/public/bcms/ckeditor/skins/kama/richcombo.css +260 -0
  1029. data/public/bcms/ckeditor/skins/kama/skin.js +291 -0
  1030. data/public/bcms/ckeditor/skins/kama/templates.css +71 -0
  1031. data/public/bcms/ckeditor/skins/kama/toolbar.css +384 -0
  1032. data/public/bcms/ckeditor/skins/office2003/dialog.css +643 -0
  1033. data/public/bcms/ckeditor/skins/office2003/editor.css +21 -0
  1034. data/public/bcms/ckeditor/skins/office2003/elementspath.css +68 -0
  1035. data/public/bcms/ckeditor/skins/office2003/icons.css +309 -0
  1036. data/public/bcms/ckeditor/skins/office2003/icons.png +0 -0
  1037. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  1038. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  1039. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  1040. data/public/bcms/ckeditor/skins/office2003/images/mini.gif +0 -0
  1041. data/public/bcms/ckeditor/skins/office2003/images/noimage.png +0 -0
  1042. data/public/bcms/ckeditor/skins/office2003/images/sprites.png +0 -0
  1043. data/public/bcms/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  1044. data/public/bcms/ckeditor/skins/office2003/mainui.css +97 -0
  1045. data/public/bcms/ckeditor/skins/office2003/menu.css +175 -0
  1046. data/public/bcms/ckeditor/skins/office2003/panel.css +198 -0
  1047. data/public/bcms/ckeditor/skins/office2003/presets.css +49 -0
  1048. data/public/bcms/ckeditor/skins/office2003/reset.css +78 -0
  1049. data/public/bcms/ckeditor/skins/office2003/richcombo.css +279 -0
  1050. data/public/bcms/ckeditor/skins/office2003/skin.js +77 -0
  1051. data/public/bcms/ckeditor/skins/office2003/templates.css +71 -0
  1052. data/public/bcms/ckeditor/skins/office2003/toolbar.css +442 -0
  1053. data/public/bcms/ckeditor/skins/v2/dialog.css +653 -0
  1054. data/public/bcms/ckeditor/skins/v2/editor.css +21 -0
  1055. data/public/bcms/ckeditor/skins/v2/elementspath.css +68 -0
  1056. data/public/bcms/ckeditor/skins/v2/icons.css +309 -0
  1057. data/public/bcms/ckeditor/skins/v2/icons.png +0 -0
  1058. data/public/bcms/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  1059. data/public/bcms/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  1060. data/public/bcms/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  1061. data/public/bcms/ckeditor/skins/v2/images/mini.gif +0 -0
  1062. data/public/bcms/ckeditor/skins/v2/images/noimage.png +0 -0
  1063. data/public/bcms/ckeditor/skins/v2/images/sprites.png +0 -0
  1064. data/public/bcms/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  1065. data/public/bcms/ckeditor/skins/v2/images/toolbar_start.gif +0 -0
  1066. data/public/bcms/ckeditor/skins/v2/mainui.css +112 -0
  1067. data/public/bcms/ckeditor/skins/v2/menu.css +178 -0
  1068. data/public/bcms/ckeditor/skins/v2/panel.css +198 -0
  1069. data/public/bcms/ckeditor/skins/v2/presets.css +50 -0
  1070. data/public/bcms/ckeditor/skins/v2/reset.css +78 -0
  1071. data/public/bcms/ckeditor/skins/v2/richcombo.css +275 -0
  1072. data/public/bcms/ckeditor/skins/v2/skin.js +73 -0
  1073. data/public/bcms/ckeditor/skins/v2/templates.css +71 -0
  1074. data/public/bcms/ckeditor/skins/v2/toolbar.css +399 -0
  1075. data/public/bcms/ckeditor/tests/_assets/sample.css +4 -0
  1076. data/public/bcms/ckeditor/tests/_assets/sample.js +1 -0
  1077. data/public/bcms/ckeditor/tests/_assets/sample.txt +1 -0
  1078. data/public/bcms/ckeditor/tests/_assets/sample.xml +5 -0
  1079. data/public/bcms/ckeditor/tests/_assets/sample_xml.txt +5 -0
  1080. data/public/bcms/ckeditor/tests/core/_editor/custom_config_1.js +10 -0
  1081. data/public/bcms/ckeditor/tests/core/_editor/custom_config_2.js +9 -0
  1082. data/public/bcms/ckeditor/tests/core/ajax.html +163 -0
  1083. data/public/bcms/ckeditor/tests/core/bootstrap.html +66 -0
  1084. data/public/bcms/ckeditor/tests/core/ckeditor.html +160 -0
  1085. data/public/bcms/ckeditor/tests/core/dom/document.html +126 -0
  1086. data/public/bcms/ckeditor/tests/core/dom/documentfragment.html +292 -0
  1087. data/public/bcms/ckeditor/tests/core/dom/element.html +637 -0
  1088. data/public/bcms/ckeditor/tests/core/dom/node.html +164 -0
  1089. data/public/bcms/ckeditor/tests/core/dom/range.html +2411 -0
  1090. data/public/bcms/ckeditor/tests/core/dom/text.html +128 -0
  1091. data/public/bcms/ckeditor/tests/core/dom/walker.html +340 -0
  1092. data/public/bcms/ckeditor/tests/core/dom/window.html +53 -0
  1093. data/public/bcms/ckeditor/tests/core/editor.html +123 -0
  1094. data/public/bcms/ckeditor/tests/core/env.html +52 -0
  1095. data/public/bcms/ckeditor/tests/core/event.html +487 -0
  1096. data/public/bcms/ckeditor/tests/core/htmlparser/fragment.html +188 -0
  1097. data/public/bcms/ckeditor/tests/core/htmlparser/htmlparser.html +91 -0
  1098. data/public/bcms/ckeditor/tests/core/plugins/myplugins/sample/my_plugin.js +3 -0
  1099. data/public/bcms/ckeditor/tests/core/plugins.html +45 -0
  1100. data/public/bcms/ckeditor/tests/core/scriptloader.html +52 -0
  1101. data/public/bcms/ckeditor/tests/core/tools.html +170 -0
  1102. data/public/bcms/ckeditor/tests/core/xml.html +150 -0
  1103. data/public/bcms/ckeditor/tests/plugins/domiterator/domiterator.html +236 -0
  1104. data/public/bcms/ckeditor/tests/plugins/htmldataprocessor/htmldataprocessor.html +386 -0
  1105. data/public/bcms/ckeditor/tests/plugins/link/link.html +123 -0
  1106. data/public/bcms/ckeditor/tests/plugins/list/list.html +217 -0
  1107. data/public/bcms/ckeditor/tests/plugins/selection/selection.html +49 -0
  1108. data/public/bcms/ckeditor/tests/plugins/styles/styles.html +596 -0
  1109. data/public/bcms/ckeditor/tests/test.css +81 -0
  1110. data/public/bcms/ckeditor/tests/test.js +93 -0
  1111. data/public/bcms/ckeditor/tests/testall.html +114 -0
  1112. data/public/bcms/ckeditor/tests/yuitest.js +75 -0
  1113. data/public/bcms/ckeditor/themes/default/theme.js +232 -0
  1114. data/public/images/cms/administration/user_browser_bg.gif +0 -0
  1115. data/public/images/cms/bg.png +0 -0
  1116. data/public/images/cms/bl_curve.png +0 -0
  1117. data/public/images/cms/bottom_cap.png +0 -0
  1118. data/public/images/cms/bottom_cap_content.png +0 -0
  1119. data/public/images/cms/browse.gif +0 -0
  1120. data/public/images/cms/browser_media_logo.png +0 -0
  1121. data/public/images/cms/browsercms_logo.png +0 -0
  1122. data/public/images/cms/buttons/button.png +0 -0
  1123. data/public/images/cms/buttons/button_bg.png +0 -0
  1124. data/public/images/cms/buttons/button_cap.png +0 -0
  1125. data/public/images/cms/buttons/button_cap_h.png +0 -0
  1126. data/public/images/cms/buttons/button_cap_off.gif +0 -0
  1127. data/public/images/cms/buttons/button_cap_off_middle.gif +0 -0
  1128. data/public/images/cms/buttons/button_h.png +0 -0
  1129. data/public/images/cms/buttons/button_left_bg.png +0 -0
  1130. data/public/images/cms/buttons/button_off.png +0 -0
  1131. data/public/images/cms/buttons/button_off_middle.png +0 -0
  1132. data/public/images/cms/buttons/delete_x.png +0 -0
  1133. data/public/images/cms/buttons/delete_x_disabled.png +0 -0
  1134. data/public/images/cms/buttons/delete_x_h.png +0 -0
  1135. data/public/images/cms/buttons/sm_button.gif +0 -0
  1136. data/public/images/cms/buttons/sm_button_2.gif +0 -0
  1137. data/public/images/cms/buttons/sm_button_2_h.gif +0 -0
  1138. data/public/images/cms/buttons/sm_button_h.gif +0 -0
  1139. data/public/images/cms/containers/add.gif +0 -0
  1140. data/public/images/cms/containers/alpha.png +0 -0
  1141. data/public/images/cms/containers/beta.png +0 -0
  1142. data/public/images/cms/containers/delete.gif +0 -0
  1143. data/public/images/cms/containers/down.gif +0 -0
  1144. data/public/images/cms/containers/edit.gif +0 -0
  1145. data/public/images/cms/containers/up.gif +0 -0
  1146. data/public/images/cms/containers/view.gif +0 -0
  1147. data/public/images/cms/content_bg.gif +0 -0
  1148. data/public/images/cms/dashboard/bottom_cap.png +0 -0
  1149. data/public/images/cms/dashboard/bottom_cap_content.png +0 -0
  1150. data/public/images/cms/dashboard/header_bg.gif +0 -0
  1151. data/public/images/cms/dashboard/header_left_bg.gif +0 -0
  1152. data/public/images/cms/dashboard/table_header_bg.gif +0 -0
  1153. data/public/images/cms/dashboard/top_cap.png +0 -0
  1154. data/public/images/cms/dashed.gif +0 -0
  1155. data/public/images/cms/datepicker/clear.gif +0 -0
  1156. data/public/images/cms/datepicker/close.gif +0 -0
  1157. data/public/images/cms/dk_button_l.gif +0 -0
  1158. data/public/images/cms/dk_button_r.gif +0 -0
  1159. data/public/images/cms/dot.png +0 -0
  1160. data/public/images/cms/draft_status.gif +0 -0
  1161. data/public/images/cms/gray_long_bg.gif +0 -0
  1162. data/public/images/cms/icons/actions/add.png +0 -0
  1163. data/public/images/cms/icons/actions/config.png +0 -0
  1164. data/public/images/cms/icons/actions/connect.png +0 -0
  1165. data/public/images/cms/icons/actions/delete.png +0 -0
  1166. data/public/images/cms/icons/actions/down.png +0 -0
  1167. data/public/images/cms/icons/actions/edit.png +0 -0
  1168. data/public/images/cms/icons/actions/folder.png +0 -0
  1169. data/public/images/cms/icons/actions/folder_add.png +0 -0
  1170. data/public/images/cms/icons/actions/folder_delete.png +0 -0
  1171. data/public/images/cms/icons/actions/folder_edit.png +0 -0
  1172. data/public/images/cms/icons/actions/folder_move.png +0 -0
  1173. data/public/images/cms/icons/actions/folder_open.png +0 -0
  1174. data/public/images/cms/icons/actions/history.png +0 -0
  1175. data/public/images/cms/icons/actions/home.png +0 -0
  1176. data/public/images/cms/icons/actions/left.png +0 -0
  1177. data/public/images/cms/icons/actions/link.png +0 -0
  1178. data/public/images/cms/icons/actions/page.png +0 -0
  1179. data/public/images/cms/icons/actions/page_add.png +0 -0
  1180. data/public/images/cms/icons/actions/page_edit.png +0 -0
  1181. data/public/images/cms/icons/actions/page_move.png +0 -0
  1182. data/public/images/cms/icons/actions/redo.png +0 -0
  1183. data/public/images/cms/icons/actions/refresh.png +0 -0
  1184. data/public/images/cms/icons/actions/right.png +0 -0
  1185. data/public/images/cms/icons/actions/root_folder.png +0 -0
  1186. data/public/images/cms/icons/actions/root_link.png +0 -0
  1187. data/public/images/cms/icons/actions/root_page.png +0 -0
  1188. data/public/images/cms/icons/actions/undo.png +0 -0
  1189. data/public/images/cms/icons/actions/up.png +0 -0
  1190. data/public/images/cms/icons/actions/view.png +0 -0
  1191. data/public/images/cms/icons/file_types/doc.png +0 -0
  1192. data/public/images/cms/icons/file_types/file.png +0 -0
  1193. data/public/images/cms/icons/file_types/gif.png +0 -0
  1194. data/public/images/cms/icons/file_types/htm.png +0 -0
  1195. data/public/images/cms/icons/file_types/pdf.png +0 -0
  1196. data/public/images/cms/icons/file_types/ppt.png +0 -0
  1197. data/public/images/cms/icons/file_types/swf.png +0 -0
  1198. data/public/images/cms/icons/file_types/txt.png +0 -0
  1199. data/public/images/cms/icons/file_types/xls.png +0 -0
  1200. data/public/images/cms/icons/file_types/xml.png +0 -0
  1201. data/public/images/cms/icons/file_types/zip.png +0 -0
  1202. data/public/images/cms/icons/status/archived.gif +0 -0
  1203. data/public/images/cms/icons/status/draft.gif +0 -0
  1204. data/public/images/cms/icons/status/hidden.gif +0 -0
  1205. data/public/images/cms/icons/status/locked.gif +0 -0
  1206. data/public/images/cms/icons/status/published.gif +0 -0
  1207. data/public/images/cms/icons/status/unlocked.gif +0 -0
  1208. data/public/images/cms/icons/user.png +0 -0
  1209. data/public/images/cms/locales/en/nav_admin.gif +0 -0
  1210. data/public/images/cms/locales/en/nav_admin_h.gif +0 -0
  1211. data/public/images/cms/locales/en/nav_admin_on.gif +0 -0
  1212. data/public/images/cms/locales/en/nav_content_library.gif +0 -0
  1213. data/public/images/cms/locales/en/nav_content_library_h.gif +0 -0
  1214. data/public/images/cms/locales/en/nav_content_library_on.gif +0 -0
  1215. data/public/images/cms/locales/en/nav_dash.gif +0 -0
  1216. data/public/images/cms/locales/en/nav_dash_h.gif +0 -0
  1217. data/public/images/cms/locales/en/nav_dash_on.gif +0 -0
  1218. data/public/images/cms/locales/en/nav_sitemap.gif +0 -0
  1219. data/public/images/cms/locales/en/nav_sitemap_h.gif +0 -0
  1220. data/public/images/cms/locales/en/nav_sitemap_on.gif +0 -0
  1221. data/public/images/cms/locales/es/nav_admin.gif +0 -0
  1222. data/public/images/cms/locales/es/nav_admin_h.gif +0 -0
  1223. data/public/images/cms/locales/es/nav_admin_on.gif +0 -0
  1224. data/public/images/cms/locales/es/nav_content_library.gif +0 -0
  1225. data/public/images/cms/locales/es/nav_content_library_h.gif +0 -0
  1226. data/public/images/cms/locales/es/nav_content_library_on.gif +0 -0
  1227. data/public/images/cms/locales/es/nav_dash.gif +0 -0
  1228. data/public/images/cms/locales/es/nav_dash_h.gif +0 -0
  1229. data/public/images/cms/locales/es/nav_dash_on.gif +0 -0
  1230. data/public/images/cms/locales/es/nav_sitemap.gif +0 -0
  1231. data/public/images/cms/locales/es/nav_sitemap_h.gif +0 -0
  1232. data/public/images/cms/locales/es/nav_sitemap_on.gif +0 -0
  1233. data/public/images/cms/login_bg.jpg +0 -0
  1234. data/public/images/cms/login_bottom.jpg +0 -0
  1235. data/public/images/cms/login_top.gif +0 -0
  1236. data/public/images/cms/lt_button_bg.gif +0 -0
  1237. data/public/images/cms/lt_button_l.gif +0 -0
  1238. data/public/images/cms/lt_button_r.gif +0 -0
  1239. data/public/images/cms/menu/block_cap_h.gif +0 -0
  1240. data/public/images/cms/menu/bottom_cap.png +0 -0
  1241. data/public/images/cms/menu/bottom_cap_menu.png +0 -0
  1242. data/public/images/cms/menu/bottom_cap_menu_first.png +0 -0
  1243. data/public/images/cms/menu/menu_header_first_bg.gif +0 -0
  1244. data/public/images/cms/menu/selected_block_cap.gif +0 -0
  1245. data/public/images/cms/menu/top_cap.png +0 -0
  1246. data/public/images/cms/menu/top_cap_menu_header.png +0 -0
  1247. data/public/images/cms/menu.png +0 -0
  1248. data/public/images/cms/menu_h.gif +0 -0
  1249. data/public/images/cms/menu_header.png +0 -0
  1250. data/public/images/cms/menu_open.png +0 -0
  1251. data/public/images/cms/menu_open_bg.gif +0 -0
  1252. data/public/images/cms/nav/on_bg.gif +0 -0
  1253. data/public/images/cms/nav.png +0 -0
  1254. data/public/images/cms/nav_admin.gif +0 -0
  1255. data/public/images/cms/nav_admin_h.gif +0 -0
  1256. data/public/images/cms/nav_admin_on.gif +0 -0
  1257. data/public/images/cms/nav_cap.png +0 -0
  1258. data/public/images/cms/nav_cap_h.gif +0 -0
  1259. data/public/images/cms/nav_content_library.gif +0 -0
  1260. data/public/images/cms/nav_content_library_h.gif +0 -0
  1261. data/public/images/cms/nav_content_library_on.gif +0 -0
  1262. data/public/images/cms/nav_dash.gif +0 -0
  1263. data/public/images/cms/nav_dash_h.gif +0 -0
  1264. data/public/images/cms/nav_dash_on.gif +0 -0
  1265. data/public/images/cms/nav_h.gif +0 -0
  1266. data/public/images/cms/nav_sitemap.gif +0 -0
  1267. data/public/images/cms/nav_sitemap_h.gif +0 -0
  1268. data/public/images/cms/nav_sitemap_on.gif +0 -0
  1269. data/public/images/cms/page_toolbar/page_toolbar_bg.gif +0 -0
  1270. data/public/images/cms/page_toolbar/page_toolbar_inset_bg.gif +0 -0
  1271. data/public/images/cms/page_toolbar/page_toolbar_inset_draft_bg.gif +0 -0
  1272. data/public/images/cms/page_toolbar/page_toolbar_inset_draft_l.gif +0 -0
  1273. data/public/images/cms/page_toolbar/page_toolbar_inset_draft_r.gif +0 -0
  1274. data/public/images/cms/page_toolbar/page_toolbar_inset_l.gif +0 -0
  1275. data/public/images/cms/page_toolbar/page_toolbar_inset_published_bg.gif +0 -0
  1276. data/public/images/cms/page_toolbar/page_toolbar_inset_published_l.gif +0 -0
  1277. data/public/images/cms/page_toolbar/page_toolbar_inset_published_r.gif +0 -0
  1278. data/public/images/cms/page_toolbar/page_toolbar_inset_r.gif +0 -0
  1279. data/public/images/cms/page_toolbar/page_toolbar_l.gif +0 -0
  1280. data/public/images/cms/page_toolbar/page_toolbar_r.gif +0 -0
  1281. data/public/images/cms/page_toolbar/status_draft_bg.gif +0 -0
  1282. data/public/images/cms/page_toolbar/status_draft_l.gif +0 -0
  1283. data/public/images/cms/page_toolbar/status_l.gif +0 -0
  1284. data/public/images/cms/page_toolbar/status_published_bg.gif +0 -0
  1285. data/public/images/cms/page_toolbar/status_published_l.gif +0 -0
  1286. data/public/images/cms/page_toolbar/visual_editor_bg.gif +0 -0
  1287. data/public/images/cms/page_toolbar/visual_editor_end.gif +0 -0
  1288. data/public/images/cms/page_toolbar/visual_editor_r.gif +0 -0
  1289. data/public/images/cms/page_toolbar/visual_editor_state_bg.gif +0 -0
  1290. data/public/images/cms/pages/add_connectable.gif +0 -0
  1291. data/public/images/cms/pages/connect_connectable.gif +0 -0
  1292. data/public/images/cms/pages/container_border.gif +0 -0
  1293. data/public/images/cms/pages/container_border_l.gif +0 -0
  1294. data/public/images/cms/pages/container_border_r.gif +0 -0
  1295. data/public/images/cms/pages/delete_connectable.gif +0 -0
  1296. data/public/images/cms/pages/down_connectable.gif +0 -0
  1297. data/public/images/cms/pages/down_connectable_disabled.gif +0 -0
  1298. data/public/images/cms/pages/edit_connectable.gif +0 -0
  1299. data/public/images/cms/pages/edit_connectable_2.gif +0 -0
  1300. data/public/images/cms/pages/show_connectable.gif +0 -0
  1301. data/public/images/cms/pages/up_connectable.gif +0 -0
  1302. data/public/images/cms/pages/up_connectable_disabled.gif +0 -0
  1303. data/public/images/cms/pagination/first.gif +0 -0
  1304. data/public/images/cms/pagination/first_h.gif +0 -0
  1305. data/public/images/cms/pagination/input.gif +0 -0
  1306. data/public/images/cms/pagination/last.gif +0 -0
  1307. data/public/images/cms/pagination/last_h.gif +0 -0
  1308. data/public/images/cms/pagination/next.gif +0 -0
  1309. data/public/images/cms/pagination/next_h.gif +0 -0
  1310. data/public/images/cms/pagination/previous.gif +0 -0
  1311. data/public/images/cms/pagination/previous_h.gif +0 -0
  1312. data/public/images/cms/published_status.gif +0 -0
  1313. data/public/images/cms/search.png +0 -0
  1314. data/public/images/cms/search_submit.gif +0 -0
  1315. data/public/images/cms/search_submit_h.gif +0 -0
  1316. data/public/images/cms/searchbox_gradient.gif +0 -0
  1317. data/public/images/cms/select_bg.gif +0 -0
  1318. data/public/images/cms/select_bg_2.gif +0 -0
  1319. data/public/images/cms/sitemap/bottom_cap.png +0 -0
  1320. data/public/images/cms/sitemap/buffer_caps.png +0 -0
  1321. data/public/images/cms/sitemap/contract.png +0 -0
  1322. data/public/images/cms/sitemap/corners.gif +0 -0
  1323. data/public/images/cms/sitemap/corners_hover.gif +0 -0
  1324. data/public/images/cms/sitemap/divider.gif +0 -0
  1325. data/public/images/cms/sitemap/expand.png +0 -0
  1326. data/public/images/cms/sitemap/gradient.gif +0 -0
  1327. data/public/images/cms/sitemap/gray_contract.png +0 -0
  1328. data/public/images/cms/sitemap/gray_expand.png +0 -0
  1329. data/public/images/cms/sitemap/no_contents.png +0 -0
  1330. data/public/images/cms/sitemap/site_root_cap.png +0 -0
  1331. data/public/images/cms/sitemap/tooltip.gif +0 -0
  1332. data/public/images/cms/sitemap/top_cap_content.png +0 -0
  1333. data/public/images/cms/solid.gif +0 -0
  1334. data/public/images/cms/table/bl.gif +0 -0
  1335. data/public/images/cms/table/br.gif +0 -0
  1336. data/public/images/cms/table/divider.gif +0 -0
  1337. data/public/images/cms/table/td_cap_first_h.gif +0 -0
  1338. data/public/images/cms/table/td_cap_first_s.gif +0 -0
  1339. data/public/images/cms/table/td_cap_last_h.gif +0 -0
  1340. data/public/images/cms/table/td_cap_last_s.gif +0 -0
  1341. data/public/images/cms/table/td_last_bg.gif +0 -0
  1342. data/public/images/cms/table/th_bg.gif +0 -0
  1343. data/public/images/cms/table/th_divider.gif +0 -0
  1344. data/public/images/cms/table/th_last_bg.gif +0 -0
  1345. data/public/images/cms/table/tl.gif +0 -0
  1346. data/public/images/cms/table/tr.gif +0 -0
  1347. data/public/images/cms/table/tr_bg.gif +0 -0
  1348. data/public/images/cms/thickbox/loadingAnimation.gif +0 -0
  1349. data/public/images/cms/thickbox/macFFBgHack.png +0 -0
  1350. data/public/images/cms/toolbar_bg.png +0 -0
  1351. data/public/images/cms/top_cap.png +0 -0
  1352. data/public/images/cms/top_cap_content.png +0 -0
  1353. data/public/images/cms/top_cap_menu_header.png +0 -0
  1354. data/public/images/cms/user_search_submit.gif +0 -0
  1355. data/public/images/cms/usercontrols_bg.png +0 -0
  1356. data/public/images/cms/usercontrols_bg_cap.png +0 -0
  1357. data/public/javascripts/cms/application.js +148 -0
  1358. data/public/javascripts/cms/content_library.js +36 -0
  1359. data/public/javascripts/cms/sitemap.js +438 -0
  1360. data/public/javascripts/jquery-ui.js +591 -0
  1361. data/public/javascripts/jquery.contextMenu.js +211 -0
  1362. data/public/javascripts/jquery.cookie.js +96 -0
  1363. data/public/javascripts/jquery.dimensions.js +119 -0
  1364. data/public/javascripts/jquery.js +11 -0
  1365. data/public/javascripts/jquery.selectbox-0.5.js +209 -0
  1366. data/public/javascripts/jquery.taglist.js +136 -0
  1367. data/public/javascripts/jquery.thickbox.js +10 -0
  1368. data/public/site/customconfig.js +1 -0
  1369. data/public/stylesheets/cms/administration.css +91 -0
  1370. data/public/stylesheets/cms/application.css +166 -0
  1371. data/public/stylesheets/cms/block.css +26 -0
  1372. data/public/stylesheets/cms/buttons.css +120 -0
  1373. data/public/stylesheets/cms/content_library.css +139 -0
  1374. data/public/stylesheets/cms/content_types.css +4 -0
  1375. data/public/stylesheets/cms/dashboard.css +118 -0
  1376. data/public/stylesheets/cms/data_table.css +156 -0
  1377. data/public/stylesheets/cms/date_picker.css +73 -0
  1378. data/public/stylesheets/cms/form_layout.css +279 -0
  1379. data/public/stylesheets/cms/jquery.contextMenu.css +61 -0
  1380. data/public/stylesheets/cms/login.css +78 -0
  1381. data/public/stylesheets/cms/menu.css +116 -0
  1382. data/public/stylesheets/cms/nav.css +99 -0
  1383. data/public/stylesheets/cms/page_toolbar.css +135 -0
  1384. data/public/stylesheets/cms/reset.css +46 -0
  1385. data/public/stylesheets/cms/selectbox.css +56 -0
  1386. data/public/stylesheets/cms/sitemap.css +390 -0
  1387. data/public/stylesheets/cms/taglist.css +18 -0
  1388. data/public/stylesheets/cms/thickbox.css +163 -0
  1389. data/public/themes/blue_steel/images/logo.jpg +0 -0
  1390. data/public/themes/blue_steel/images/splash.jpg +0 -0
  1391. data/public/themes/blue_steel/stylesheets/style.css +257 -0
  1392. data/rails/init.rb +3 -0
  1393. data/rails_generators/browser_cms/USAGE +2 -0
  1394. data/rails_generators/browser_cms/browser_cms_generator.rb +35 -0
  1395. data/rails_generators/browser_cms/templates/README +1 -0
  1396. data/rails_generators/browser_cms_demo_site/USAGE +1 -0
  1397. data/rails_generators/browser_cms_demo_site/browser_cms_demo_site_generator.rb +63 -0
  1398. data/rails_generators/browser_cms_demo_site/templates/migration.rb +21 -0
  1399. data/rails_generators/content_block/USAGE +32 -0
  1400. data/rails_generators/content_block/content_block_generator.rb +69 -0
  1401. data/rails_generators/content_block/templates/_form.html.erb +22 -0
  1402. data/rails_generators/content_block/templates/content_block.rb +27 -0
  1403. data/rails_generators/content_block/templates/controller.rb +2 -0
  1404. data/rails_generators/content_block/templates/functional_test.erb +11 -0
  1405. data/rails_generators/content_block/templates/migration.rb +38 -0
  1406. data/rails_generators/content_block/templates/render.html.erb +14 -0
  1407. data/rails_generators/content_block/templates/unit_test.erb +9 -0
  1408. data/rails_generators/portlet/USAGE +39 -0
  1409. data/rails_generators/portlet/portlet_generator.rb +35 -0
  1410. data/rails_generators/portlet/templates/_form.html.erb +5 -0
  1411. data/rails_generators/portlet/templates/portlet.rb +10 -0
  1412. data/rails_generators/portlet/templates/portlet_helper.rb +5 -0
  1413. data/rails_generators/portlet/templates/render.html.erb +1 -0
  1414. data/rails_generators/portlet/templates/unit_test.erb +9 -0
  1415. data/rails_generators/template/USAGE +10 -0
  1416. data/rails_generators/template/template_generator.rb +18 -0
  1417. data/rails_generators/template/templates/template.erb +3 -0
  1418. data/templates/blank.rb +46 -0
  1419. data/templates/demo.rb +38 -0
  1420. data/templates/module.rb +956 -0
  1421. data/test/custom_assertions.rb +68 -0
  1422. data/test/factories.rb +109 -0
  1423. data/test/functional/cms/cache_controller_test.rb +14 -0
  1424. data/test/functional/cms/categories_controller_test.rb +25 -0
  1425. data/test/functional/cms/connectors_controller_test.rb +60 -0
  1426. data/test/functional/cms/content_block_controller_test.rb +120 -0
  1427. data/test/functional/cms/content_controller_test.rb +434 -0
  1428. data/test/functional/cms/content_types_controller_test.rb +18 -0
  1429. data/test/functional/cms/dashboard_controller_test.rb +16 -0
  1430. data/test/functional/cms/dynamic_views_controller_test.rb +28 -0
  1431. data/test/functional/cms/file_blocks_controller_test.rb +51 -0
  1432. data/test/functional/cms/groups_controller_test.rb +50 -0
  1433. data/test/functional/cms/home_controller_test.rb +156 -0
  1434. data/test/functional/cms/html_blocks_controller_test.rb +163 -0
  1435. data/test/functional/cms/image_blocks_controller_test.rb +75 -0
  1436. data/test/functional/cms/links_controller_test.rb +148 -0
  1437. data/test/functional/cms/pages_controller_test.rb +227 -0
  1438. data/test/functional/cms/portlets_controller_test.rb +67 -0
  1439. data/test/functional/cms/section_nodes_controller_test.rb +84 -0
  1440. data/test/functional/cms/sections_controller_test.rb +225 -0
  1441. data/test/functional/cms/sessions_controller_test.rb +76 -0
  1442. data/test/functional/cms/toolbar_controller_test.rb +64 -0
  1443. data/test/functional/cms/users_controller_test.rb +231 -0
  1444. data/test/functional/tests/pretend_controller_test.rb +54 -0
  1445. data/test/integration/cms/ckeditor_test.rb +27 -0
  1446. data/test/integration/cms/password_management_test.rb +56 -0
  1447. data/test/integration/login_test.rb +14 -0
  1448. data/test/test_helper.rb +175 -0
  1449. data/test/test_logging.rb +67 -0
  1450. data/test/unit/behaviors/attaching_test.rb +359 -0
  1451. data/test/unit/behaviors/dynamic_attributes_test.rb +38 -0
  1452. data/test/unit/behaviors/publishable_test.rb +53 -0
  1453. data/test/unit/behaviors/searching_test.rb +102 -0
  1454. data/test/unit/behaviors/taggable_test.rb +109 -0
  1455. data/test/unit/extensions/active_record/base_test.rb +10 -0
  1456. data/test/unit/extensions/hash_test.rb +17 -0
  1457. data/test/unit/extensions/integer_test.rb +10 -0
  1458. data/test/unit/helpers/application_helper_test.rb +77 -0
  1459. data/test/unit/helpers/form_builder_test.rb +36 -0
  1460. data/test/unit/helpers/menu_helper_test.rb +239 -0
  1461. data/test/unit/helpers/page_helper_test.rb +65 -0
  1462. data/test/unit/helpers/path_helper_test.rb +57 -0
  1463. data/test/unit/lib/acts_as_content_page_test.rb +72 -0
  1464. data/test/unit/lib/cms/authentication/controller_test.rb +20 -0
  1465. data/test/unit/lib/cms_domain_support_test.rb +43 -0
  1466. data/test/unit/lib/command_line_test.rb +70 -0
  1467. data/test/unit/lib/content_block_test.rb +203 -0
  1468. data/test/unit/lib/content_rendering_support_test.rb +40 -0
  1469. data/test/unit/lib/generators_test.rb +40 -0
  1470. data/test/unit/lib/routes_test.rb +57 -0
  1471. data/test/unit/models/attachment_test.rb +96 -0
  1472. data/test/unit/models/category_test.rb +40 -0
  1473. data/test/unit/models/category_type_test.rb +8 -0
  1474. data/test/unit/models/connector_test.rb +152 -0
  1475. data/test/unit/models/content_type_test.rb +56 -0
  1476. data/test/unit/models/email_page_portlet_test.rb +14 -0
  1477. data/test/unit/models/file_block_test.rb +211 -0
  1478. data/test/unit/models/group_test.rb +13 -0
  1479. data/test/unit/models/html_block_test.rb +102 -0
  1480. data/test/unit/models/link_test.rb +8 -0
  1481. data/test/unit/models/page_partial_test.rb +29 -0
  1482. data/test/unit/models/page_route_test.rb +29 -0
  1483. data/test/unit/models/page_template_test.rb +40 -0
  1484. data/test/unit/models/page_test.rb +726 -0
  1485. data/test/unit/models/permission_test.rb +10 -0
  1486. data/test/unit/models/portlet_test.rb +69 -0
  1487. data/test/unit/models/section_node_test.rb +92 -0
  1488. data/test/unit/models/sections_test.rb +164 -0
  1489. data/test/unit/models/site_test.rb +50 -0
  1490. data/test/unit/models/task_test.rb +141 -0
  1491. data/test/unit/models/user_test.rb +342 -0
  1492. data/test/unit/schema_statements_test.rb +41 -0
  1493. metadata +1552 -0
@@ -0,0 +1,507 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5
+ <title>Templates Guide</title>
6
+ <link rel="stylesheet" type="text/css" href="files/stylesheets/syntax.css" />
7
+ <script type="text/javascript" src="files/javascripts/code_highlighter.js"></script>
8
+ <script type="text/javascript" src="files/javascripts/highlighters.js"></script>
9
+ <style type="text/css">
10
+ body {
11
+ background: #FFFFFF url(images/bg.png) repeat-x scroll 0 0;
12
+ font-family: "Trebuchet MS", Helvetica, Verdana, Arial, sans-serif;
13
+ margin: 0;
14
+ padding: 0;
15
+ }
16
+
17
+ #page {
18
+ margin: 0 auto;
19
+ text-align: left;
20
+ width: 1000px;
21
+ }
22
+
23
+ #header {
24
+ height: 110px;
25
+ }
26
+
27
+ div.top_cap {
28
+ background: transparent url(images/top_cap.png) no-repeat scroll 0 0;
29
+ height: 10px;
30
+ }
31
+
32
+ #contentwrap {
33
+ background: transparent url(images/dot.png) repeat scroll 0 0;
34
+ float: left;
35
+ width: 1000px;
36
+ }
37
+
38
+ div.bottom_cap {
39
+ background: transparent url(images/bottom_cap.png) no-repeat scroll 0 0;
40
+ height: 9px;
41
+ }
42
+
43
+ div.top_cap_content {
44
+ background: transparent url(images/top_cap_content.png) no-repeat scroll 0 0;
45
+ height: 5px;
46
+ }
47
+
48
+ #content {
49
+ background-color: #FFFFFF;
50
+ margin: 0 5px;
51
+ padding: 0 10px;
52
+ }
53
+
54
+ div.title {
55
+ padding: 20px;
56
+ }
57
+
58
+ div.title h1 {
59
+ border-bottom: 3px solid #505358;
60
+ color: #FFFFFF;
61
+ font-size: 24pt;
62
+ font-weight: normal;
63
+ line-height: 1;
64
+ margin: 0 0 10px;
65
+ padding-bottom: 10px;
66
+ }
67
+
68
+ td.sidebar {
69
+ font-size: 8pt;
70
+ width: 165px;
71
+ padding: 5px;
72
+ }
73
+
74
+ td.sidebar ol {
75
+ margin-left: 20px;
76
+ padding: 0;
77
+ line-height: 1.5;
78
+ }
79
+
80
+ td.sidebar ol li {
81
+ margin: 0;
82
+ padding: 0;
83
+ }
84
+
85
+ td.sidebar ol li ul {
86
+ list-style-type: none;
87
+ padding-left: 10px;
88
+ }
89
+
90
+ td.guides {
91
+ font-size: 10pt;
92
+ width: 800px;
93
+ padding: 10px;
94
+ }
95
+
96
+ .code_container {
97
+ padding: 10px;
98
+ background: #eee;
99
+ border: 1px solid #ccc;
100
+ overflow: auto;
101
+ width: 760px;
102
+ }
103
+
104
+ pre, code {
105
+ overflow: auto;
106
+ white-space:pre;
107
+ }
108
+ .note {
109
+ -moz-background-clip:border;
110
+ -moz-background-inline-policy:continuous;
111
+ -moz-background-origin:padding;
112
+ background:#FFF9D8 url(../images/tab_note.gif) no-repeat scroll left top;
113
+ border:medium none;
114
+ margin:0.25em 0 1.5em;
115
+ padding:1em 1em 0.25em 48px;
116
+ }
117
+ </style>
118
+ </head>
119
+ <body>
120
+ <div id="page">
121
+ <div id="header">
122
+ <a href="index.html"><img style="border:0px" src="images/browsercms_logo.png" alt="BrowserCMS"/></a>
123
+ </div>
124
+ <div id="main">
125
+ <div class="top_cap"></div>
126
+ <div id="contentwrap">
127
+ <div class="title">
128
+ <h1>Templates Guide</h1>
129
+ </div>
130
+ <div class="top_cap_content"></div>
131
+ <div id="content">
132
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
133
+ <tr>
134
+ <td class="sidebar" valign="top">
135
+ <div id="subCol">
136
+ <h3 class="chapter"><img src="images/chapters_icon.gif" alt="" />Chapters</h3>
137
+ <ol class="chapters">
138
+ <li><a href="#introduction">Introduction</a><ul><li><a href="#typical-design-process">Typical Design Process</a></li><li><a href="#design-considerations">Design Considerations</a></li></ul></li><li><a href="#creating-a-page-template">Creating a Page Template</a><ul><li><a href="#files-or-content">Files or Content?</a></li><li><a href="#understanding-containers">Understanding Containers</a></li><li><a href="#adding-a-sidebar-container">Adding A Sidebar Container</a></li></ul></li><li><a href="#tags-quick-reference">Tags Quick Reference</a><ul><li><a href="#required-tags">Required Tags</a></li><li><a href="#container-tag"><tt>container</tt> Tag</a></li><li><a href="#cms-toolbar-tag"><tt>cms_toolbar</tt> Tag</a></li><li><a href="#html-head-tag"><span class="caps">HTML</span> Head Tag</a></li><li><a href="#page-title-tag"><tt>page_title</tt> Tag</a></li><li><a href="#current-page-tag"><tt>current_page</tt> Tag</a></li><li><a href="#render-portlet-tag"><tt>render_portlet</tt> Tag</a></li><li><a href="#render-connectable-tag"><tt>render_connectable</tt> Tag</a></li></ul></li><li><a href="#navigation">Navigation</a><ul><li><a href="#basic-rules-of-menus">Basic Rules of Menus</a></li><li><a href="#using-menus">Using Menus</a></li><li><a href="#how-deep-should-menus-be">How Deep Should Menus Be?</a></li><li><a href="#primary-navigation">Primary Navigation</a></li><li><a href="#sub-navigation">Sub Navigation</a></li><li><a href="#site-maps-and-flyout-menus">Site Maps and Flyout Menus</a></li><li><a href="#using-breadcrumbs">Using Breadcrumbs</a></li></ul></li><li><a href="#using-partials">Using Partials</a><ul></ul></li></ol></div>
139
+ </td>
140
+ <td class="guides">
141
+ <h2>Templates Guide</h2>
142
+ <p>This guide covers how to set up templates for BrowserCMS. After reading this guide, you should understand how to:</p>
143
+ <ul>
144
+ <li>How to create page templates</li>
145
+ <li>How to take advantage of dynamic menus</li>
146
+ <li>How to reuse common bits of html with page partials</li>
147
+ <li>How to use tags to add dynamic content to templates and partials</li>
148
+ </ul>
149
+ <p>This guide is for BrowserCMS <strong>3.1</strong>. Some code shown here may not work with older versions of BrowserCMS.</p>
150
+ <h3 id="introduction">1 Introduction</h3>
151
+ <p>One of the primary goals of implementing a content management system is to separate Design from Content. This allows designers to provide an attractive design that users can easily apply. A <span class="caps">CMS</span> can be thought of as a &#8216;Web Page&#8217; factory, where designers can create the template (i.e. the molds) that users without design knowledge can use to stamp out new pages.</p>
152
+ <p>BrowserCMS supports this concept by the use of page templates. Each page within the site has a single page template that governs it&#8217;s layout. Templates are essentially html pages with the editable areas specified. A template can be anything from a basic two column subpage to homepage design with a half dozen separate editable areas. BrowserCMS supports an &#8216;in-context&#8217; page editor, that allows users to see which areas of the page are editable.</p>
153
+ <h4 id="typical-design-process">1.1 Typical Design Process</h4>
154
+ <p>When you are developing a site with BrowserCMS, there are a lot of ways to organize and design the site. One of the goals of the project is to support highly graphical designs that pass through multiple team members hands. As such, the template creation process is optimized to mimic the steps that would work for any web development project, without constraining the design to fit the tool.</p>
155
+ <p>Here is an example of a web design process to create templates for BrowserCMS.</p>
156
+ <ol>
157
+ <li>A designer creates a Photoshop (<span class="caps">PSD</span> or <span class="caps">JPG</span>) which represents the desire final look of a page.</li>
158
+ <li>A developer converts the <span class="caps">PSD</span> into a static <span class="caps">HTML</span> file which implements that design.</li>
159
+ <li>The developer can take this html file, add it to the <span class="caps">CMS</span> as a page template just by renaming it from .htm to .html.erb</li>
160
+ <li>The developer can add a few helper methods to the template replacing the &#8216;static&#8217; text to make it editable through the <span class="caps">CMS</span> interface.</li>
161
+ </ol>
162
+ <p>There are few additional considerations we will get into, but this basic process allows developers to work in a medium they are well trained in (<span class="caps">HTML</span> production) with minimal training on BrowserCMS itself. For the purposes of this document, assume there are three separate and distinct roles around creating a <span class="caps">CMS</span> site.</p>
163
+ <ol>
164
+ <li>Designer &#8211; A person in charge of defining the overall look and feel of the pages within a site. Produces a <span class="caps">PSD</span>.</li>
165
+ <li>Developer &#8211; A person in charge of converting the ideal look (<span class="caps">PSD</span>) into an <span class="caps">HTML</span> page and ultimately a <span class="caps">CMS</span> template.</li>
166
+ <li>Programmer &#8211; A person in charge of coding content types (blocks) and dynamic behavior (portlets).</li>
167
+ </ol>
168
+ <h4 id="design-considerations">1.2 Design Considerations</h4>
169
+ <p>There are some considerations that designers/developers should take into account if they want to get the maximum benefit from working w/ BrowserCMS. Here&#8217;s a quick list:</p>
170
+ <p>1. BrowserCMS can render menus (one or more levels deep) automatically from the site architecture. Developers should understand how menu code is generated when styling them, which happens in a <a href="http://www.csszengarden.com"><span class="caps">CSS</span> Zen Garden</a> style.
171
+ 2. The Site Map is how pages and sections are organized. Developers should understand how this will affect auto-generated menus.
172
+ 3. In addition to static content, the look of some areas of pages will be rendered dynamically by portlets and blocks. Developers may need to work with programmers to determine whether view code will be dynamically generated via portlets or statically placed by users.</p>
173
+ <h3 id="creating-a-page-template">2 Creating a Page Template</h3>
174
+ <p>There are two ways to create a template, as a file within the project (much like how Rails layouts work) or as content in the database. Let&#8217;s start with creating a file based template. Assuming we are starting from a new <em>blank</em> BrowserCMS project, lets create a template that will represent our subpages. Run the following from the command line:</p>
175
+ <div class="code_container"><code class="html">$ script/generate template subpage</code></div>
176
+ <p>This generates a file called <tt>app/views/layouts/templates/subpage.html.erb</tt>. For experience Rails developers, you will note that within the traditional <tt>layouts</tt> directory we have create a subdirectory called <tt>templates</tt>. All files placed within this directory are available as page templates with the UI. Open up this template file and it should look like this:</p>
177
+ <div class="code_container"><code class="html">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
178
+ &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
179
+ &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;
180
+ &lt;head&gt;
181
+ &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html;charset=utf-8&quot; /&gt;
182
+ &lt;title&gt;&lt;%= page_title %&gt;&lt;/title&gt;
183
+ &lt;%= yield :html_head %&gt;
184
+ &lt;/head&gt;
185
+ &lt;body style=&quot;margin: 0; padding: 0; text-align: center;&quot;&gt;
186
+ &lt;%= cms_toolbar %&gt;
187
+ &lt;div id=&quot;wrapper&quot; style=&quot;width: 700px; margin: 0 auto; text-align: left; padding: 30px&quot;&gt;
188
+ Breadcrumbs: &lt;%= render_breadcrumbs %&gt;
189
+ Main Menu: &lt;%= render_menu %&gt;
190
+ &lt;h1&gt;&lt;%= page_title %&gt;&lt;/h1&gt;
191
+ &lt;%= container :main %&gt;
192
+ &lt;/div&gt;
193
+ &lt;/body&gt;
194
+ &lt;/html&gt;</code></div>
195
+ <p>This is a bare bones <span class="caps">XHTML</span> template with one editable area (i.e. One Column). It has no <span class="caps">CSS</span> stylesheets or javascript. It&#8217;s about the simplest possible template we can have to create a renderable page in BrowserCMS.</p>
196
+ <h4 id="files-or-content">2.1 Files or Content?</h4>
197
+ <p>Since templates can stored as either files or database content (or a combination of both), site designers will need to decide which path they want to use. Ultimately, the decision is based on the question of <strong>who should be able to modify templates</strong>? On projects where site users have some <span class="caps">HTML</span> knowledge and want to be to update templates via the <span class="caps">CMS</span> UI, database templates may be appropriate. On other projects, where design is intended to more tightly controlled, file templates might be appropriate.</p>
198
+ <p>It&#8217;s also possible to start out using file templates for speed of development, and then migrate the content of the templates into the database before launch.</p>
199
+ <h4 id="understanding-containers">2.2 Understanding Containers</h4>
200
+ <p>There are a bits of ruby code (helpers) that our basic template has, but let&#8217;s focus on the <tt>container</tt> helper. Open up the <span class="caps">CMS</span> UI and go to <tt>/cms/sitemap</tt> and Add a New Page. Name it &#8216;About Us&#8217;, and select &#8216;Subpage&#8217; from the &#8216;Template&#8217; dropdown to use this new template. Click Save. You should see a mostly white page. Click the &#8216;Turn On&#8217; button in the upper right to enable the editor, and you should see a single grey box. This box is the <tt>container</tt> we defined in our template. Users can insert new or existing content into pages, and the containers determine where they go. Add some Text content to the page in this container.</p>
201
+ <div class='note'><p>Container are placeholders for content. When you have two pages that use the same template, they do not share the content. Putting some Text into the <tt>:main</tt> container of Page A doesn&#8217;t mean it will also appear on Page B just because that page also has a <tt>:main</tt> container.</p></div>
202
+ <h4 id="adding-a-sidebar-container">2.3 Adding A Sidebar Container</h4>
203
+ <p>Let&#8217;s alter our template to add a second column (i.e. Sidebar). Modify the <tt>subpage.html</tt> to look like the following:</p>
204
+ <div class="code_container"><code class="html">&lt;head&gt;
205
+ &lt;title&gt;&lt;%= page_title %&gt; | Our Fancy Site&lt;/title&gt;
206
+ &lt;style&gt;
207
+ body, html { margin: 0; padding: 0; text-align: center; }
208
+ #wrapper { width: 700px; margin: 0 auto; text-align: left; padding: 30px }
209
+ #main { float: left; width: 500px; }
210
+ #sidebar { float: right; padding: 0 30px 0 0; width: 150px;}
211
+ &lt;/style&gt;
212
+ &lt;%= yield :html_head %&gt;
213
+ &lt;/head&gt;
214
+ &lt;body&gt;
215
+ &lt;%= cms_toolbar %&gt;
216
+ &lt;div id=&quot;wrapper&quot;&gt;
217
+ &lt;div id=&quot;header&quot;&gt;
218
+ Breadcrumbs: &lt;%= render_breadcrumbs %&gt;
219
+ Main Menu: &lt;%= render_menu %&gt;
220
+ &lt;h1&gt;&lt;%= page_title %&gt;&lt;/h1&gt;
221
+ &lt;/div&gt;
222
+ &lt;div id=&quot;main&quot;&gt;&lt;%= container :main %&gt;&lt;/div&gt;
223
+ &lt;div id=&quot;sidebar&quot;&gt;&lt;%= container :sidebar %&gt;&lt;/div&gt;
224
+ &lt;/div&gt;
225
+ &lt;/body&gt;</code></div>
226
+ <p>We have added several <tt>div</tt> elements to the template to clearly define a header, main and sidebar areas of our page. We have also cleaned up the <span class="caps">CSS</span> placed in the <tt>head</tt> element of the page. This <span class="caps">CSS</span> could also be moved to an external stylesheet as well. Now refresh the page and you should see an additional column on the right with a new <tt>:sidebar</tt> container being rendered. The content placed in the <tt>:main</tt> container will still there, though moved around based on the <span class="caps">CSS</span> rules of the template.</p>
227
+ <p>Having seen the sample templates, it should be possible to construct <span class="caps">HTML</span> templates using typical <span class="caps">HTML</span> and <span class="caps">CSS</span>, place containers in them where content should appear and get a reasonable looking set of templates.</p>
228
+ <h3 id="tags-quick-reference">3 Tags Quick Reference</h3>
229
+ <p>This section covers a reference for all the tags (aka Helper Methods) that can be used in Page Templates to render various elements. Here is a quick list of the available tags, their purpose and whether they are required or not.</p>
230
+ <p>._ Name |<em>. Purpose | Required? |
231
+ | <tt>container</tt> | A named area that allows users to add/edit content | Yes |
232
+ | <tt>cms</em>toolbar</tt></notextile> | Renders the <span class="caps">CMS</span> toolbar controller required for editing and navigation. Should be very first element in <tt>body</tt> | Yes |
233
+ | <tt>yield :html_head | This allows the CMS to insert javascript and other information into the page. Should be last element in </tt>head+ | Yes |
234
+ | <tt>page_title</tt> | Inserts the &#8216;Name&#8217; of the page (or &#8216;Title&#8217; if it exists) | No |
235
+ | <tt>current_page</tt> | Returns a reference to the <tt>Page</tt> object that is currently being rendered | No |
236
+ | <tt>render_breadcrumbs</tt> | Generates breadcrumbs based on the current page and its location in the sitemap | No |
237
+ | <tt>render_menu</tt> | Generates a menu based on the current page and its location in the sitemap | No |
238
+ | <tt>render_portlet</tt> | Renders a specific portlet by name | No |
239
+ | <tt>render_connectable</tt> | Renders a specific content block | No |</p>
240
+ <p>In addition, since Page Templates are Rails layouts, you can make use of any of the Asset Tags&quot;:http://guides.rubyonrails.org/layouts_and_rendering.html#structuring-layouts like <tt>stylesheet_link_tag</tt> or <tt>image_tag</tt>.</p>
241
+ <h4 id="required-tags">3.1 Required Tags</h4>
242
+ <p>While most of the tags are optional, there are several tags which must be included or page template just won&#8217;t work correctly. Here&#8217;s the minimum necessary tags required.</p>
243
+ <p>1. <tt>yield :html_head</tt> &#8211; Leaving this out will cause problems with in page editing.
244
+ 2. <tt>cms_toolbar</tt> &#8211; Leaving this out will provide editing and navigation to other <span class="caps">CMS</span> pages.
245
+ 3. <tt>container</tt> &#8211; Having at least one (typically called <tt>:main</tt>) is required to allow content to be added to pages.</p>
246
+ <h4 id="container-tag">3.2 <tt>container</tt> Tag</h4>
247
+ <p>This tag is used to allow areas of the page to be editted and render through the <span class="caps">CMS</span>. It takes a single argument which is the name of the container. Template developers can name containers whatever they like, but its recommened that the names should generally reflect the area or purpose of a particular container.</p>
248
+ <div class="code_container"><code class="html">&lt;div&gt;&lt;%= container :main %&gt;&lt;/div&gt;
249
+ &lt;div&gt;&lt;%= container :footer %&gt;&lt;/div&gt;</code></div>
250
+ <p>Container names are just labels. So if you defined 5 containers on a template (header, footer, left, main, right), you could swap between any two templates which defined all those containers.</p>
251
+ <div class='note'><p>Be aware that if you add content to a page in a container (like <tt>:sidebar</tt>) then change a pages template to one which does not have that container, the content will be &#8216;orphaned&#8217;. To remove that content, you would need to swap back to the previous template, remove the content, then change back to the new template again.</p></div>
252
+ <h4 id="cms-toolbar-tag">3.3 <tt>cms_toolbar</tt> Tag</h4>
253
+ <p>This tag is how the toolbar is inserted into templates. It should be the first element in the <tt>body</tt> element of a page. In most cases, you can just use it as follows:</p>
254
+ <div class="code_container"><code class="html">&lt;body&gt;
255
+ &lt;%= cms_toolbar %&gt;
256
+ &lt;h2&gt;About Us&lt;/h2&gt;
257
+ &lt;!-- Text goes here --&gt;
258
+ &lt;/body&gt;</code></div>
259
+ <p>The toolbar is written out as an iframe which makes its less likely that styles/javascript will clash with the page being editted.</p>
260
+ <h4 id="html-head-tag">3.4 <span class="caps">HTML</span> Head Tag</h4>
261
+ <p>This tag is technically a standard <tt>yield</tt> call, with a particularly named <tt>:html_head</tt>. This tag must be included in all <span class="caps">CMS</span> templates to allow it to insert the necessary javascript and style elements. It should probably be the last element in <tt>head</tt> element of a page.</p>
262
+ <div class="code_container"><code class="html">&lt;head&gt;
263
+ &lt;title&gt;&lt;%= page_title %&gt;&lt;/title&gt;
264
+ &lt;%= yield :html_head %&gt;
265
+ &lt;/head&gt;</code></div>
266
+ <h4 id="page-title-tag">3.5 <tt>page_title</tt> Tag</h4>
267
+ <p>This tag will output the <tt>name</tt> attribute of the current page. If the <tt>title</tt> attribute is specified, it will output that instead. This allows users to have one label for a page appear in the navigation (navigation and the sitemap always use <tt>name</tt>) and another in the header or title bar on a page.</p>
268
+ <p>Example:</p>
269
+ <div class="code_container"><code class="html">&lt;title&gt;My Site | &lt;%= page_title %&gt;&lt;/title&gt;</code></div>
270
+ <p>This is using the page_title tag to title element of a page.</p>
271
+ <div class="code_container"><code class="html">&lt;h1&gt;&lt;%= page_title %&gt;&lt;/h1&gt;</code></div>
272
+ <p>Another common usage of <tt>page_title</tt> is for the H1 or H2 on a page.</p>
273
+ <h4 id="current-page-tag">3.6 <tt>current_page</tt> Tag</h4>
274
+ <p>This doesn&#8217;t render anything, but returns a reference to the current <tt>Page</tt> object that is being rendered. It can be used to access other attributes of the page, like the name of the section or the <tt>description</tt> of the Page. Here are some common examples:</p>
275
+ <div class="code_container"><code class="html">&lt;%= current_page.name %&gt;</code></div>
276
+ <p>This outputs the <tt>name</tt> attribute of the page, similar to how <tt>page_title</tt> works. You might do this if you had specified a <tt>title</tt> attribute for pages which was different than the <tt>name</tt>, but wanted to compare names.</p>
277
+ <div class="code_container"><code class="html">&lt;%= current_page.section.name %&gt;</code></div>
278
+ <p>This outputs the <tt>name</tt> of the current page&#8217;s section.</p>
279
+ <div class="code_container"><code class="html">&lt;% if current_page.top_level_section.name == 'About Us' %&gt;
280
+ &lt;%= image_tag &quot;/fancy/about_us_section_image.png&quot; %&gt;
281
+ &lt;% end %&gt;</code></div>
282
+ <p>This renders a specific image if the page is within the top level &#8216;About Us&#8217; section. The <tt>top_level_section</tt> method finds the very top level section for a give page, regardless of how far down it is in the sitemap. Useful for making comparisons based on the first level of navigation.</p>
283
+ <div class='note'><p>Any page or section attribute is reachable in the way. You will need to look at the <span class="caps">API</span> documentation for <tt>Page</tt> and <tt>Section</tt> to see all the available attributes.</p></div>
284
+ <h4 id="render-portlet-tag">3.7 <tt>render_portlet</tt> Tag</h4>
285
+ <p>This tag will render a portlet from a template. Normally portlets are placed individually on each page by users. This tag is useful for common elements that might appear on multiple pages throughout the site. An example of this might be a Login Portlet which should appear as part of the header on all pages. Here&#8217;s an example:</p>
286
+ <div class="code_container"><code class="html">&lt;%= render_portlet &quot;Nav Login Form&quot; %&gt;</code></div>
287
+ <p>The only argument to <tt>render_portlet</tt> is a name. This name will match the name specified in the UI when you add a portlet. You will need to create the portlet and name in appropriately for this tag to work. The portlet will render itself based on its template.</p>
288
+ <h4 id="render-connectable-tag">3.8 <tt>render_connectable</tt> Tag</h4>
289
+ <p>This tag can render a specific block in a page. It takes one argument, the block itself. This could be used to automatically include, say a footer, into a page as part of the template. For instance:</p>
290
+ <div class="code_container"><code class="html">&lt;% footer = HtmlBlock.find(12) %&gt;
291
+ &lt;%= render_connectable(footer) %&gt;</code></div>
292
+ <p>Here we use Active Record to query for a specific HtmlBlock (i.e. Text) with the id of 12. Then we pass it to <tt>render_connectable</tt> to display itself.</p>
293
+ <h3 id="navigation">4 Navigation</h3>
294
+ <p>Most websites typically features some form of navigation via menus and/or breadcrumbs. Some navigation is highly graphical and changes infrequently. Other&#8217;s might use drop downs (via Javascript), while still users have site maps that drill down to the deepest pages. BrowserCMS is designed to support many different navigation choices, including everything from hand coded horizontal navigation to dynamic left side menus.</p>
295
+ <p>One of the features that BrowserCMS provides is an menu and breadcrumb generation tags. These tags can automatically generate menus/breadcrumbs based on the current page. For breadcrumbs, they render linkable items for the page and its parents. For menus, it can show a page, all it&#8217;s siblings as well as highlight the currently selected sections. The primary advantage of this is for rendering menus which can frequently change, like section navigation. As pages are added and published in the sitemap, they will automatically appear in the menus.</p>
296
+ <h4 id="basic-rules-of-menus">4.1 Basic Rules of Menus</h4>
297
+ <p>Understanding dynamic menus can be tricky things, so you will likely need to experiment with them, but here are some basic rules to remember.</p>
298
+ <ol>
299
+ <li>Menus will automatically generate names and URLs based on the <tt>name</tt> and <tt>path</tt> attributes of pages in the sitemap.</li>
300
+ <li>Hidden pages/section are not shown. If you mark a page or section as &#8216;hidden&#8217; via the sitemap, it will never be shown in the menu.</li>
301
+ <li>Unpublished pages are not shown. If you change a page name or url, it won&#8217;t appear until the page is published.</li>
302
+ <li>Moving pages and sections around in the sitemap will reorder them in the menus automatically.</li>
303
+ </ol>
304
+ <p>Here&#8217;s an example of a site map representing part of the <a href="http://en.wikipedia.org/wiki/National_Football_Conference">National Football League&#8217;s</a> conference system. While not all readesr may be familiar with &#8216;American&#8217; football, it does provide a nice example of a tree structure that has multiple levels (Conferences &gt; Divisions &gt; Teams). We will use this sitemap in the following examples to highlight how to build menus.</p>
305
+ <p><img src="images/nfl_sitemap.png" alt="" /></p>
306
+ <h4 id="using-menus">4.2 Using Menus</h4>
307
+ <p>To render a menu, you can make use of the <tt>render_menu</tt> tag. It will generate <span class="caps">HTML</span> markup that can be styled via <span class="caps">CSS</span> to render either horizontal or vertical navigation.</p>
308
+ <div class="code_container"><code class="ruby">&lt;%= render_menu %&gt;</code></div>
309
+ <p>This would render a menu starting with all the top level sections, creating unordered lists as far down as the current page. If I navigate to the <em>Dallas</em> page (+/nfc/east/dallas), the following <span class="caps">HTML</span> would be rendered:</p>
310
+ <div class="code_container"><code class="html">&lt;div id=&quot;menu&quot; class=&quot;menu&quot;&gt;
311
+ &lt;ul&gt;
312
+ &lt;li id=&quot;section_3&quot; class=&quot;depth-1 first open&quot;&gt;
313
+ &lt;a href=&quot;/nfc/east/dallas&quot;&gt;NFC&lt;/a&gt;
314
+ &lt;ul&gt;
315
+ &lt;li id=&quot;section_5&quot; class=&quot;depth-2 first open&quot;&gt;
316
+ &lt;a href=&quot;/nfc/east/dallas&quot;&gt;East&lt;/a&gt;
317
+ &lt;ul&gt;
318
+ &lt;li id=&quot;page_5&quot; class=&quot;depth-3 first on&quot;&gt;
319
+ &lt;a href=&quot;/nfc/east/dallas&quot;&gt;Dallas&lt;/a&gt;
320
+ &lt;/li&gt;
321
+ &lt;li id=&quot;page_6&quot; class=&quot;depth-3 last&quot;&gt;
322
+ &lt;a href=&quot;/nfc/east/new-york&quot;&gt;New York&lt;/a&gt;
323
+ &lt;/li&gt;
324
+ &lt;/ul&gt;
325
+ &lt;/li&gt;
326
+ &lt;li id=&quot;section_6&quot; class=&quot;depth-2&quot;&gt;
327
+ &lt;a href=&quot;/nfc/north/chicago&quot;&gt;North&lt;/a&gt;
328
+ &lt;/li&gt;
329
+ &lt;li id=&quot;section_7&quot; class=&quot;depth-2&quot;&gt;
330
+ &lt;a href=&quot;/nfc/west&quot;&gt;West&lt;/a&gt;
331
+ &lt;/li&gt;
332
+ &lt;li id=&quot;section_11&quot; class=&quot;depth-2 last&quot;&gt;
333
+ &lt;a href=&quot;/nfc/south/tampa-bay&quot;&gt;South&lt;/a&gt;
334
+ &lt;/li&gt;
335
+ &lt;/ul&gt;
336
+ &lt;/li&gt;
337
+ &lt;li id=&quot;section_4&quot; class=&quot;depth-1 last&quot;&gt;
338
+ &lt;a href=&quot;/afc/east&quot;&gt;AFC&lt;/a&gt;
339
+ &lt;/li&gt;
340
+ &lt;/ul&gt;
341
+ &lt;/div&gt;</code></div>
342
+ <p>Things to note:</p>
343
+ <ul>
344
+ <li>The top level containing element for the menu is marked as <tt>id</tt> and <tt>class</tt> = <tt>menu</tt>. (<tt>class</tt> can be changed via parameters.)</li>
345
+ <li>We are currently on the &#8216;Dallas&#8217; page. So the dallas <tt>li</tt> is marked with an <tt>on</tt> class.</li>
346
+ <li>The &#8216;<span class="caps">NFC</span>&#8217; and &#8216;East&#8217; sections are open (because they are ancestors of the &#8216;Dallas&#8217; page). They are marked with an <tt>open</tt> class.</li>
347
+ <li>All siblings to &#8216;open&#8217; sections are shown (i.e. we see &#8216;<span class="caps">AFC</span>&#8217; and &#8216;North&#8217;, but nothing under them). The first and last element of each list is marked with <tt>first</tt> and <tt>last</tt>.</li>
348
+ <li>The depth of each element has a style. For instance, the &#8216;Dallas&#8217; page is at <tt>depth-3</tt>.</li>
349
+ </ul>
350
+ <h4 id="how-deep-should-menus-be">4.3 How Deep Should Menus Be?</h4>
351
+ <p>Since we have not given any options to <tt>render_menu</tt>, it will render all levels down to the current page. In a deeply nested site, you could end up with 4 to 5 levels. In general practice, its often best to limit menus to 2-3 levels. You can do this by specifying how deep and when we want to start menus. For instance, the following menu code would behave identically to the previous one.</p>
352
+ <div class="code_container"><code class="html">&lt;%= render_menu :from_top=&gt;0, :depth=&gt;3 %&gt;</code></div>
353
+ <p>This menu will show all items below level 0 (<tt>from_top=>0</tt>) and showing a total 3 levels of navigation (+depth=&gt;3). Our &#8216;top level&#8217; sections/pages (like <em><span class="caps">AFC</span></em>, <em><span class="caps">NFC</span></em> and _Home__) are all at depth=&gt;1, so they are shown. The <em>East</em> page is second level and the <em>Dallas</em> page is the 3 level, so we see all three levels of navigation.</p>
354
+ <p>In general, the <tt>:depth</tt> option is used to &#8216;cut off&#8217; navigation after a certain point (since a vertical leftside nav can only render so many levels), while <tt>:from_top</tt> is used to determine how high to start. Here&#8217;s some further examples:</p>
355
+ <h4 id="primary-navigation">4.4 Primary Navigation</h4>
356
+ <p>Want to show only the first level of navigation? Try this:</p>
357
+ <div class="code_container"><code class="html">&lt;%= render_menu :from_top=&gt;0, :depth=&gt;1 %&gt;</code></div>
358
+ <p>This will render only a single level of our top level navigation, regardless of how deep our site goes. Here&#8217;s the output when we are on the <em>Dallas</em> page.</p>
359
+ <div class="code_container"><code class="html">&lt;div id=&quot;menu&quot; class=&quot;menu&quot;&gt;
360
+ &lt;ul&gt;
361
+ &lt;li id=&quot;page_1&quot; class=&quot;depth-1 first&quot;&gt;
362
+ &lt;a href=&quot;/&quot;&gt;Home&lt;/a&gt;
363
+ &lt;/li&gt;
364
+ &lt;li id=&quot;section_3&quot; class=&quot;depth-1&quot;&gt;
365
+ &lt;a href=&quot;/nfc/east/dallas&quot;&gt;NFC&lt;/a&gt;
366
+ &lt;/li&gt;
367
+ &lt;li id=&quot;section_4&quot; class=&quot;depth-1 last&quot;&gt;
368
+ &lt;a href=&quot;#&quot;&gt;AFC&lt;/a&gt;
369
+ &lt;/li&gt;
370
+ &lt;/ul&gt;
371
+ &lt;/div&gt;
372
+ &lt;h1&gt;Dallas&lt;/h1&gt;</code></div>
373
+ <h4 id="sub-navigation">4.5 Sub Navigation</h4>
374
+ <p>Suppose we wanted to have two menus on a site, a horizontal &#8216;primary&#8217; navigation and a vertical &#8216;sub&#8217; navigation. In this case, we want to show our <span class="caps">NFL</span> conferences as the primary navigation, and when you drill down the Division would be shown as the left side navigation. Here&#8217;s how the left nav can be generated.</p>
375
+ <div class="code_container"><code class="html">&lt;%= render_menu :from_top=&gt;1, :depth=&gt;2, :class=&gt;&quot;leftmenu&quot; %&gt;</code></div>
376
+ <p>Here is the output when we are on the <em>Dallas</em> page.</p>
377
+ <div class="code_container"><code class="html">&lt;div id=&quot;menu&quot; class=&quot;leftmenu&quot;&gt;
378
+ &lt;ul&gt;
379
+ &lt;li id=&quot;section_5&quot; class=&quot;depth-1 first open&quot;&gt;
380
+ &lt;a href=&quot;/nfc/east/dallas&quot;&gt;East&lt;/a&gt;
381
+ &lt;ul&gt;
382
+ &lt;li id=&quot;page_5&quot; class=&quot;depth-2 first on&quot;&gt;
383
+ &lt;a href=&quot;/nfc/east/dallas&quot;&gt;Dallas&lt;/a&gt;
384
+
385
+ &lt;/li&gt;
386
+ &lt;li id=&quot;page_6&quot; class=&quot;depth-2 last&quot;&gt;
387
+ &lt;a href=&quot;/nfc/east/new-york&quot;&gt;New York&lt;/a&gt;
388
+ &lt;/li&gt;
389
+ &lt;/ul&gt;
390
+ &lt;/li&gt;
391
+ &lt;li id=&quot;section_6&quot; class=&quot;depth-1&quot;&gt;
392
+ &lt;a href=&quot;/nfc/north/chicago&quot;&gt;North&lt;/a&gt;
393
+
394
+ &lt;/li&gt;
395
+ &lt;li id=&quot;section_7&quot; class=&quot;depth-1&quot;&gt;
396
+ &lt;a href=&quot;/nfc/west/atlanta&quot;&gt;West&lt;/a&gt;
397
+ &lt;/li&gt;
398
+ &lt;li id=&quot;section_11&quot; class=&quot;depth-1 last&quot;&gt;
399
+ &lt;a href=&quot;/nfc/south/tampa-bay&quot;&gt;South&lt;/a&gt;
400
+ &lt;/li&gt;
401
+ &lt;/ul&gt;
402
+
403
+ &lt;/div&gt;</code></div>
404
+ <h4 id="site-maps-and-flyout-menus">4.6 Site Maps and Flyout Menus</h4>
405
+ <p>You can also handle sitemaps and flyout menus by specifying some additional attributes. Normally, menus will not show the entire tree, but you can make them by doing the following:</p>
406
+ <div class="code_container"><code class="html">&lt;%= render_menu :show_all_siblings=&gt;true %&gt;</code></div>
407
+ <p>This will render every visible node in the tree, regardless of which page we are currently on. It follows the same <tt>:from_top</tt> and <tt>:depth</tt> rules as other menus.</p>
408
+ <h4 id="using-breadcrumbs">4.7 Using Breadcrumbs</h4>
409
+ <p>Breadcrumbs work very similar fashion to menus, except that they only render a single list which includes the current page and all ancestors.</p>
410
+ <div class="code_container"><code class="html">&lt;%= render_breadcrumbs %&gt;</code></div>
411
+ <p>If we are on the <em>Dallas</em> page, this will render the following <span class="caps">HTML</span>:</p>
412
+ <div class="code_container"><code class="html">&lt;ul class=&quot;breadcrumbs&quot;&gt;
413
+ &lt;li class=&quot;first&quot;&gt;&lt;a href=&quot;/&quot;&gt;My Site&lt;/a&gt;&lt;/li&gt;
414
+ &lt;li&gt;&lt;a href=&quot;/nfc/east/dallas&quot;&gt;NFC&lt;/a&gt;&lt;/li&gt;
415
+ &lt;li&gt;&lt;a href=&quot;/nfc/east/dallas&quot;&gt;East&lt;/a&gt;&lt;/li&gt;
416
+
417
+ &lt;li&gt;Dallas&lt;/li&gt;
418
+ &lt;/ul&gt;</code></div>
419
+ <p>If we moved to the <em>Detroit</em> page, it would render this:</p>
420
+ <div class="code_container"><code class="html">&lt;ul class=&quot;breadcrumbs&quot;&gt;
421
+ &lt;li class=&quot;first&quot;&gt;&lt;a href=&quot;/&quot;&gt;My Site&lt;/a&gt;&lt;/li&gt;
422
+ &lt;li&gt;&lt;a href=&quot;/nfc/east/dallas&quot;&gt;NFC&lt;/a&gt;&lt;/li&gt;
423
+ &lt;li&gt;&lt;a href=&quot;/nfc/north/chicago&quot;&gt;North&lt;/a&gt;&lt;/li&gt;
424
+
425
+ &lt;li&gt;Detroit&lt;/li&gt;
426
+ &lt;/ul&gt;</code></div>
427
+
428
+ <p>You can also specify some options to it:</p>
429
+ <div class="code_container"><code class="html">&lt;%= render_breadcrumbs :from_top=&gt;1 %&gt;</code></div>
430
+ <p>This would exclude the top level section (i.e. the name of the site <em>My Site</em>). This would render the following if I was on the <em>Dallas</em> page:</p>
431
+ <div class="code_container"><code class="html">&lt;ul class=&quot;breadcrumbs&quot;&gt;
432
+ &lt;li class=&quot;first&quot;&gt;&lt;a href=&quot;/nfc/east/dallas&quot;&gt;NFC&lt;/a&gt;&lt;/li&gt;
433
+ &lt;li&gt;&lt;a href=&quot;/nfc/east/dallas&quot;&gt;East&lt;/a&gt;&lt;/li&gt;
434
+ &lt;li&gt;Dallas&lt;/li&gt;
435
+ &lt;/ul&gt;</code></div>
436
+ <h3 id="using-partials">5 Using Partials</h3>
437
+ <p>A site which has multiple templates will likely have duplicate <span class="caps">HTML</span>. Areas of the page like Headers and Footers can easily be exactly the same between two templates. In order to avoid duplication, it is possible to use partials to extract and reuse view code. Like templates, partials can either be content in the repository or files, depending on how developers want to organize their project. See the Rails <a href="http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials">Layouts and Views Guide</a> for more information on how partials work.</p>
438
+ <p>Let&#8217;s extract our common header code from our <tt>subpage</tt> template. Here&#8217;s how the file looked earlier:</p>
439
+ <div class="code_container"><code class="html">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
440
+ &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
441
+ &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;
442
+ &lt;head&gt;
443
+ &lt;head&gt;
444
+ &lt;title&gt;&lt;%= page_title %&gt; | Our Fancy Site&lt;/title&gt;
445
+ &lt;style&gt;
446
+ body, html { margin: 0; padding: 0; text-align: center; }
447
+ #wrapper { width: 700px; margin: 0 auto; text-align: left; padding: 30px }
448
+ #main { float: left; width: 500px; }
449
+ #sidebar { float: right; padding: 0 30px 0 0; width: 150px;}
450
+ &lt;/style&gt;
451
+ &lt;%= yield :html_head %&gt;
452
+ &lt;/head&gt;
453
+ &lt;body&gt;
454
+ &lt;%= cms_toolbar %&gt;
455
+ &lt;div id=&quot;wrapper&quot;&gt;
456
+ &lt;div id=&quot;header&quot;&gt;
457
+ Breadcrumbs: &lt;%= render_breadcrumbs %&gt;
458
+ Main Menu: &lt;%= render_menu %&gt;
459
+ &lt;h1&gt;&lt;%= page_title %&gt;&lt;/h1&gt;
460
+ &lt;/div&gt;
461
+ &lt;div id=&quot;main&quot;&gt;&lt;%= container :main %&gt;&lt;/div&gt;
462
+ &lt;div id=&quot;sidebar&quot;&gt;&lt;%= container :sidebar %&gt;&lt;/div&gt;
463
+ &lt;/div&gt;
464
+ &lt;/body&gt;
465
+ &lt;/html&gt;</code></div>
466
+ <p>Create a new file called <tt>app/views/partials/_header.html.erb</tt>. By placing partials in this directory, they will match where the content repository based templates are written out to. This will allow templates to include partials regardless of where its data is stored. Copy/Paste code from <tt>subpage.html.erb</tt> so that <tt>_header.html.erb</tt> looks like this:</p>
467
+ <div class="code_container"><code class="html">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
468
+ &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
469
+ &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;
470
+ &lt;head&gt;
471
+ &lt;title&gt;&lt;%= page_title %&gt; | Our Fancy Site&lt;/title&gt;
472
+ &lt;style&gt;
473
+ body, html { margin: 0; padding: 0; text-align: center; }
474
+ #wrapper { width: 700px; margin: 0 auto; text-align: left; padding: 30px }
475
+ #main { float: left; width: 500px; }
476
+ #sidebar { float: right; padding: 0 30px 0 0; width: 150px;}
477
+ &lt;/style&gt;
478
+ &lt;%= yield :html_head %&gt;
479
+ &lt;/head&gt;
480
+ &lt;body&gt;
481
+ &lt;%= cms_toolbar %&gt;</code></div>
482
+ <p>Then update <tt>subpage</tt> to look like this:</p>
483
+ <div class="code_container"><code class="html">&lt;%= render :partial=&gt;&quot;partials/header&quot; %&gt;
484
+ &lt;div id=&quot;wrapper&quot;&gt;
485
+ &lt;div id=&quot;header&quot;&gt;
486
+ Breadcrumbs: &lt;%= render_breadcrumbs %&gt;
487
+ Main Menu: &lt;%= render_menu %&gt;
488
+ &lt;h1&gt;&lt;%= page_title %&gt;&lt;/h1&gt;
489
+ &lt;/div&gt;
490
+ &lt;div id=&quot;main&quot;&gt;&lt;%= container :main %&gt;&lt;/div&gt;
491
+ &lt;div id=&quot;sidebar&quot;&gt;&lt;%= container :sidebar %&gt;&lt;/div&gt;
492
+ &lt;/div&gt;
493
+ &lt;/body&gt;
494
+ &lt;/html&gt;</code></div>
495
+ <p>Now when you refresh a page using the Subpage template, it should look exactly the same.</p>
496
+ </td>
497
+ </tr>
498
+ </table>
499
+ </div>
500
+ </div>
501
+ <br clear="all"/>
502
+ <div class="bottom_cap"></div>
503
+ </div>
504
+ </div>
505
+ </body>
506
+ </html>
507
+