browsercms_s3 3.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1282) hide show
  1. data/LICENSE.txt +165 -0
  2. data/README.markdown +64 -0
  3. data/app/controllers/application_controller.rb +14 -0
  4. data/app/controllers/cms/application_controller.rb +78 -0
  5. data/app/controllers/cms/attachments_controller.rb +11 -0
  6. data/app/controllers/cms/base_controller.rb +13 -0
  7. data/app/controllers/cms/cache_controller.rb +22 -0
  8. data/app/controllers/cms/categories_controller.rb +2 -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 +285 -0
  12. data/app/controllers/cms/content_controller.rb +257 -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 +67 -0
  24. data/app/controllers/cms/page_route_conditions_controller.rb +2 -0
  25. data/app/controllers/cms/page_route_options_controller.rb +56 -0
  26. data/app/controllers/cms/page_route_requirements_controller.rb +2 -0
  27. data/app/controllers/cms/page_routes_controller.rb +45 -0
  28. data/app/controllers/cms/pages_controller.rb +131 -0
  29. data/app/controllers/cms/portlet_controller.rb +12 -0
  30. data/app/controllers/cms/portlets_controller.rb +40 -0
  31. data/app/controllers/cms/redirects_controller.rb +19 -0
  32. data/app/controllers/cms/resource_controller.rb +108 -0
  33. data/app/controllers/cms/routes_controller.rb +23 -0
  34. data/app/controllers/cms/section_nodes_controller.rb +40 -0
  35. data/app/controllers/cms/sections_controller.rb +130 -0
  36. data/app/controllers/cms/sessions_controller.rb +64 -0
  37. data/app/controllers/cms/tags_controller.rb +9 -0
  38. data/app/controllers/cms/tasks_controller.rb +52 -0
  39. data/app/controllers/cms/toolbar_controller.rb +12 -0
  40. data/app/controllers/cms/users_controller.rb +100 -0
  41. data/app/helpers/application_helper.rb +3 -0
  42. data/app/helpers/cms/application_helper.rb +169 -0
  43. data/app/helpers/cms/form_builder.rb +101 -0
  44. data/app/helpers/cms/form_tag_helper.rb +32 -0
  45. data/app/helpers/cms/menu_helper.rb +158 -0
  46. data/app/helpers/cms/page_helper.rb +68 -0
  47. data/app/helpers/cms/path_helper.rb +48 -0
  48. data/app/helpers/cms/section_nodes_helper.rb +13 -0
  49. data/app/helpers/cms/template_support.rb +21 -0
  50. data/app/models/abstract_file_block.rb +17 -0
  51. data/app/models/attachment.rb +226 -0
  52. data/app/models/category.rb +40 -0
  53. data/app/models/category_type.rb +34 -0
  54. data/app/models/connector.rb +80 -0
  55. data/app/models/content_type.rb +95 -0
  56. data/app/models/content_type_group.rb +3 -0
  57. data/app/models/dynamic_view.rb +80 -0
  58. data/app/models/email_message.rb +31 -0
  59. data/app/models/email_message_mailer.rb +11 -0
  60. data/app/models/file_block.rb +21 -0
  61. data/app/models/group.rb +30 -0
  62. data/app/models/group_permission.rb +7 -0
  63. data/app/models/group_section.rb +4 -0
  64. data/app/models/group_type.rb +12 -0
  65. data/app/models/group_type_permission.rb +4 -0
  66. data/app/models/guest_user.rb +39 -0
  67. data/app/models/html_block.rb +40 -0
  68. data/app/models/image_block.rb +22 -0
  69. data/app/models/link.rb +35 -0
  70. data/app/models/page.rb +286 -0
  71. data/app/models/page_partial.rb +22 -0
  72. data/app/models/page_route.rb +58 -0
  73. data/app/models/page_route_condition.rb +2 -0
  74. data/app/models/page_route_option.rb +3 -0
  75. data/app/models/page_route_requirement.rb +2 -0
  76. data/app/models/page_template.rb +48 -0
  77. data/app/models/permission.rb +10 -0
  78. data/app/models/portlet.rb +157 -0
  79. data/app/models/redirect.rb +4 -0
  80. data/app/models/section.rb +147 -0
  81. data/app/models/section_node.rb +93 -0
  82. data/app/models/site.rb +41 -0
  83. data/app/models/tag.rb +62 -0
  84. data/app/models/tagging.rb +9 -0
  85. data/app/models/task.rb +67 -0
  86. data/app/models/user.rb +143 -0
  87. data/app/models/user_group_membership.rb +4 -0
  88. data/app/portlets/dynamic_portlet.rb +7 -0
  89. data/app/portlets/email_page_portlet.rb +24 -0
  90. data/app/portlets/login_portlet.rb +10 -0
  91. data/app/portlets/tag_cloud_portlet.rb +13 -0
  92. data/app/views/cms/blocks/_hidden_fields.html.erb +10 -0
  93. data/app/views/cms/blocks/_toolbar.html.erb +9 -0
  94. data/app/views/cms/blocks/_toolbar_for_collection.html.erb +26 -0
  95. data/app/views/cms/blocks/_toolbar_for_member.html.erb +38 -0
  96. data/app/views/cms/blocks/edit.html.erb +25 -0
  97. data/app/views/cms/blocks/index.html.erb +127 -0
  98. data/app/views/cms/blocks/new.html.erb +21 -0
  99. data/app/views/cms/blocks/show.html.erb +40 -0
  100. data/app/views/cms/blocks/usages.html.erb +44 -0
  101. data/app/views/cms/blocks/versions.html.erb +90 -0
  102. data/app/views/cms/cache/show.html.erb +12 -0
  103. data/app/views/cms/categories/_form.html.erb +36 -0
  104. data/app/views/cms/category_types/_form.html.erb +1 -0
  105. data/app/views/cms/connectors/new.html.erb +71 -0
  106. data/app/views/cms/content/no_page.html.erb +37 -0
  107. data/app/views/cms/content/show.html.erb +21 -0
  108. data/app/views/cms/content_types/index.html.erb +14 -0
  109. data/app/views/cms/dashboard/_page_drafts.html.erb +49 -0
  110. data/app/views/cms/dashboard/_tasks.html.erb +54 -0
  111. data/app/views/cms/dashboard/index.html.erb +15 -0
  112. data/app/views/cms/dynamic_views/_form.html.erb +11 -0
  113. data/app/views/cms/dynamic_views/edit.html.erb +3 -0
  114. data/app/views/cms/dynamic_views/index.html.erb +52 -0
  115. data/app/views/cms/dynamic_views/new.html.erb +3 -0
  116. data/app/views/cms/email_messages/index.html.erb +39 -0
  117. data/app/views/cms/email_messages/show.html.erb +57 -0
  118. data/app/views/cms/file_blocks/_form.html.erb +30 -0
  119. data/app/views/cms/file_blocks/render.html.erb +5 -0
  120. data/app/views/cms/form_builder/_cms_date_picker.html.erb +12 -0
  121. data/app/views/cms/form_builder/_cms_datetime_select.html.erb +12 -0
  122. data/app/views/cms/form_builder/_cms_drop_down.html.erb +19 -0
  123. data/app/views/cms/form_builder/_cms_file_field.html.erb +32 -0
  124. data/app/views/cms/form_builder/_cms_tag_list.html.erb +15 -0
  125. data/app/views/cms/form_builder/_cms_text_area.html.erb +13 -0
  126. data/app/views/cms/form_builder/_cms_text_editor.html.erb +18 -0
  127. data/app/views/cms/form_builder/_cms_text_field.html.erb +12 -0
  128. data/app/views/cms/groups/_form.html.erb +45 -0
  129. data/app/views/cms/groups/_permissions.html.erb +37 -0
  130. data/app/views/cms/groups/_sections.html.erb +19 -0
  131. data/app/views/cms/groups/edit.html.erb +4 -0
  132. data/app/views/cms/groups/index.html.erb +58 -0
  133. data/app/views/cms/groups/new.html.erb +4 -0
  134. data/app/views/cms/html_blocks/_form.html.erb +3 -0
  135. data/app/views/cms/html_blocks/render.html.erb +1 -0
  136. data/app/views/cms/image_blocks/_form.html.erb +30 -0
  137. data/app/views/cms/image_blocks/render.html.erb +1 -0
  138. data/app/views/cms/links/_form.html.erb +13 -0
  139. data/app/views/cms/links/destroy.js.rjs +2 -0
  140. data/app/views/cms/links/edit.html.erb +14 -0
  141. data/app/views/cms/links/new.html.erb +15 -0
  142. data/app/views/cms/menus/_menu.html.erb +9 -0
  143. data/app/views/cms/menus/_menu_item.html.erb +11 -0
  144. data/app/views/cms/page_routes/_form.html.erb +11 -0
  145. data/app/views/cms/page_routes/edit.html.erb +3 -0
  146. data/app/views/cms/page_routes/index.html.erb +56 -0
  147. data/app/views/cms/page_routes/new.html.erb +3 -0
  148. data/app/views/cms/page_routes/show.html.erb +14 -0
  149. data/app/views/cms/pages/_edit_connector.html.erb +19 -0
  150. data/app/views/cms/pages/_edit_container.html.erb +11 -0
  151. data/app/views/cms/pages/_form.html.erb +46 -0
  152. data/app/views/cms/pages/edit.html.erb +23 -0
  153. data/app/views/cms/pages/new.html.erb +33 -0
  154. data/app/views/cms/pages/versions.html.erb +91 -0
  155. data/app/views/cms/redirects/_form.html.erb +15 -0
  156. data/app/views/cms/redirects/edit.html.erb +3 -0
  157. data/app/views/cms/redirects/index.html.erb +50 -0
  158. data/app/views/cms/redirects/new.html.erb +3 -0
  159. data/app/views/cms/routes/index.html.erb +40 -0
  160. data/app/views/cms/section_nodes/_link.html.erb +11 -0
  161. data/app/views/cms/section_nodes/_node.html.erb +34 -0
  162. data/app/views/cms/section_nodes/_page.html.erb +14 -0
  163. data/app/views/cms/section_nodes/_section.html.erb +12 -0
  164. data/app/views/cms/section_nodes/_section_node.html.erb +10 -0
  165. data/app/views/cms/section_nodes/index.html.erb +31 -0
  166. data/app/views/cms/sections/_form.html.erb +59 -0
  167. data/app/views/cms/sections/_page.html.erb +4 -0
  168. data/app/views/cms/sections/_section.html.erb +8 -0
  169. data/app/views/cms/sections/destroy.js.rjs +2 -0
  170. data/app/views/cms/sections/edit.html.erb +10 -0
  171. data/app/views/cms/sections/file_browser.xml.builder +14 -0
  172. data/app/views/cms/sections/index.html.erb +23 -0
  173. data/app/views/cms/sections/new.html.erb +21 -0
  174. data/app/views/cms/sessions/new.html.erb +32 -0
  175. data/app/views/cms/shared/_admin_sidebar.html.erb +30 -0
  176. data/app/views/cms/shared/_exception.html.erb +6 -0
  177. data/app/views/cms/shared/_pagination.html.erb +31 -0
  178. data/app/views/cms/shared/_version_conflict_diff.html.erb +11 -0
  179. data/app/views/cms/shared/_version_conflict_error.html.erb +6 -0
  180. data/app/views/cms/shared/access_denied.html.erb +3 -0
  181. data/app/views/cms/shared/error.html.erb +40 -0
  182. data/app/views/cms/tags/_form.html.erb +1 -0
  183. data/app/views/cms/tags/render.html.erb +53 -0
  184. data/app/views/cms/tasks/new.html.erb +36 -0
  185. data/app/views/cms/toolbar/index.html.erb +12 -0
  186. data/app/views/cms/users/_form.html.erb +12 -0
  187. data/app/views/cms/users/_groups.html.erb +12 -0
  188. data/app/views/cms/users/_password.html.erb +8 -0
  189. data/app/views/cms/users/_toolbar.html.erb +22 -0
  190. data/app/views/cms/users/_user_fields.html.erb +20 -0
  191. data/app/views/cms/users/change_password.html.erb +21 -0
  192. data/app/views/cms/users/edit.html.erb +16 -0
  193. data/app/views/cms/users/index.html.erb +62 -0
  194. data/app/views/cms/users/new.html.erb +13 -0
  195. data/app/views/cms/users/show.html.erb +50 -0
  196. data/app/views/layouts/_cms_toolbar.html.erb +54 -0
  197. data/app/views/layouts/_page_toolbar.html.erb +118 -0
  198. data/app/views/layouts/application.html.erb +11 -0
  199. data/app/views/layouts/cms/_footer.erb +4 -0
  200. data/app/views/layouts/cms/_head.html.erb +21 -0
  201. data/app/views/layouts/cms/administration.html.erb +51 -0
  202. data/app/views/layouts/cms/application.html.erb +25 -0
  203. data/app/views/layouts/cms/content_library.html.erb +94 -0
  204. data/app/views/layouts/cms/dashboard.html.erb +16 -0
  205. data/app/views/layouts/cms/login.html.erb +30 -0
  206. data/app/views/layouts/cms/section_nodes.html.erb +20 -0
  207. data/app/views/layouts/cms/thickbox.html.erb +24 -0
  208. data/app/views/layouts/cms/toolbar.html.erb +23 -0
  209. data/app/views/portlets/dynamic/_form.html.erb +3 -0
  210. data/app/views/portlets/email_page/_form.html.erb +7 -0
  211. data/app/views/portlets/email_page/render.html.erb +17 -0
  212. data/app/views/portlets/login/_form.html.erb +6 -0
  213. data/app/views/portlets/login/render.html.erb +27 -0
  214. data/app/views/portlets/portlets/_form.html.erb +19 -0
  215. data/app/views/portlets/tag_cloud/_form.html.erb +4 -0
  216. data/app/views/portlets/tag_cloud/render.html.erb +5 -0
  217. data/browsercms.gemspec +1317 -0
  218. data/db/demo/data.rb +97 -0
  219. data/db/demo/page_partials/_footer.html.erb +6 -0
  220. data/db/demo/page_partials/_header.html.erb +24 -0
  221. data/db/demo/page_templates/home_page.html.erb +49 -0
  222. data/db/demo/page_templates/sub_page.html.erb +37 -0
  223. data/db/migrate/20080815014337_browsercms_3_0_0.rb +274 -0
  224. data/db/migrate/20081114172307_load_seed_data.rb +92 -0
  225. data/doc/app/classes/AbstractFileBlock.html +146 -0
  226. data/doc/app/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html +242 -0
  227. data/doc/app/classes/ActiveRecord.html +105 -0
  228. data/doc/app/classes/ActiveSupport/Cache/FileStore.html +146 -0
  229. data/doc/app/classes/ActiveSupport/Cache.html +111 -0
  230. data/doc/app/classes/ActiveSupport.html +111 -0
  231. data/doc/app/classes/ActsAsList/ClassMethods.html +202 -0
  232. data/doc/app/classes/ActsAsList/InstanceMethods.html +510 -0
  233. data/doc/app/classes/ActsAsList.html +147 -0
  234. data/doc/app/classes/ApplicationController.html +119 -0
  235. data/doc/app/classes/ApplicationHelper.html +112 -0
  236. data/doc/app/classes/Attachment.html +726 -0
  237. data/doc/app/classes/Category.html +230 -0
  238. data/doc/app/classes/CategoryType.html +214 -0
  239. data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods/InstanceMethods.html +140 -0
  240. data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods.html +165 -0
  241. data/doc/app/classes/Cms/Acts/ContentBlock.html +146 -0
  242. data/doc/app/classes/Cms/Acts.html +111 -0
  243. data/doc/app/classes/Cms/ApplicationController.html +418 -0
  244. data/doc/app/classes/Cms/ApplicationHelper.html +814 -0
  245. data/doc/app/classes/Cms/AttachmentsController.html +154 -0
  246. data/doc/app/classes/Cms/Authentication/Controller.html +702 -0
  247. data/doc/app/classes/Cms/Authentication/Model/ClassMethods.html +246 -0
  248. data/doc/app/classes/Cms/Authentication/Model/InstanceMethods.html +412 -0
  249. data/doc/app/classes/Cms/Authentication/Model.html +165 -0
  250. data/doc/app/classes/Cms/Authentication.html +116 -0
  251. data/doc/app/classes/Cms/BaseController.html +113 -0
  252. data/doc/app/classes/Cms/Behaviors/Archiving/InstanceMethods.html +220 -0
  253. data/doc/app/classes/Cms/Behaviors/Archiving/MacroMethods.html +175 -0
  254. data/doc/app/classes/Cms/Behaviors/Archiving.html +147 -0
  255. data/doc/app/classes/Cms/Behaviors/Attaching/InstanceMethods.html +670 -0
  256. data/doc/app/classes/Cms/Behaviors/Attaching/MacroMethods.html +188 -0
  257. data/doc/app/classes/Cms/Behaviors/Attaching.html +160 -0
  258. data/doc/app/classes/Cms/Behaviors/Categorizing/ClassMethods.html +105 -0
  259. data/doc/app/classes/Cms/Behaviors/Categorizing/InstanceMethods.html +140 -0
  260. data/doc/app/classes/Cms/Behaviors/Categorizing/MacroMethods.html +178 -0
  261. data/doc/app/classes/Cms/Behaviors/Categorizing.html +148 -0
  262. data/doc/app/classes/Cms/Behaviors/ClassMethods.html +272 -0
  263. data/doc/app/classes/Cms/Behaviors/Connecting/ClassMethods.html +188 -0
  264. data/doc/app/classes/Cms/Behaviors/Connecting/InstanceMethods.html +312 -0
  265. data/doc/app/classes/Cms/Behaviors/Connecting/MacroMethods.html +184 -0
  266. data/doc/app/classes/Cms/Behaviors/Connecting.html +148 -0
  267. data/doc/app/classes/Cms/Behaviors/DynamicAttributes/InstanceMethods.html +181 -0
  268. data/doc/app/classes/Cms/Behaviors/DynamicAttributes/MacroMethods.html +243 -0
  269. data/doc/app/classes/Cms/Behaviors/DynamicAttributes.html +285 -0
  270. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/InstanceMethods.html +142 -0
  271. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/MacroMethods.html +175 -0
  272. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange.html +178 -0
  273. data/doc/app/classes/Cms/Behaviors/Hiding/ClassMethods.html +105 -0
  274. data/doc/app/classes/Cms/Behaviors/Hiding/InstanceMethods.html +220 -0
  275. data/doc/app/classes/Cms/Behaviors/Hiding/MacroMethods.html +176 -0
  276. data/doc/app/classes/Cms/Behaviors/Hiding.html +148 -0
  277. data/doc/app/classes/Cms/Behaviors/InstanceMethods.html +234 -0
  278. data/doc/app/classes/Cms/Behaviors/Pagination/ClassMethods.html +252 -0
  279. data/doc/app/classes/Cms/Behaviors/Pagination/Collection.html +437 -0
  280. data/doc/app/classes/Cms/Behaviors/Pagination/InvalidPage.html +146 -0
  281. data/doc/app/classes/Cms/Behaviors/Pagination.html +151 -0
  282. data/doc/app/classes/Cms/Behaviors/Publishing/ClassMethods.html +105 -0
  283. data/doc/app/classes/Cms/Behaviors/Publishing/InstanceMethods.html +333 -0
  284. data/doc/app/classes/Cms/Behaviors/Publishing/MacroMethods.html +180 -0
  285. data/doc/app/classes/Cms/Behaviors/Publishing.html +179 -0
  286. data/doc/app/classes/Cms/Behaviors/Rendering/MacroMethods.html +186 -0
  287. data/doc/app/classes/Cms/Behaviors/Rendering.html +179 -0
  288. data/doc/app/classes/Cms/Behaviors/Searching/ClassMethods.html +164 -0
  289. data/doc/app/classes/Cms/Behaviors/Searching/MacroMethods.html +188 -0
  290. data/doc/app/classes/Cms/Behaviors/Searching.html +147 -0
  291. data/doc/app/classes/Cms/Behaviors/SoftDeleting/ClassMethods.html +217 -0
  292. data/doc/app/classes/Cms/Behaviors/SoftDeleting/InstanceMethods.html +247 -0
  293. data/doc/app/classes/Cms/Behaviors/SoftDeleting/MacroMethods.html +205 -0
  294. data/doc/app/classes/Cms/Behaviors/SoftDeleting.html +148 -0
  295. data/doc/app/classes/Cms/Behaviors/Taggable/ClassMethods.html +164 -0
  296. data/doc/app/classes/Cms/Behaviors/Taggable/InstanceMethods.html +197 -0
  297. data/doc/app/classes/Cms/Behaviors/Taggable/MacroMethods.html +182 -0
  298. data/doc/app/classes/Cms/Behaviors/Taggable.html +148 -0
  299. data/doc/app/classes/Cms/Behaviors/Userstamping/ClassMethods.html +105 -0
  300. data/doc/app/classes/Cms/Behaviors/Userstamping/InstanceMethods.html +143 -0
  301. data/doc/app/classes/Cms/Behaviors/Userstamping/MacroMethods.html +181 -0
  302. data/doc/app/classes/Cms/Behaviors/Userstamping.html +148 -0
  303. data/doc/app/classes/Cms/Behaviors/Versioning/ClassMethods.html +237 -0
  304. data/doc/app/classes/Cms/Behaviors/Versioning/InstanceMethods.html +685 -0
  305. data/doc/app/classes/Cms/Behaviors/Versioning/MacroMethods.html +290 -0
  306. data/doc/app/classes/Cms/Behaviors/Versioning.html +148 -0
  307. data/doc/app/classes/Cms/Behaviors.html +235 -0
  308. data/doc/app/classes/Cms/CacheController.html +174 -0
  309. data/doc/app/classes/Cms/Caching.html +171 -0
  310. data/doc/app/classes/Cms/CategoriesController.html +113 -0
  311. data/doc/app/classes/Cms/CategoryTypesController.html +148 -0
  312. data/doc/app/classes/Cms/ConnectorsController.html +215 -0
  313. data/doc/app/classes/Cms/ContentBlockController.html +1175 -0
  314. data/doc/app/classes/Cms/ContentController.html +313 -0
  315. data/doc/app/classes/Cms/ContentTypesController.html +148 -0
  316. data/doc/app/classes/Cms/DashboardController.html +151 -0
  317. data/doc/app/classes/Cms/DataLoader.html +182 -0
  318. data/doc/app/classes/Cms/DynamicViewsController.html +359 -0
  319. data/doc/app/classes/Cms/EmailMessagesController.html +172 -0
  320. data/doc/app/classes/Cms/ErrorHandling.html +172 -0
  321. data/doc/app/classes/Cms/Errors/AccessDenied.html +146 -0
  322. data/doc/app/classes/Cms/Errors.html +111 -0
  323. data/doc/app/classes/Cms/Extensions/ActionView/Base.html +141 -0
  324. data/doc/app/classes/Cms/Extensions/ActionView.html +111 -0
  325. data/doc/app/classes/Cms/Extensions/ActiveRecord/Base.html +144 -0
  326. data/doc/app/classes/Cms/Extensions/ActiveRecord/Errors.html +140 -0
  327. data/doc/app/classes/Cms/Extensions/ActiveRecord.html +116 -0
  328. data/doc/app/classes/Cms/Extensions/Hash.html +175 -0
  329. data/doc/app/classes/Cms/Extensions/Integer.html +146 -0
  330. data/doc/app/classes/Cms/Extensions/NilClass.html +212 -0
  331. data/doc/app/classes/Cms/Extensions/String.html +212 -0
  332. data/doc/app/classes/Cms/Extensions.html +140 -0
  333. data/doc/app/classes/Cms/FileBlocksController.html +113 -0
  334. data/doc/app/classes/Cms/FormBuilder.html +312 -0
  335. data/doc/app/classes/Cms/FormTagHelper.html +245 -0
  336. data/doc/app/classes/Cms/GroupsController.html +225 -0
  337. data/doc/app/classes/Cms/HomeController.html +148 -0
  338. data/doc/app/classes/Cms/HtmlBlocksController.html +113 -0
  339. data/doc/app/classes/Cms/ImageBlocksController.html +113 -0
  340. data/doc/app/classes/Cms/LinksController.html +341 -0
  341. data/doc/app/classes/Cms/MenuHelper.html +330 -0
  342. data/doc/app/classes/Cms/PageHelper.html +292 -0
  343. data/doc/app/classes/Cms/PageRouteConditionsController.html +113 -0
  344. data/doc/app/classes/Cms/PageRouteOptionsController.html +355 -0
  345. data/doc/app/classes/Cms/PageRouteRequirementsController.html +113 -0
  346. data/doc/app/classes/Cms/PageRoutesController.html +284 -0
  347. data/doc/app/classes/Cms/PagesController.html +331 -0
  348. data/doc/app/classes/Cms/PathHelper.html +268 -0
  349. data/doc/app/classes/Cms/PortletController.html +150 -0
  350. data/doc/app/classes/Cms/PortletsController.html +301 -0
  351. data/doc/app/classes/Cms/RedirectsController.html +172 -0
  352. data/doc/app/classes/Cms/ResourceController.html +616 -0
  353. data/doc/app/classes/Cms/Routes.html +303 -0
  354. data/doc/app/classes/Cms/RoutesController.html +164 -0
  355. data/doc/app/classes/Cms/SectionNodesController.html +272 -0
  356. data/doc/app/classes/Cms/SectionNodesHelper.html +145 -0
  357. data/doc/app/classes/Cms/SectionsController.html +542 -0
  358. data/doc/app/classes/Cms/SessionsController.html +270 -0
  359. data/doc/app/classes/Cms/TagsController.html +152 -0
  360. data/doc/app/classes/Cms/TasksController.html +221 -0
  361. data/doc/app/classes/Cms/ToolbarController.html +153 -0
  362. data/doc/app/classes/Cms/UsersController.html +405 -0
  363. data/doc/app/classes/Cms.html +638 -0
  364. data/doc/app/classes/Connector.html +350 -0
  365. data/doc/app/classes/ContentType.html +448 -0
  366. data/doc/app/classes/ContentTypeGroup.html +111 -0
  367. data/doc/app/classes/DynamicPortlet.html +148 -0
  368. data/doc/app/classes/DynamicView.html +411 -0
  369. data/doc/app/classes/EmailMessage.html +228 -0
  370. data/doc/app/classes/EmailMessageMailer.html +150 -0
  371. data/doc/app/classes/EmailPagePortlet.html +184 -0
  372. data/doc/app/classes/FileBlock.html +202 -0
  373. data/doc/app/classes/Group.html +170 -0
  374. data/doc/app/classes/GroupPermission.html +111 -0
  375. data/doc/app/classes/GroupSection.html +111 -0
  376. data/doc/app/classes/GroupType.html +111 -0
  377. data/doc/app/classes/GroupTypePermission.html +111 -0
  378. data/doc/app/classes/GuestUser.html +347 -0
  379. data/doc/app/classes/HtmlBlock.html +170 -0
  380. data/doc/app/classes/ImageBlock.html +202 -0
  381. data/doc/app/classes/InitialData.html +171 -0
  382. data/doc/app/classes/Link.html +249 -0
  383. data/doc/app/classes/LoginPortlet.html +151 -0
  384. data/doc/app/classes/Page.html +954 -0
  385. data/doc/app/classes/PagePartial.html +201 -0
  386. data/doc/app/classes/PageRoute.html +335 -0
  387. data/doc/app/classes/PageRouteCondition.html +113 -0
  388. data/doc/app/classes/PageRouteOption.html +111 -0
  389. data/doc/app/classes/PageRouteRequirement.html +113 -0
  390. data/doc/app/classes/PageTemplate.html +278 -0
  391. data/doc/app/classes/Permission.html +111 -0
  392. data/doc/app/classes/Portlet.html +738 -0
  393. data/doc/app/classes/Redirect.html +111 -0
  394. data/doc/app/classes/Section.html +580 -0
  395. data/doc/app/classes/SectionNode.html +410 -0
  396. data/doc/app/classes/Sequence.html +146 -0
  397. data/doc/app/classes/Site.html +253 -0
  398. data/doc/app/classes/Tag.html +292 -0
  399. data/doc/app/classes/TagCloudPortlet.html +176 -0
  400. data/doc/app/classes/Tagging.html +146 -0
  401. data/doc/app/classes/Task.html +288 -0
  402. data/doc/app/classes/User.html +618 -0
  403. data/doc/app/classes/UserGroupMembership.html +111 -0
  404. data/doc/app/created.rid +1 -0
  405. data/doc/app/files/app/controllers/application_controller_rb.html +109 -0
  406. data/doc/app/files/app/controllers/cms/application_controller_rb.html +101 -0
  407. data/doc/app/files/app/controllers/cms/attachments_controller_rb.html +101 -0
  408. data/doc/app/files/app/controllers/cms/base_controller_rb.html +101 -0
  409. data/doc/app/files/app/controllers/cms/cache_controller_rb.html +101 -0
  410. data/doc/app/files/app/controllers/cms/categories_controller_rb.html +101 -0
  411. data/doc/app/files/app/controllers/cms/category_types_controller_rb.html +101 -0
  412. data/doc/app/files/app/controllers/cms/connectors_controller_rb.html +101 -0
  413. data/doc/app/files/app/controllers/cms/content_block_controller_rb.html +107 -0
  414. data/doc/app/files/app/controllers/cms/content_controller_rb.html +101 -0
  415. data/doc/app/files/app/controllers/cms/content_types_controller_rb.html +101 -0
  416. data/doc/app/files/app/controllers/cms/dashboard_controller_rb.html +101 -0
  417. data/doc/app/files/app/controllers/cms/dynamic_views_controller_rb.html +101 -0
  418. data/doc/app/files/app/controllers/cms/email_messages_controller_rb.html +101 -0
  419. data/doc/app/files/app/controllers/cms/error_handling_rb.html +101 -0
  420. data/doc/app/files/app/controllers/cms/file_blocks_controller_rb.html +101 -0
  421. data/doc/app/files/app/controllers/cms/groups_controller_rb.html +101 -0
  422. data/doc/app/files/app/controllers/cms/home_controller_rb.html +101 -0
  423. data/doc/app/files/app/controllers/cms/html_blocks_controller_rb.html +101 -0
  424. data/doc/app/files/app/controllers/cms/image_blocks_controller_rb.html +101 -0
  425. data/doc/app/files/app/controllers/cms/links_controller_rb.html +101 -0
  426. data/doc/app/files/app/controllers/cms/page_route_conditions_controller_rb.html +101 -0
  427. data/doc/app/files/app/controllers/cms/page_route_options_controller_rb.html +101 -0
  428. data/doc/app/files/app/controllers/cms/page_route_requirements_controller_rb.html +101 -0
  429. data/doc/app/files/app/controllers/cms/page_routes_controller_rb.html +101 -0
  430. data/doc/app/files/app/controllers/cms/pages_controller_rb.html +101 -0
  431. data/doc/app/files/app/controllers/cms/portlet_controller_rb.html +101 -0
  432. data/doc/app/files/app/controllers/cms/portlets_controller_rb.html +101 -0
  433. data/doc/app/files/app/controllers/cms/redirects_controller_rb.html +101 -0
  434. data/doc/app/files/app/controllers/cms/resource_controller_rb.html +108 -0
  435. data/doc/app/files/app/controllers/cms/routes_controller_rb.html +101 -0
  436. data/doc/app/files/app/controllers/cms/section_nodes_controller_rb.html +101 -0
  437. data/doc/app/files/app/controllers/cms/sections_controller_rb.html +101 -0
  438. data/doc/app/files/app/controllers/cms/sessions_controller_rb.html +107 -0
  439. data/doc/app/files/app/controllers/cms/tags_controller_rb.html +101 -0
  440. data/doc/app/files/app/controllers/cms/tasks_controller_rb.html +101 -0
  441. data/doc/app/files/app/controllers/cms/toolbar_controller_rb.html +101 -0
  442. data/doc/app/files/app/controllers/cms/users_controller_rb.html +101 -0
  443. data/doc/app/files/app/helpers/application_helper_rb.html +108 -0
  444. data/doc/app/files/app/helpers/cms/application_helper_rb.html +107 -0
  445. data/doc/app/files/app/helpers/cms/form_builder_rb.html +101 -0
  446. data/doc/app/files/app/helpers/cms/form_tag_helper_rb.html +101 -0
  447. data/doc/app/files/app/helpers/cms/menu_helper_rb.html +101 -0
  448. data/doc/app/files/app/helpers/cms/page_helper_rb.html +101 -0
  449. data/doc/app/files/app/helpers/cms/path_helper_rb.html +101 -0
  450. data/doc/app/files/app/helpers/cms/section_nodes_helper_rb.html +101 -0
  451. data/doc/app/files/app/models/abstract_file_block_rb.html +101 -0
  452. data/doc/app/files/app/models/attachment_rb.html +109 -0
  453. data/doc/app/files/app/models/category_rb.html +101 -0
  454. data/doc/app/files/app/models/category_type_rb.html +101 -0
  455. data/doc/app/files/app/models/connector_rb.html +101 -0
  456. data/doc/app/files/app/models/content_type_group_rb.html +101 -0
  457. data/doc/app/files/app/models/content_type_rb.html +101 -0
  458. data/doc/app/files/app/models/dynamic_view_rb.html +101 -0
  459. data/doc/app/files/app/models/email_message_mailer_rb.html +101 -0
  460. data/doc/app/files/app/models/email_message_rb.html +101 -0
  461. data/doc/app/files/app/models/file_block_rb.html +101 -0
  462. data/doc/app/files/app/models/group_permission_rb.html +101 -0
  463. data/doc/app/files/app/models/group_rb.html +101 -0
  464. data/doc/app/files/app/models/group_section_rb.html +101 -0
  465. data/doc/app/files/app/models/group_type_permission_rb.html +101 -0
  466. data/doc/app/files/app/models/group_type_rb.html +101 -0
  467. data/doc/app/files/app/models/guest_user_rb.html +101 -0
  468. data/doc/app/files/app/models/html_block_rb.html +101 -0
  469. data/doc/app/files/app/models/image_block_rb.html +101 -0
  470. data/doc/app/files/app/models/link_rb.html +101 -0
  471. data/doc/app/files/app/models/page_partial_rb.html +101 -0
  472. data/doc/app/files/app/models/page_rb.html +101 -0
  473. data/doc/app/files/app/models/page_route_condition_rb.html +101 -0
  474. data/doc/app/files/app/models/page_route_option_rb.html +101 -0
  475. data/doc/app/files/app/models/page_route_rb.html +101 -0
  476. data/doc/app/files/app/models/page_route_requirement_rb.html +101 -0
  477. data/doc/app/files/app/models/page_template_rb.html +101 -0
  478. data/doc/app/files/app/models/permission_rb.html +101 -0
  479. data/doc/app/files/app/models/portlet_rb.html +101 -0
  480. data/doc/app/files/app/models/redirect_rb.html +101 -0
  481. data/doc/app/files/app/models/section_node_rb.html +101 -0
  482. data/doc/app/files/app/models/section_rb.html +101 -0
  483. data/doc/app/files/app/models/site_rb.html +101 -0
  484. data/doc/app/files/app/models/tag_rb.html +101 -0
  485. data/doc/app/files/app/models/tagging_rb.html +101 -0
  486. data/doc/app/files/app/models/task_rb.html +101 -0
  487. data/doc/app/files/app/models/user_group_membership_rb.html +101 -0
  488. data/doc/app/files/app/models/user_rb.html +108 -0
  489. data/doc/app/files/app/portlets/dynamic_portlet_rb.html +101 -0
  490. data/doc/app/files/app/portlets/email_page_portlet_rb.html +101 -0
  491. data/doc/app/files/app/portlets/login_portlet_rb.html +101 -0
  492. data/doc/app/files/app/portlets/tag_cloud_portlet_rb.html +101 -0
  493. data/doc/app/files/doc/README_FOR_APP.html +127 -0
  494. data/doc/app/files/lib/acts_as_list_rb.html +101 -0
  495. data/doc/app/files/lib/browsercms_rb.html +113 -0
  496. data/doc/app/files/lib/cms/acts/content_block_rb.html +101 -0
  497. data/doc/app/files/lib/cms/authentication/controller_rb.html +101 -0
  498. data/doc/app/files/lib/cms/authentication/model_rb.html +101 -0
  499. data/doc/app/files/lib/cms/behaviors/archiving_rb.html +101 -0
  500. data/doc/app/files/lib/cms/behaviors/attaching_rb.html +101 -0
  501. data/doc/app/files/lib/cms/behaviors/categorizing_rb.html +101 -0
  502. data/doc/app/files/lib/cms/behaviors/connecting_rb.html +101 -0
  503. data/doc/app/files/lib/cms/behaviors/dynamic_attributes_rb.html +101 -0
  504. data/doc/app/files/lib/cms/behaviors/flush_cache_on_change_rb.html +101 -0
  505. data/doc/app/files/lib/cms/behaviors/hiding_rb.html +101 -0
  506. data/doc/app/files/lib/cms/behaviors/pagination_rb.html +107 -0
  507. data/doc/app/files/lib/cms/behaviors/publishing_rb.html +101 -0
  508. data/doc/app/files/lib/cms/behaviors/rendering_rb.html +101 -0
  509. data/doc/app/files/lib/cms/behaviors/searching_rb.html +101 -0
  510. data/doc/app/files/lib/cms/behaviors/soft_deleting_rb.html +101 -0
  511. data/doc/app/files/lib/cms/behaviors/taggable_rb.html +101 -0
  512. data/doc/app/files/lib/cms/behaviors/userstamping_rb.html +101 -0
  513. data/doc/app/files/lib/cms/behaviors/versioning_rb.html +101 -0
  514. data/doc/app/files/lib/cms/behaviors_rb.html +147 -0
  515. data/doc/app/files/lib/cms/caching_rb.html +101 -0
  516. data/doc/app/files/lib/cms/data_loader_rb.html +101 -0
  517. data/doc/app/files/lib/cms/extensions/action_view/base_rb.html +101 -0
  518. data/doc/app/files/lib/cms/extensions/active_record/base_rb.html +101 -0
  519. data/doc/app/files/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements_rb.html +101 -0
  520. data/doc/app/files/lib/cms/extensions/active_record/errors_rb.html +101 -0
  521. data/doc/app/files/lib/cms/extensions/active_support/cache/file_store_rb.html +101 -0
  522. data/doc/app/files/lib/cms/extensions/hash_rb.html +101 -0
  523. data/doc/app/files/lib/cms/extensions/integer_rb.html +101 -0
  524. data/doc/app/files/lib/cms/extensions/nil_rb.html +101 -0
  525. data/doc/app/files/lib/cms/extensions/string_rb.html +101 -0
  526. data/doc/app/files/lib/cms/extensions_rb.html +101 -0
  527. data/doc/app/files/lib/cms/init_rb.html +101 -0
  528. data/doc/app/files/lib/cms/routes_rb.html +101 -0
  529. data/doc/app/files/lib/initial_data_rb.html +101 -0
  530. data/doc/app/files/lib/sequence_rb.html +101 -0
  531. data/doc/app/fr_class_index.html +205 -0
  532. data/doc/app/fr_file_index.html +152 -0
  533. data/doc/app/fr_method_index.html +738 -0
  534. data/doc/app/index.html +24 -0
  535. data/doc/app/rdoc-style.css +208 -0
  536. data/doc/guides/html/build_it_yourself.html +175 -0
  537. data/doc/guides/html/building_modules.html +193 -0
  538. data/doc/guides/html/deployment_guide.html +181 -0
  539. data/doc/guides/html/designer_guide.html +163 -0
  540. data/doc/guides/html/developer_guide.html +308 -0
  541. data/doc/guides/html/files/javascripts/code_highlighter.js +188 -0
  542. data/doc/guides/html/files/javascripts/guides.js +7 -0
  543. data/doc/guides/html/files/javascripts/highlighters.js +90 -0
  544. data/doc/guides/html/files/stylesheets/main.css +441 -0
  545. data/doc/guides/html/files/stylesheets/reset.css +43 -0
  546. data/doc/guides/html/files/stylesheets/style.css +13 -0
  547. data/doc/guides/html/files/stylesheets/syntax.css +31 -0
  548. data/doc/guides/html/getting_started.html +181 -0
  549. data/doc/guides/html/images/bg.png +0 -0
  550. data/doc/guides/html/images/bottom_cap.png +0 -0
  551. data/doc/guides/html/images/browsercms_logo.png +0 -0
  552. data/doc/guides/html/images/dot.png +0 -0
  553. data/doc/guides/html/images/icons/README +5 -0
  554. data/doc/guides/html/images/icons/callouts/1.png +0 -0
  555. data/doc/guides/html/images/icons/callouts/10.png +0 -0
  556. data/doc/guides/html/images/icons/callouts/11.png +0 -0
  557. data/doc/guides/html/images/icons/callouts/12.png +0 -0
  558. data/doc/guides/html/images/icons/callouts/13.png +0 -0
  559. data/doc/guides/html/images/icons/callouts/14.png +0 -0
  560. data/doc/guides/html/images/icons/callouts/15.png +0 -0
  561. data/doc/guides/html/images/icons/callouts/2.png +0 -0
  562. data/doc/guides/html/images/icons/callouts/3.png +0 -0
  563. data/doc/guides/html/images/icons/callouts/4.png +0 -0
  564. data/doc/guides/html/images/icons/callouts/5.png +0 -0
  565. data/doc/guides/html/images/icons/callouts/6.png +0 -0
  566. data/doc/guides/html/images/icons/callouts/7.png +0 -0
  567. data/doc/guides/html/images/icons/callouts/8.png +0 -0
  568. data/doc/guides/html/images/icons/callouts/9.png +0 -0
  569. data/doc/guides/html/images/icons/caution.png +0 -0
  570. data/doc/guides/html/images/icons/example.png +0 -0
  571. data/doc/guides/html/images/icons/home.png +0 -0
  572. data/doc/guides/html/images/icons/important.png +0 -0
  573. data/doc/guides/html/images/icons/next.png +0 -0
  574. data/doc/guides/html/images/icons/note.png +0 -0
  575. data/doc/guides/html/images/icons/prev.png +0 -0
  576. data/doc/guides/html/images/icons/tip.png +0 -0
  577. data/doc/guides/html/images/icons/up.png +0 -0
  578. data/doc/guides/html/images/icons/warning.png +0 -0
  579. data/doc/guides/html/images/top_cap.png +0 -0
  580. data/doc/guides/html/images/top_cap_content.png +0 -0
  581. data/doc/guides/html/index.html +168 -0
  582. data/doc/guides/html/installing_modules.html +181 -0
  583. data/doc/guides/html/user_guide.html +266 -0
  584. data/lib/acts_as_list.rb +256 -0
  585. data/lib/browsercms.rb +12 -0
  586. data/lib/cms/acts/content_block.rb +31 -0
  587. data/lib/cms/authentication/controller.rb +195 -0
  588. data/lib/cms/authentication/model.rb +116 -0
  589. data/lib/cms/behaviors/archiving.rb +43 -0
  590. data/lib/cms/behaviors/attaching.rb +184 -0
  591. data/lib/cms/behaviors/categorizing.rb +31 -0
  592. data/lib/cms/behaviors/connecting.rb +99 -0
  593. data/lib/cms/behaviors/dynamic_attributes.rb +367 -0
  594. data/lib/cms/behaviors/flush_cache_on_change.rb +33 -0
  595. data/lib/cms/behaviors/hiding.rb +46 -0
  596. data/lib/cms/behaviors/pagination.rb +209 -0
  597. data/lib/cms/behaviors/publishing.rb +123 -0
  598. data/lib/cms/behaviors/rendering.rb +157 -0
  599. data/lib/cms/behaviors/searching.rb +49 -0
  600. data/lib/cms/behaviors/soft_deleting.rb +77 -0
  601. data/lib/cms/behaviors/taggable.rb +57 -0
  602. data/lib/cms/behaviors/userstamping.rb +37 -0
  603. data/lib/cms/behaviors/versioning.rb +265 -0
  604. data/lib/cms/behaviors.rb +33 -0
  605. data/lib/cms/caching.rb +20 -0
  606. data/lib/cms/data_loader.rb +28 -0
  607. data/lib/cms/extensions/action_view/base.rb +13 -0
  608. data/lib/cms/extensions/active_record/base.rb +16 -0
  609. data/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements.rb +88 -0
  610. data/lib/cms/extensions/active_record/errors.rb +12 -0
  611. data/lib/cms/extensions/active_support/cache/file_store.rb +9 -0
  612. data/lib/cms/extensions/hash.rb +21 -0
  613. data/lib/cms/extensions/integer.rb +16 -0
  614. data/lib/cms/extensions/nil.rb +19 -0
  615. data/lib/cms/extensions/string.rb +19 -0
  616. data/lib/cms/extensions.rb +4 -0
  617. data/lib/cms/init.rb +106 -0
  618. data/lib/cms/routes.rb +136 -0
  619. data/lib/initial_data.rb +30 -0
  620. data/lib/sequence.rb +6 -0
  621. data/lib/tasks/cms.rake +39 -0
  622. data/lib/tasks/db.rake +71 -0
  623. data/lib/tasks/dev.rake +20 -0
  624. data/public/fckeditor/editor/css/behaviors/disablehandles.htc +15 -0
  625. data/public/fckeditor/editor/css/behaviors/showtableborders.htc +36 -0
  626. data/public/fckeditor/editor/css/fck_editorarea.css +110 -0
  627. data/public/fckeditor/editor/css/fck_internal.css +199 -0
  628. data/public/fckeditor/editor/css/fck_showtableborders_gecko.css +49 -0
  629. data/public/fckeditor/editor/css/images/block_address.png +0 -0
  630. data/public/fckeditor/editor/css/images/block_blockquote.png +0 -0
  631. data/public/fckeditor/editor/css/images/block_div.png +0 -0
  632. data/public/fckeditor/editor/css/images/block_h1.png +0 -0
  633. data/public/fckeditor/editor/css/images/block_h2.png +0 -0
  634. data/public/fckeditor/editor/css/images/block_h3.png +0 -0
  635. data/public/fckeditor/editor/css/images/block_h4.png +0 -0
  636. data/public/fckeditor/editor/css/images/block_h5.png +0 -0
  637. data/public/fckeditor/editor/css/images/block_h6.png +0 -0
  638. data/public/fckeditor/editor/css/images/block_p.png +0 -0
  639. data/public/fckeditor/editor/css/images/block_pre.png +0 -0
  640. data/public/fckeditor/editor/css/images/fck_anchor.gif +0 -0
  641. data/public/fckeditor/editor/css/images/fck_flashlogo.gif +0 -0
  642. data/public/fckeditor/editor/css/images/fck_hiddenfield.gif +0 -0
  643. data/public/fckeditor/editor/css/images/fck_pagebreak.gif +0 -0
  644. data/public/fckeditor/editor/css/images/fck_plugin.gif +0 -0
  645. data/public/fckeditor/editor/dialog/common/fck_dialog_common.css +85 -0
  646. data/public/fckeditor/editor/dialog/common/fck_dialog_common.js +311 -0
  647. data/public/fckeditor/editor/dialog/common/images/locked.gif +0 -0
  648. data/public/fckeditor/editor/dialog/common/images/reset.gif +0 -0
  649. data/public/fckeditor/editor/dialog/common/images/unlocked.gif +0 -0
  650. data/public/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif +0 -0
  651. data/public/fckeditor/editor/dialog/fck_about/logo_fredck.gif +0 -0
  652. data/public/fckeditor/editor/dialog/fck_about/sponsors/spellchecker_net.gif +0 -0
  653. data/public/fckeditor/editor/dialog/fck_about.html +161 -0
  654. data/public/fckeditor/editor/dialog/fck_anchor.html +220 -0
  655. data/public/fckeditor/editor/dialog/fck_button.html +104 -0
  656. data/public/fckeditor/editor/dialog/fck_checkbox.html +104 -0
  657. data/public/fckeditor/editor/dialog/fck_colorselector.html +172 -0
  658. data/public/fckeditor/editor/dialog/fck_div.html +364 -0
  659. data/public/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html +113 -0
  660. data/public/fckeditor/editor/dialog/fck_docprops.html +600 -0
  661. data/public/fckeditor/editor/dialog/fck_flash/fck_flash.js +300 -0
  662. data/public/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html +50 -0
  663. data/public/fckeditor/editor/dialog/fck_flash.html +152 -0
  664. data/public/fckeditor/editor/dialog/fck_form.html +109 -0
  665. data/public/fckeditor/editor/dialog/fck_hiddenfield.html +115 -0
  666. data/public/fckeditor/editor/dialog/fck_image/fck_image.js +512 -0
  667. data/public/fckeditor/editor/dialog/fck_image/fck_image_preview.html +72 -0
  668. data/public/fckeditor/editor/dialog/fck_image.html +258 -0
  669. data/public/fckeditor/editor/dialog/fck_link/fck_link.js +893 -0
  670. data/public/fckeditor/editor/dialog/fck_link.html +295 -0
  671. data/public/fckeditor/editor/dialog/fck_listprop.html +120 -0
  672. data/public/fckeditor/editor/dialog/fck_paste.html +346 -0
  673. data/public/fckeditor/editor/dialog/fck_radiobutton.html +104 -0
  674. data/public/fckeditor/editor/dialog/fck_replace.html +648 -0
  675. data/public/fckeditor/editor/dialog/fck_select/fck_select.js +194 -0
  676. data/public/fckeditor/editor/dialog/fck_select.html +180 -0
  677. data/public/fckeditor/editor/dialog/fck_smiley.html +111 -0
  678. data/public/fckeditor/editor/dialog/fck_source.html +68 -0
  679. data/public/fckeditor/editor/dialog/fck_specialchar.html +121 -0
  680. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html +0 -0
  681. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js +87 -0
  682. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html +153 -0
  683. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm +148 -0
  684. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php +199 -0
  685. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl +181 -0
  686. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js +461 -0
  687. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html +71 -0
  688. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css +49 -0
  689. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js +272 -0
  690. data/public/fckeditor/editor/dialog/fck_spellerpages.html +70 -0
  691. data/public/fckeditor/editor/dialog/fck_table.html +298 -0
  692. data/public/fckeditor/editor/dialog/fck_tablecell.html +257 -0
  693. data/public/fckeditor/editor/dialog/fck_template/images/template1.gif +0 -0
  694. data/public/fckeditor/editor/dialog/fck_template/images/template2.gif +0 -0
  695. data/public/fckeditor/editor/dialog/fck_template/images/template3.gif +0 -0
  696. data/public/fckeditor/editor/dialog/fck_template.html +242 -0
  697. data/public/fckeditor/editor/dialog/fck_textarea.html +94 -0
  698. data/public/fckeditor/editor/dialog/fck_textfield.html +136 -0
  699. data/public/fckeditor/editor/dtd/fck_dtd_test.html +41 -0
  700. data/public/fckeditor/editor/dtd/fck_xhtml10strict.js +116 -0
  701. data/public/fckeditor/editor/dtd/fck_xhtml10transitional.js +140 -0
  702. data/public/fckeditor/editor/fckdebug.html +153 -0
  703. data/public/fckeditor/editor/fckdialog.html +812 -0
  704. data/public/fckeditor/editor/fckeditor.html +317 -0
  705. data/public/fckeditor/editor/fckeditor.original.html +424 -0
  706. data/public/fckeditor/editor/filemanager/browser/default/browser.css +87 -0
  707. data/public/fckeditor/editor/filemanager/browser/default/browser.html +200 -0
  708. data/public/fckeditor/editor/filemanager/browser/default/frmactualfolder.html +95 -0
  709. data/public/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html +114 -0
  710. data/public/fckeditor/editor/filemanager/browser/default/frmfolders.html +198 -0
  711. data/public/fckeditor/editor/filemanager/browser/default/frmresourceslist.html +169 -0
  712. data/public/fckeditor/editor/filemanager/browser/default/frmresourcetype.html +68 -0
  713. data/public/fckeditor/editor/filemanager/browser/default/frmupload.html +115 -0
  714. data/public/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif +0 -0
  715. data/public/fckeditor/editor/filemanager/browser/default/images/Folder.gif +0 -0
  716. data/public/fckeditor/editor/filemanager/browser/default/images/Folder32.gif +0 -0
  717. data/public/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif +0 -0
  718. data/public/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif +0 -0
  719. data/public/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif +0 -0
  720. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif +0 -0
  721. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif +0 -0
  722. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif +0 -0
  723. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif +0 -0
  724. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif +0 -0
  725. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif +0 -0
  726. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif +0 -0
  727. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif +0 -0
  728. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif +0 -0
  729. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif +0 -0
  730. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif +0 -0
  731. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif +0 -0
  732. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif +0 -0
  733. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif +0 -0
  734. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif +0 -0
  735. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif +0 -0
  736. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif +0 -0
  737. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif +0 -0
  738. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif +0 -0
  739. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif +0 -0
  740. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif +0 -0
  741. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif +0 -0
  742. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif +0 -0
  743. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif +0 -0
  744. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif +0 -0
  745. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif +0 -0
  746. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif +0 -0
  747. data/public/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif +0 -0
  748. data/public/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif +0 -0
  749. data/public/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif +0 -0
  750. data/public/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif +0 -0
  751. data/public/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif +0 -0
  752. data/public/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif +0 -0
  753. data/public/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif +0 -0
  754. data/public/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif +0 -0
  755. data/public/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif +0 -0
  756. data/public/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif +0 -0
  757. data/public/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif +0 -0
  758. data/public/fckeditor/editor/filemanager/browser/default/images/icons/html.gif +0 -0
  759. data/public/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif +0 -0
  760. data/public/fckeditor/editor/filemanager/browser/default/images/icons/js.gif +0 -0
  761. data/public/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif +0 -0
  762. data/public/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif +0 -0
  763. data/public/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif +0 -0
  764. data/public/fckeditor/editor/filemanager/browser/default/images/icons/png.gif +0 -0
  765. data/public/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif +0 -0
  766. data/public/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif +0 -0
  767. data/public/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif +0 -0
  768. data/public/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif +0 -0
  769. data/public/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif +0 -0
  770. data/public/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif +0 -0
  771. data/public/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif +0 -0
  772. data/public/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif +0 -0
  773. data/public/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif +0 -0
  774. data/public/fckeditor/editor/filemanager/browser/default/images/spacer.gif +0 -0
  775. data/public/fckeditor/editor/filemanager/browser/default/js/common.js +88 -0
  776. data/public/fckeditor/editor/filemanager/browser/default/js/fckxml.js +147 -0
  777. data/public/fckeditor/editor/images/anchor.gif +0 -0
  778. data/public/fckeditor/editor/images/arrow_ltr.gif +0 -0
  779. data/public/fckeditor/editor/images/arrow_rtl.gif +0 -0
  780. data/public/fckeditor/editor/images/smiley/msn/angel_smile.gif +0 -0
  781. data/public/fckeditor/editor/images/smiley/msn/angry_smile.gif +0 -0
  782. data/public/fckeditor/editor/images/smiley/msn/broken_heart.gif +0 -0
  783. data/public/fckeditor/editor/images/smiley/msn/cake.gif +0 -0
  784. data/public/fckeditor/editor/images/smiley/msn/confused_smile.gif +0 -0
  785. data/public/fckeditor/editor/images/smiley/msn/cry_smile.gif +0 -0
  786. data/public/fckeditor/editor/images/smiley/msn/devil_smile.gif +0 -0
  787. data/public/fckeditor/editor/images/smiley/msn/embaressed_smile.gif +0 -0
  788. data/public/fckeditor/editor/images/smiley/msn/envelope.gif +0 -0
  789. data/public/fckeditor/editor/images/smiley/msn/heart.gif +0 -0
  790. data/public/fckeditor/editor/images/smiley/msn/kiss.gif +0 -0
  791. data/public/fckeditor/editor/images/smiley/msn/lightbulb.gif +0 -0
  792. data/public/fckeditor/editor/images/smiley/msn/omg_smile.gif +0 -0
  793. data/public/fckeditor/editor/images/smiley/msn/regular_smile.gif +0 -0
  794. data/public/fckeditor/editor/images/smiley/msn/sad_smile.gif +0 -0
  795. data/public/fckeditor/editor/images/smiley/msn/shades_smile.gif +0 -0
  796. data/public/fckeditor/editor/images/smiley/msn/teeth_smile.gif +0 -0
  797. data/public/fckeditor/editor/images/smiley/msn/thumbs_down.gif +0 -0
  798. data/public/fckeditor/editor/images/smiley/msn/thumbs_up.gif +0 -0
  799. data/public/fckeditor/editor/images/smiley/msn/tounge_smile.gif +0 -0
  800. data/public/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif +0 -0
  801. data/public/fckeditor/editor/images/smiley/msn/wink_smile.gif +0 -0
  802. data/public/fckeditor/editor/images/spacer.gif +0 -0
  803. data/public/fckeditor/editor/js/fckadobeair.js +176 -0
  804. data/public/fckeditor/editor/js/fckeditorcode_gecko.js +108 -0
  805. data/public/fckeditor/editor/js/fckeditorcode_ie.js +109 -0
  806. data/public/fckeditor/editor/lang/_translationstatus.txt +78 -0
  807. data/public/fckeditor/editor/lang/af.js +526 -0
  808. data/public/fckeditor/editor/lang/ar.js +526 -0
  809. data/public/fckeditor/editor/lang/bg.js +526 -0
  810. data/public/fckeditor/editor/lang/bn.js +526 -0
  811. data/public/fckeditor/editor/lang/bs.js +526 -0
  812. data/public/fckeditor/editor/lang/ca.js +526 -0
  813. data/public/fckeditor/editor/lang/cs.js +526 -0
  814. data/public/fckeditor/editor/lang/da.js +526 -0
  815. data/public/fckeditor/editor/lang/de.js +526 -0
  816. data/public/fckeditor/editor/lang/el.js +526 -0
  817. data/public/fckeditor/editor/lang/en-au.js +526 -0
  818. data/public/fckeditor/editor/lang/en-ca.js +526 -0
  819. data/public/fckeditor/editor/lang/en-uk.js +526 -0
  820. data/public/fckeditor/editor/lang/en.js +526 -0
  821. data/public/fckeditor/editor/lang/eo.js +526 -0
  822. data/public/fckeditor/editor/lang/es.js +526 -0
  823. data/public/fckeditor/editor/lang/et.js +526 -0
  824. data/public/fckeditor/editor/lang/eu.js +527 -0
  825. data/public/fckeditor/editor/lang/fa.js +526 -0
  826. data/public/fckeditor/editor/lang/fi.js +526 -0
  827. data/public/fckeditor/editor/lang/fo.js +526 -0
  828. data/public/fckeditor/editor/lang/fr-ca.js +526 -0
  829. data/public/fckeditor/editor/lang/fr.js +526 -0
  830. data/public/fckeditor/editor/lang/gl.js +526 -0
  831. data/public/fckeditor/editor/lang/gu.js +526 -0
  832. data/public/fckeditor/editor/lang/he.js +526 -0
  833. data/public/fckeditor/editor/lang/hi.js +526 -0
  834. data/public/fckeditor/editor/lang/hr.js +526 -0
  835. data/public/fckeditor/editor/lang/hu.js +526 -0
  836. data/public/fckeditor/editor/lang/it.js +526 -0
  837. data/public/fckeditor/editor/lang/ja.js +526 -0
  838. data/public/fckeditor/editor/lang/km.js +526 -0
  839. data/public/fckeditor/editor/lang/ko.js +526 -0
  840. data/public/fckeditor/editor/lang/lt.js +526 -0
  841. data/public/fckeditor/editor/lang/lv.js +526 -0
  842. data/public/fckeditor/editor/lang/mn.js +526 -0
  843. data/public/fckeditor/editor/lang/ms.js +526 -0
  844. data/public/fckeditor/editor/lang/nb.js +526 -0
  845. data/public/fckeditor/editor/lang/nl.js +526 -0
  846. data/public/fckeditor/editor/lang/no.js +526 -0
  847. data/public/fckeditor/editor/lang/pl.js +526 -0
  848. data/public/fckeditor/editor/lang/pt-br.js +526 -0
  849. data/public/fckeditor/editor/lang/pt.js +526 -0
  850. data/public/fckeditor/editor/lang/ro.js +526 -0
  851. data/public/fckeditor/editor/lang/ru.js +526 -0
  852. data/public/fckeditor/editor/lang/sk.js +526 -0
  853. data/public/fckeditor/editor/lang/sl.js +526 -0
  854. data/public/fckeditor/editor/lang/sr-latn.js +526 -0
  855. data/public/fckeditor/editor/lang/sr.js +526 -0
  856. data/public/fckeditor/editor/lang/sv.js +526 -0
  857. data/public/fckeditor/editor/lang/th.js +526 -0
  858. data/public/fckeditor/editor/lang/tr.js +526 -0
  859. data/public/fckeditor/editor/lang/uk.js +526 -0
  860. data/public/fckeditor/editor/lang/vi.js +526 -0
  861. data/public/fckeditor/editor/lang/zh-cn.js +526 -0
  862. data/public/fckeditor/editor/lang/zh.js +526 -0
  863. data/public/fckeditor/editor/plugins/autogrow/fckplugin.js +99 -0
  864. data/public/fckeditor/editor/plugins/bbcode/_sample/sample.config.js +26 -0
  865. data/public/fckeditor/editor/plugins/bbcode/_sample/sample.html +67 -0
  866. data/public/fckeditor/editor/plugins/bbcode/fckplugin.js +123 -0
  867. data/public/fckeditor/editor/plugins/dragresizetable/fckplugin.js +524 -0
  868. data/public/fckeditor/editor/plugins/placeholder/fck_placeholder.html +105 -0
  869. data/public/fckeditor/editor/plugins/placeholder/fckplugin.js +187 -0
  870. data/public/fckeditor/editor/plugins/placeholder/lang/de.js +27 -0
  871. data/public/fckeditor/editor/plugins/placeholder/lang/en.js +27 -0
  872. data/public/fckeditor/editor/plugins/placeholder/lang/es.js +27 -0
  873. data/public/fckeditor/editor/plugins/placeholder/lang/fr.js +27 -0
  874. data/public/fckeditor/editor/plugins/placeholder/lang/it.js +27 -0
  875. data/public/fckeditor/editor/plugins/placeholder/lang/pl.js +27 -0
  876. data/public/fckeditor/editor/plugins/placeholder/placeholder.gif +0 -0
  877. data/public/fckeditor/editor/plugins/simplecommands/fckplugin.js +29 -0
  878. data/public/fckeditor/editor/plugins/tablecommands/fckplugin.js +33 -0
  879. data/public/fckeditor/editor/skins/_fckviewstrips.html +121 -0
  880. data/public/fckeditor/editor/skins/default/fck_dialog.css +402 -0
  881. data/public/fckeditor/editor/skins/default/fck_dialog_ie6.js +110 -0
  882. data/public/fckeditor/editor/skins/default/fck_editor.css +464 -0
  883. data/public/fckeditor/editor/skins/default/fck_strip.gif +0 -0
  884. data/public/fckeditor/editor/skins/default/images/dialog.sides.gif +0 -0
  885. data/public/fckeditor/editor/skins/default/images/dialog.sides.png +0 -0
  886. data/public/fckeditor/editor/skins/default/images/dialog.sides.rtl.png +0 -0
  887. data/public/fckeditor/editor/skins/default/images/sprites.gif +0 -0
  888. data/public/fckeditor/editor/skins/default/images/sprites.png +0 -0
  889. data/public/fckeditor/editor/skins/default/images/toolbar.arrowright.gif +0 -0
  890. data/public/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif +0 -0
  891. data/public/fckeditor/editor/skins/default/images/toolbar.collapse.gif +0 -0
  892. data/public/fckeditor/editor/skins/default/images/toolbar.end.gif +0 -0
  893. data/public/fckeditor/editor/skins/default/images/toolbar.expand.gif +0 -0
  894. data/public/fckeditor/editor/skins/default/images/toolbar.separator.gif +0 -0
  895. data/public/fckeditor/editor/skins/default/images/toolbar.start.gif +0 -0
  896. data/public/fckeditor/editor/skins/office2003/fck_dialog.css +402 -0
  897. data/public/fckeditor/editor/skins/office2003/fck_dialog_ie6.js +110 -0
  898. data/public/fckeditor/editor/skins/office2003/fck_editor.css +476 -0
  899. data/public/fckeditor/editor/skins/office2003/fck_strip.gif +0 -0
  900. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.gif +0 -0
  901. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.png +0 -0
  902. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.rtl.png +0 -0
  903. data/public/fckeditor/editor/skins/office2003/images/sprites.gif +0 -0
  904. data/public/fckeditor/editor/skins/office2003/images/sprites.png +0 -0
  905. data/public/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif +0 -0
  906. data/public/fckeditor/editor/skins/office2003/images/toolbar.bg.gif +0 -0
  907. data/public/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif +0 -0
  908. data/public/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif +0 -0
  909. data/public/fckeditor/editor/skins/office2003/images/toolbar.end.gif +0 -0
  910. data/public/fckeditor/editor/skins/office2003/images/toolbar.expand.gif +0 -0
  911. data/public/fckeditor/editor/skins/office2003/images/toolbar.separator.gif +0 -0
  912. data/public/fckeditor/editor/skins/office2003/images/toolbar.start.gif +0 -0
  913. data/public/fckeditor/editor/skins/silver/fck_dialog.css +402 -0
  914. data/public/fckeditor/editor/skins/silver/fck_dialog_ie6.js +110 -0
  915. data/public/fckeditor/editor/skins/silver/fck_editor.css +473 -0
  916. data/public/fckeditor/editor/skins/silver/fck_strip.gif +0 -0
  917. data/public/fckeditor/editor/skins/silver/images/dialog.sides.gif +0 -0
  918. data/public/fckeditor/editor/skins/silver/images/dialog.sides.png +0 -0
  919. data/public/fckeditor/editor/skins/silver/images/dialog.sides.rtl.png +0 -0
  920. data/public/fckeditor/editor/skins/silver/images/sprites.gif +0 -0
  921. data/public/fckeditor/editor/skins/silver/images/sprites.png +0 -0
  922. data/public/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif +0 -0
  923. data/public/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif +0 -0
  924. data/public/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif +0 -0
  925. data/public/fckeditor/editor/skins/silver/images/toolbar.collapse.gif +0 -0
  926. data/public/fckeditor/editor/skins/silver/images/toolbar.end.gif +0 -0
  927. data/public/fckeditor/editor/skins/silver/images/toolbar.expand.gif +0 -0
  928. data/public/fckeditor/editor/skins/silver/images/toolbar.separator.gif +0 -0
  929. data/public/fckeditor/editor/skins/silver/images/toolbar.start.gif +0 -0
  930. data/public/fckeditor/fckconfig.js +364 -0
  931. data/public/fckeditor/fckdebug.html +153 -0
  932. data/public/fckeditor/fckdialog.html +812 -0
  933. data/public/fckeditor/fckeditor.html +317 -0
  934. data/public/fckeditor/fckeditor.js +328 -0
  935. data/public/fckeditor/fckeditor.original.html +424 -0
  936. data/public/fckeditor/fckpackager.xml +262 -0
  937. data/public/fckeditor/fckstyles.xml +111 -0
  938. data/public/fckeditor/fcktemplates.xml +103 -0
  939. data/public/images/cms/administration/user_browser_bg.gif +0 -0
  940. data/public/images/cms/bg.png +0 -0
  941. data/public/images/cms/bl_curve.png +0 -0
  942. data/public/images/cms/bottom_cap.png +0 -0
  943. data/public/images/cms/bottom_cap_content.png +0 -0
  944. data/public/images/cms/browse.gif +0 -0
  945. data/public/images/cms/browser_media_logo.png +0 -0
  946. data/public/images/cms/browsercms_logo.png +0 -0
  947. data/public/images/cms/buttons/button.png +0 -0
  948. data/public/images/cms/buttons/button_bg.png +0 -0
  949. data/public/images/cms/buttons/button_cap.png +0 -0
  950. data/public/images/cms/buttons/button_cap_h.png +0 -0
  951. data/public/images/cms/buttons/button_cap_off.gif +0 -0
  952. data/public/images/cms/buttons/button_cap_off_middle.gif +0 -0
  953. data/public/images/cms/buttons/button_h.png +0 -0
  954. data/public/images/cms/buttons/button_left_bg.png +0 -0
  955. data/public/images/cms/buttons/button_off.png +0 -0
  956. data/public/images/cms/buttons/button_off_middle.png +0 -0
  957. data/public/images/cms/buttons/delete_x.png +0 -0
  958. data/public/images/cms/buttons/delete_x_disabled.png +0 -0
  959. data/public/images/cms/buttons/delete_x_h.png +0 -0
  960. data/public/images/cms/buttons/sm_button.gif +0 -0
  961. data/public/images/cms/buttons/sm_button_2.gif +0 -0
  962. data/public/images/cms/buttons/sm_button_2_h.gif +0 -0
  963. data/public/images/cms/buttons/sm_button_h.gif +0 -0
  964. data/public/images/cms/containers/add.gif +0 -0
  965. data/public/images/cms/containers/alpha.png +0 -0
  966. data/public/images/cms/containers/beta.png +0 -0
  967. data/public/images/cms/containers/delete.gif +0 -0
  968. data/public/images/cms/containers/down.gif +0 -0
  969. data/public/images/cms/containers/edit.gif +0 -0
  970. data/public/images/cms/containers/up.gif +0 -0
  971. data/public/images/cms/containers/view.gif +0 -0
  972. data/public/images/cms/content_bg.gif +0 -0
  973. data/public/images/cms/dashboard/bottom_cap.png +0 -0
  974. data/public/images/cms/dashboard/bottom_cap_content.png +0 -0
  975. data/public/images/cms/dashboard/header_bg.gif +0 -0
  976. data/public/images/cms/dashboard/header_left_bg.gif +0 -0
  977. data/public/images/cms/dashboard/table_header_bg.gif +0 -0
  978. data/public/images/cms/dashboard/top_cap.png +0 -0
  979. data/public/images/cms/dashed.gif +0 -0
  980. data/public/images/cms/datepicker/clear.gif +0 -0
  981. data/public/images/cms/datepicker/close.gif +0 -0
  982. data/public/images/cms/dk_button_l.gif +0 -0
  983. data/public/images/cms/dk_button_r.gif +0 -0
  984. data/public/images/cms/dot.png +0 -0
  985. data/public/images/cms/draft_status.gif +0 -0
  986. data/public/images/cms/gray_long_bg.gif +0 -0
  987. data/public/images/cms/icons/actions/add.png +0 -0
  988. data/public/images/cms/icons/actions/config.png +0 -0
  989. data/public/images/cms/icons/actions/connect.png +0 -0
  990. data/public/images/cms/icons/actions/delete.png +0 -0
  991. data/public/images/cms/icons/actions/down.png +0 -0
  992. data/public/images/cms/icons/actions/edit.png +0 -0
  993. data/public/images/cms/icons/actions/folder.png +0 -0
  994. data/public/images/cms/icons/actions/folder_add.png +0 -0
  995. data/public/images/cms/icons/actions/folder_delete.png +0 -0
  996. data/public/images/cms/icons/actions/folder_edit.png +0 -0
  997. data/public/images/cms/icons/actions/folder_move.png +0 -0
  998. data/public/images/cms/icons/actions/folder_open.png +0 -0
  999. data/public/images/cms/icons/actions/history.png +0 -0
  1000. data/public/images/cms/icons/actions/home.png +0 -0
  1001. data/public/images/cms/icons/actions/left.png +0 -0
  1002. data/public/images/cms/icons/actions/link.png +0 -0
  1003. data/public/images/cms/icons/actions/page.png +0 -0
  1004. data/public/images/cms/icons/actions/page_add.png +0 -0
  1005. data/public/images/cms/icons/actions/page_edit.png +0 -0
  1006. data/public/images/cms/icons/actions/page_move.png +0 -0
  1007. data/public/images/cms/icons/actions/redo.png +0 -0
  1008. data/public/images/cms/icons/actions/refresh.png +0 -0
  1009. data/public/images/cms/icons/actions/right.png +0 -0
  1010. data/public/images/cms/icons/actions/root_folder.png +0 -0
  1011. data/public/images/cms/icons/actions/root_link.png +0 -0
  1012. data/public/images/cms/icons/actions/root_page.png +0 -0
  1013. data/public/images/cms/icons/actions/undo.png +0 -0
  1014. data/public/images/cms/icons/actions/up.png +0 -0
  1015. data/public/images/cms/icons/actions/view.png +0 -0
  1016. data/public/images/cms/icons/file_types/doc.png +0 -0
  1017. data/public/images/cms/icons/file_types/file.png +0 -0
  1018. data/public/images/cms/icons/file_types/gif.png +0 -0
  1019. data/public/images/cms/icons/file_types/htm.png +0 -0
  1020. data/public/images/cms/icons/file_types/pdf.png +0 -0
  1021. data/public/images/cms/icons/file_types/ppt.png +0 -0
  1022. data/public/images/cms/icons/file_types/swf.png +0 -0
  1023. data/public/images/cms/icons/file_types/txt.png +0 -0
  1024. data/public/images/cms/icons/file_types/xls.png +0 -0
  1025. data/public/images/cms/icons/file_types/xml.png +0 -0
  1026. data/public/images/cms/icons/file_types/zip.png +0 -0
  1027. data/public/images/cms/icons/status/archived.gif +0 -0
  1028. data/public/images/cms/icons/status/draft.gif +0 -0
  1029. data/public/images/cms/icons/status/hidden.gif +0 -0
  1030. data/public/images/cms/icons/status/locked.gif +0 -0
  1031. data/public/images/cms/icons/status/published.gif +0 -0
  1032. data/public/images/cms/icons/status/unlocked.gif +0 -0
  1033. data/public/images/cms/icons/user.png +0 -0
  1034. data/public/images/cms/login_bg.jpg +0 -0
  1035. data/public/images/cms/login_bottom.jpg +0 -0
  1036. data/public/images/cms/login_top.gif +0 -0
  1037. data/public/images/cms/lt_button_bg.gif +0 -0
  1038. data/public/images/cms/lt_button_l.gif +0 -0
  1039. data/public/images/cms/lt_button_r.gif +0 -0
  1040. data/public/images/cms/menu/block_cap_h.gif +0 -0
  1041. data/public/images/cms/menu/bottom_cap.png +0 -0
  1042. data/public/images/cms/menu/bottom_cap_menu.png +0 -0
  1043. data/public/images/cms/menu/bottom_cap_menu_first.png +0 -0
  1044. data/public/images/cms/menu/menu_header_first_bg.gif +0 -0
  1045. data/public/images/cms/menu/selected_block_cap.gif +0 -0
  1046. data/public/images/cms/menu/top_cap.png +0 -0
  1047. data/public/images/cms/menu/top_cap_menu_header.png +0 -0
  1048. data/public/images/cms/menu.png +0 -0
  1049. data/public/images/cms/menu_h.gif +0 -0
  1050. data/public/images/cms/menu_header.png +0 -0
  1051. data/public/images/cms/menu_open.png +0 -0
  1052. data/public/images/cms/menu_open_bg.gif +0 -0
  1053. data/public/images/cms/nav/on_bg.gif +0 -0
  1054. data/public/images/cms/nav.png +0 -0
  1055. data/public/images/cms/nav_admin.gif +0 -0
  1056. data/public/images/cms/nav_admin_h.gif +0 -0
  1057. data/public/images/cms/nav_admin_on.gif +0 -0
  1058. data/public/images/cms/nav_cap.png +0 -0
  1059. data/public/images/cms/nav_cap_h.gif +0 -0
  1060. data/public/images/cms/nav_content_library.gif +0 -0
  1061. data/public/images/cms/nav_content_library_h.gif +0 -0
  1062. data/public/images/cms/nav_content_library_on.gif +0 -0
  1063. data/public/images/cms/nav_dash.gif +0 -0
  1064. data/public/images/cms/nav_dash_h.gif +0 -0
  1065. data/public/images/cms/nav_dash_on.gif +0 -0
  1066. data/public/images/cms/nav_h.gif +0 -0
  1067. data/public/images/cms/nav_sitemap.gif +0 -0
  1068. data/public/images/cms/nav_sitemap_h.gif +0 -0
  1069. data/public/images/cms/nav_sitemap_on.gif +0 -0
  1070. data/public/images/cms/page_toolbar/page_toolbar_bg.gif +0 -0
  1071. data/public/images/cms/page_toolbar/page_toolbar_inset_bg.gif +0 -0
  1072. data/public/images/cms/page_toolbar/page_toolbar_inset_draft_bg.gif +0 -0
  1073. data/public/images/cms/page_toolbar/page_toolbar_inset_draft_l.gif +0 -0
  1074. data/public/images/cms/page_toolbar/page_toolbar_inset_draft_r.gif +0 -0
  1075. data/public/images/cms/page_toolbar/page_toolbar_inset_l.gif +0 -0
  1076. data/public/images/cms/page_toolbar/page_toolbar_inset_published_bg.gif +0 -0
  1077. data/public/images/cms/page_toolbar/page_toolbar_inset_published_l.gif +0 -0
  1078. data/public/images/cms/page_toolbar/page_toolbar_inset_published_r.gif +0 -0
  1079. data/public/images/cms/page_toolbar/page_toolbar_inset_r.gif +0 -0
  1080. data/public/images/cms/page_toolbar/page_toolbar_l.gif +0 -0
  1081. data/public/images/cms/page_toolbar/page_toolbar_r.gif +0 -0
  1082. data/public/images/cms/page_toolbar/status_draft_bg.gif +0 -0
  1083. data/public/images/cms/page_toolbar/status_draft_l.gif +0 -0
  1084. data/public/images/cms/page_toolbar/status_l.gif +0 -0
  1085. data/public/images/cms/page_toolbar/status_published_bg.gif +0 -0
  1086. data/public/images/cms/page_toolbar/status_published_l.gif +0 -0
  1087. data/public/images/cms/page_toolbar/visual_editor_bg.gif +0 -0
  1088. data/public/images/cms/page_toolbar/visual_editor_end.gif +0 -0
  1089. data/public/images/cms/page_toolbar/visual_editor_r.gif +0 -0
  1090. data/public/images/cms/page_toolbar/visual_editor_state_bg.gif +0 -0
  1091. data/public/images/cms/pages/add_connectable.gif +0 -0
  1092. data/public/images/cms/pages/connect_connectable.gif +0 -0
  1093. data/public/images/cms/pages/container_border.gif +0 -0
  1094. data/public/images/cms/pages/container_border_l.gif +0 -0
  1095. data/public/images/cms/pages/container_border_r.gif +0 -0
  1096. data/public/images/cms/pages/delete_connectable.gif +0 -0
  1097. data/public/images/cms/pages/down_connectable.gif +0 -0
  1098. data/public/images/cms/pages/down_connectable_disabled.gif +0 -0
  1099. data/public/images/cms/pages/edit_connectable.gif +0 -0
  1100. data/public/images/cms/pages/edit_connectable_2.gif +0 -0
  1101. data/public/images/cms/pages/show_connectable.gif +0 -0
  1102. data/public/images/cms/pages/up_connectable.gif +0 -0
  1103. data/public/images/cms/pages/up_connectable_disabled.gif +0 -0
  1104. data/public/images/cms/pagination/first.gif +0 -0
  1105. data/public/images/cms/pagination/first_h.gif +0 -0
  1106. data/public/images/cms/pagination/input.gif +0 -0
  1107. data/public/images/cms/pagination/last.gif +0 -0
  1108. data/public/images/cms/pagination/last_h.gif +0 -0
  1109. data/public/images/cms/pagination/next.gif +0 -0
  1110. data/public/images/cms/pagination/next_h.gif +0 -0
  1111. data/public/images/cms/pagination/previous.gif +0 -0
  1112. data/public/images/cms/pagination/previous_h.gif +0 -0
  1113. data/public/images/cms/published_status.gif +0 -0
  1114. data/public/images/cms/search.png +0 -0
  1115. data/public/images/cms/search_submit.gif +0 -0
  1116. data/public/images/cms/search_submit_h.gif +0 -0
  1117. data/public/images/cms/searchbox_gradient.gif +0 -0
  1118. data/public/images/cms/select_bg.gif +0 -0
  1119. data/public/images/cms/select_bg_2.gif +0 -0
  1120. data/public/images/cms/sitemap/bottom_cap.png +0 -0
  1121. data/public/images/cms/sitemap/buffer_caps.png +0 -0
  1122. data/public/images/cms/sitemap/contract.png +0 -0
  1123. data/public/images/cms/sitemap/corners.gif +0 -0
  1124. data/public/images/cms/sitemap/corners_hover.gif +0 -0
  1125. data/public/images/cms/sitemap/divider.gif +0 -0
  1126. data/public/images/cms/sitemap/expand.png +0 -0
  1127. data/public/images/cms/sitemap/gradient.gif +0 -0
  1128. data/public/images/cms/sitemap/gray_contract.png +0 -0
  1129. data/public/images/cms/sitemap/gray_expand.png +0 -0
  1130. data/public/images/cms/sitemap/no_contents.png +0 -0
  1131. data/public/images/cms/sitemap/site_root_cap.png +0 -0
  1132. data/public/images/cms/sitemap/tooltip.gif +0 -0
  1133. data/public/images/cms/sitemap/top_cap_content.png +0 -0
  1134. data/public/images/cms/solid.gif +0 -0
  1135. data/public/images/cms/table/bl.gif +0 -0
  1136. data/public/images/cms/table/br.gif +0 -0
  1137. data/public/images/cms/table/divider.gif +0 -0
  1138. data/public/images/cms/table/td_cap_first_h.gif +0 -0
  1139. data/public/images/cms/table/td_cap_first_s.gif +0 -0
  1140. data/public/images/cms/table/td_cap_last_h.gif +0 -0
  1141. data/public/images/cms/table/td_cap_last_s.gif +0 -0
  1142. data/public/images/cms/table/td_last_bg.gif +0 -0
  1143. data/public/images/cms/table/th_bg.gif +0 -0
  1144. data/public/images/cms/table/th_divider.gif +0 -0
  1145. data/public/images/cms/table/th_last_bg.gif +0 -0
  1146. data/public/images/cms/table/tl.gif +0 -0
  1147. data/public/images/cms/table/tr.gif +0 -0
  1148. data/public/images/cms/table/tr_bg.gif +0 -0
  1149. data/public/images/cms/thickbox/loadingAnimation.gif +0 -0
  1150. data/public/images/cms/thickbox/macFFBgHack.png +0 -0
  1151. data/public/images/cms/toolbar_bg.png +0 -0
  1152. data/public/images/cms/top_cap.png +0 -0
  1153. data/public/images/cms/top_cap_content.png +0 -0
  1154. data/public/images/cms/top_cap_menu_header.png +0 -0
  1155. data/public/images/cms/user_search_submit.gif +0 -0
  1156. data/public/images/cms/usercontrols_bg.png +0 -0
  1157. data/public/images/cms/usercontrols_bg_cap.png +0 -0
  1158. data/public/javascripts/cms/application.js +148 -0
  1159. data/public/javascripts/cms/editor.js +56 -0
  1160. data/public/javascripts/cms/sitemap.js +438 -0
  1161. data/public/javascripts/jquery-ui.js +591 -0
  1162. data/public/javascripts/jquery.contextMenu.js +211 -0
  1163. data/public/javascripts/jquery.cookie.js +96 -0
  1164. data/public/javascripts/jquery.dimensions.js +119 -0
  1165. data/public/javascripts/jquery.js +11 -0
  1166. data/public/javascripts/jquery.selectbox-0.5.js +209 -0
  1167. data/public/javascripts/jquery.taglist.js +136 -0
  1168. data/public/javascripts/jquery.thickbox.js +10 -0
  1169. data/public/site/customconfig.js +1 -0
  1170. data/public/stylesheets/cms/administration.css +91 -0
  1171. data/public/stylesheets/cms/application.css +166 -0
  1172. data/public/stylesheets/cms/block.css +26 -0
  1173. data/public/stylesheets/cms/buttons.css +120 -0
  1174. data/public/stylesheets/cms/content_library.css +139 -0
  1175. data/public/stylesheets/cms/content_types.css +4 -0
  1176. data/public/stylesheets/cms/dashboard.css +118 -0
  1177. data/public/stylesheets/cms/data_table.css +156 -0
  1178. data/public/stylesheets/cms/date_picker.css +73 -0
  1179. data/public/stylesheets/cms/form_layout.css +283 -0
  1180. data/public/stylesheets/cms/jquery.contextMenu.css +61 -0
  1181. data/public/stylesheets/cms/login.css +78 -0
  1182. data/public/stylesheets/cms/menu.css +116 -0
  1183. data/public/stylesheets/cms/nav.css +99 -0
  1184. data/public/stylesheets/cms/page_toolbar.css +135 -0
  1185. data/public/stylesheets/cms/reset.css +46 -0
  1186. data/public/stylesheets/cms/selectbox.css +56 -0
  1187. data/public/stylesheets/cms/sitemap.css +390 -0
  1188. data/public/stylesheets/cms/taglist.css +18 -0
  1189. data/public/stylesheets/cms/thickbox.css +163 -0
  1190. data/public/themes/blue_steel/images/logo.jpg +0 -0
  1191. data/public/themes/blue_steel/images/splash.jpg +0 -0
  1192. data/public/themes/blue_steel/stylesheets/style.css +257 -0
  1193. data/rails/init.rb +3 -0
  1194. data/rails_generators/browser_cms/USAGE +2 -0
  1195. data/rails_generators/browser_cms/browser_cms_generator.rb +35 -0
  1196. data/rails_generators/browser_cms/templates/README +1 -0
  1197. data/rails_generators/browser_cms_demo_site/USAGE +1 -0
  1198. data/rails_generators/browser_cms_demo_site/browser_cms_demo_site_generator.rb +63 -0
  1199. data/rails_generators/browser_cms_demo_site/templates/migration.rb +21 -0
  1200. data/rails_generators/content_block/USAGE +32 -0
  1201. data/rails_generators/content_block/content_block_generator.rb +69 -0
  1202. data/rails_generators/content_block/templates/_form.html.erb +22 -0
  1203. data/rails_generators/content_block/templates/content_block.rb +27 -0
  1204. data/rails_generators/content_block/templates/controller.rb +2 -0
  1205. data/rails_generators/content_block/templates/functional_test.erb +11 -0
  1206. data/rails_generators/content_block/templates/migration.rb +38 -0
  1207. data/rails_generators/content_block/templates/render.html.erb +14 -0
  1208. data/rails_generators/content_block/templates/unit_test.erb +9 -0
  1209. data/rails_generators/portlet/USAGE +37 -0
  1210. data/rails_generators/portlet/portlet_generator.rb +31 -0
  1211. data/rails_generators/portlet/templates/_form.html.erb +6 -0
  1212. data/rails_generators/portlet/templates/portlet.rb +7 -0
  1213. data/rails_generators/portlet/templates/render.html.erb +1 -0
  1214. data/rails_generators/portlet/templates/unit_test.erb +9 -0
  1215. data/templates/blank.rb +36 -0
  1216. data/templates/demo.rb +28 -0
  1217. data/templates/module.rb +945 -0
  1218. data/test/custom_assertions.rb +68 -0
  1219. data/test/factories.rb +109 -0
  1220. data/test/functional/cms/cache_controller_test.rb +14 -0
  1221. data/test/functional/cms/categories_controller_test.rb +25 -0
  1222. data/test/functional/cms/connectors_controller_test.rb +60 -0
  1223. data/test/functional/cms/content_block_controller_test.rb +120 -0
  1224. data/test/functional/cms/content_controller_test.rb +434 -0
  1225. data/test/functional/cms/content_types_controller_test.rb +18 -0
  1226. data/test/functional/cms/dashboard_controller_test.rb +17 -0
  1227. data/test/functional/cms/dynamic_views_controller_test.rb +28 -0
  1228. data/test/functional/cms/file_blocks_controller_test.rb +51 -0
  1229. data/test/functional/cms/groups_controller_test.rb +50 -0
  1230. data/test/functional/cms/home_controller_test.rb +156 -0
  1231. data/test/functional/cms/html_blocks_controller_test.rb +163 -0
  1232. data/test/functional/cms/image_blocks_controller_test.rb +75 -0
  1233. data/test/functional/cms/links_controller_test.rb +148 -0
  1234. data/test/functional/cms/pages_controller_test.rb +220 -0
  1235. data/test/functional/cms/portlets_controller_test.rb +67 -0
  1236. data/test/functional/cms/section_nodes_controller_test.rb +84 -0
  1237. data/test/functional/cms/sections_controller_test.rb +225 -0
  1238. data/test/functional/cms/sessions_controller_test.rb +52 -0
  1239. data/test/functional/cms/toolbar_controller_test.rb +64 -0
  1240. data/test/functional/cms/users_controller_test.rb +231 -0
  1241. data/test/integration/login_test.rb +14 -0
  1242. data/test/test_helper.rb +161 -0
  1243. data/test/test_logging.rb +67 -0
  1244. data/test/unit/behaviors/attaching_test.rb +359 -0
  1245. data/test/unit/behaviors/dynamic_attributes_test.rb +38 -0
  1246. data/test/unit/behaviors/publishable_test.rb +53 -0
  1247. data/test/unit/behaviors/searching_test.rb +102 -0
  1248. data/test/unit/behaviors/taggable_test.rb +109 -0
  1249. data/test/unit/extensions/active_record/base_test.rb +10 -0
  1250. data/test/unit/extensions/hash_test.rb +17 -0
  1251. data/test/unit/extensions/integer_test.rb +10 -0
  1252. data/test/unit/helpers/application_helper_test.rb +29 -0
  1253. data/test/unit/helpers/form_builder_test.rb +17 -0
  1254. data/test/unit/helpers/menu_helper_test.rb +217 -0
  1255. data/test/unit/helpers/page_helper_test.rb +57 -0
  1256. data/test/unit/helpers/path_helper_test.rb +57 -0
  1257. data/test/unit/lib/content_block_test.rb +166 -0
  1258. data/test/unit/lib/generators_test.rb +40 -0
  1259. data/test/unit/lib/routes_test.rb +57 -0
  1260. data/test/unit/models/attachment_test.rb +96 -0
  1261. data/test/unit/models/category_test.rb +40 -0
  1262. data/test/unit/models/category_type_test.rb +8 -0
  1263. data/test/unit/models/connector_test.rb +152 -0
  1264. data/test/unit/models/content_type_test.rb +44 -0
  1265. data/test/unit/models/email_page_portlet_test.rb +14 -0
  1266. data/test/unit/models/file_block_test.rb +211 -0
  1267. data/test/unit/models/group_test.rb +7 -0
  1268. data/test/unit/models/html_block_test.rb +102 -0
  1269. data/test/unit/models/link_test.rb +8 -0
  1270. data/test/unit/models/page_partial_test.rb +29 -0
  1271. data/test/unit/models/page_route_test.rb +29 -0
  1272. data/test/unit/models/page_template_test.rb +37 -0
  1273. data/test/unit/models/page_test.rb +726 -0
  1274. data/test/unit/models/permission_test.rb +10 -0
  1275. data/test/unit/models/portlet_test.rb +21 -0
  1276. data/test/unit/models/section_node_test.rb +92 -0
  1277. data/test/unit/models/sections_test.rb +125 -0
  1278. data/test/unit/models/site_test.rb +50 -0
  1279. data/test/unit/models/task_test.rb +126 -0
  1280. data/test/unit/models/user_test.rb +228 -0
  1281. data/test/unit/schema_statements_test.rb +41 -0
  1282. metadata +1335 -0
@@ -0,0 +1,181 @@
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>BrowserCMS Deployment 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
+
109
+ </style>
110
+ </head>
111
+ <body>
112
+ <div id="page">
113
+ <div id="header">
114
+ <a href="index.html"><img style="border:0px" src="images/browsercms_logo.png" alt="BrowserCMS"/></a>
115
+ </div>
116
+ <div id="main">
117
+ <div class="top_cap"></div>
118
+ <div id="contentwrap">
119
+ <div class="title">
120
+ <h1>BrowserCMS Deployment Guide</h1>
121
+ </div>
122
+ <div class="top_cap_content"></div>
123
+ <div id="content">
124
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
125
+ <tr>
126
+ <td class="sidebar" valign="top">
127
+ <div id="subCol">
128
+ <h3 class="chapter"><img src="images/chapters_icon.gif" alt="" />Chapters</h3>
129
+ <ol class="chapters">
130
+ <li><a href="#configure-the-production-environment">Configure the Production Environment</a><ul></ul></li><li><a href="#setting-up-virtual-hosts-for-page-caching">Setting Up Virtual Hosts for Page Caching</a><ul></ul></li></ol></div>
131
+ </td>
132
+ <td class="guides">
133
+ <h2>BrowserCMS Deployment Guide</h2>
134
+ <p>This guide covers how to setup the Apache Passenger (mod_rails) production environment for your BrowserCMS application.</p>
135
+ <h3 id="configure-the-production-environment">1 Configure the Production Environment</h3>
136
+ <p>Make sure the config/environments/production.rb file has these two configuration settings. If you created your BrowserCMS Rails app using one of the application templates, this will already have been added.</p>
137
+ <div class="code_container"><code class="ruby">config.action_view.cache_template_loading = false
138
+ config.action_controller.page_cache_directory = RAILS_ROOT + &quot;/public/cache/&quot;</code></div>
139
+ <h3 id="setting-up-virtual-hosts-for-page-caching">2 Setting Up Virtual Hosts for Page Caching</h3>
140
+ <p>In order to setup BrowserCMS to due page caching, you need to create two virtual hosts for your site. The main purpose for this is to allow page caching to work when you access a page on the main site, but then have the pages not be served from the cache when you are working in the BrowserCMS interface.</p>
141
+ <div class="code_container"><code class="plain">&lt;VirtualHost *:80&gt;
142
+ ServerName cms.mysite.com
143
+ DocumentRoot &quot;/var/sites/mysite/public&quot;
144
+ RailsEnv production
145
+ &lt;directory &quot;/var/sites/mysite/public&quot;&gt;
146
+ Order allow,deny
147
+ Allow from all
148
+ &lt;/directory&gt;
149
+ &lt;/VirtualHost&gt;
150
+
151
+ &lt;VirtualHost *:80&gt;
152
+ ServerName mysite.com
153
+ DocumentRoot &quot;/var/sites/mysite/public&quot;
154
+ RailsEnv production
155
+ RewriteEngine On
156
+
157
+ # Uncomment for rewrite debugging
158
+ #RewriteLog /var/sites/mysite/log/rewrite.log
159
+ #RewriteLogLevel 9
160
+
161
+ #apache should serve cached pages
162
+ RewriteRule ^/$ /cache/index.html [QSA]
163
+ RewriteRule ^([^.]+)$ /cache/$1.html [QSA]
164
+
165
+ &lt;directory &quot;/var/sites/mysite/public&quot;&gt;
166
+ Order allow,deny
167
+ Allow from all
168
+ &lt;/directory&gt;
169
+ &lt;/VirtualHost&gt;</code></div>
170
+ </td>
171
+ </tr>
172
+ </table>
173
+ </div>
174
+ </div>
175
+ <br clear="all"/>
176
+ <div class="bottom_cap"></div>
177
+ </div>
178
+ </div>
179
+ </body>
180
+ </html>
181
+
@@ -0,0 +1,163 @@
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>BrowserCMS Designer 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
+
109
+ </style>
110
+ </head>
111
+ <body>
112
+ <div id="page">
113
+ <div id="header">
114
+ <a href="index.html"><img style="border:0px" src="images/browsercms_logo.png" alt="BrowserCMS"/></a>
115
+ </div>
116
+ <div id="main">
117
+ <div class="top_cap"></div>
118
+ <div id="contentwrap">
119
+ <div class="title">
120
+ <h1>BrowserCMS Designer Guide</h1>
121
+ </div>
122
+ <div class="top_cap_content"></div>
123
+ <div id="content">
124
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
125
+ <tr>
126
+ <td class="sidebar" valign="top">
127
+ <div id="subCol">
128
+ <h3 class="chapter"><img src="images/chapters_icon.gif" alt="" />Chapters</h3>
129
+ <ol class="chapters">
130
+ </ol></div>
131
+ </td>
132
+ <td class="guides">
133
+ <h2>BrowserCMS Designer Guide</h2>
134
+ <p>This guide covers how to set up styled templates for BrowserCMS. This guide will cover:</p>
135
+ <ul>
136
+ <li>How to create custom page templates</li>
137
+ <li>How to create custom page partials</li>
138
+ <li>How to use helpers to add dynamic content to templates and partials</li>
139
+ <li>How to use the <span class="caps">CMS</span>-specific form builder extensions</li>
140
+ </ul>
141
+ <h2>Creating a template
142
+ Each page in BrowserCMS uses a single template, which is designed to provide overall layout structure of the page. Here&#8217;s the general process
143
+ that a design team might follow to create a <span class="caps">CMS</span> template.</h2>
144
+ <p>1. Start with a <span class="caps">PSD</span> or <span class="caps">JPG</span> of the design, which represents the end result of what the webpage should look like.
145
+ 2. Create a static html file which implements that design.
146
+ 3. When creating menus, use the same structural <span class="caps">HTML</span> markup as will be generated by the Menu <span class="caps">API</span>. (See Menu&#8217;s below)
147
+ 4. Change the file extension from .htm to .html.erb and add it as a template to the <span class="caps">CMS</span>.</p>
148
+ <h2>Menus
149
+ BrowserCMS provides an <span class="caps">API</span> to allow menus to be dynamically generated based on the sitemap. The purpose of this is to make
150
+ it easy to add new pages, without having to modify templates.</h2>
151
+ <div class="code_container"><code class="ruby">render_menu</code></div>
152
+ </td>
153
+ </tr>
154
+ </table>
155
+ </div>
156
+ </div>
157
+ <br clear="all"/>
158
+ <div class="bottom_cap"></div>
159
+ </div>
160
+ </div>
161
+ </body>
162
+ </html>
163
+
@@ -0,0 +1,308 @@
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>BrowserCMS Developer 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
+
109
+ </style>
110
+ </head>
111
+ <body>
112
+ <div id="page">
113
+ <div id="header">
114
+ <a href="index.html"><img style="border:0px" src="images/browsercms_logo.png" alt="BrowserCMS"/></a>
115
+ </div>
116
+ <div id="main">
117
+ <div class="top_cap"></div>
118
+ <div id="contentwrap">
119
+ <div class="title">
120
+ <h1>BrowserCMS Developer Guide</h1>
121
+ </div>
122
+ <div class="top_cap_content"></div>
123
+ <div id="content">
124
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
125
+ <tr>
126
+ <td class="sidebar" valign="top">
127
+ <div id="subCol">
128
+ <h3 class="chapter"><img src="images/chapters_icon.gif" alt="" />Chapters</h3>
129
+ <ol class="chapters">
130
+ <li><a href="#content-blocks">Content Blocks</a><ul></ul></li><li><a href="#creating-a-custom-content-block">Creating A Custom Content Block</a><ul><li><a href="#attribute-types">Attribute Types</a></li></ul></li><li><a href="#creating-a-custom-portlet">Creating A Custom Portlet</a><ul><li><a href="#using-file-system-templates">Using File system templates</a></li><li><a href="#pre-selecting-a-handler">Pre-selecting a handler</a></li></ul></li><li><a href="#page-routes">Page Routes</a><ul></ul></li></ol></div>
131
+ </td>
132
+ <td class="guides">
133
+ <h2>BrowserCMS Developer Guide</h2>
134
+ <p>This guide covers how to use the tools that come with BrowserCMS to extend the functionality of your BrowserCMS site. The target audience for this guide is intermediate to advanced Rails developers. You should also read the <a href="user_guide.html">Building a Site with BrowserCMS</a> guide first as well, so you know how to create pages and put content on pages. This guide will cover:</p>
135
+ <ul>
136
+ <li>What content blocks and portlets are and how they work</li>
137
+ <li>How to create custom content blocks</li>
138
+ <li>How to create custom portlets</li>
139
+ <li>How to create friendly URLs for pages</li>
140
+ </ul>
141
+ <h3 id="content-blocks">1 Content Blocks</h3>
142
+ <p>Content Blocks are the basic unit used to add content to pages in a BrowserCMS site. There are several pre-built content types that are part of BrowserCMS core. The most commonly used one is the HtmlBlock content type, so we will use that as a starting example.</p>
143
+ <p>If you look at the HtmlBlock model in BrowserCMS core, you will see that it is an ActiveRecord model, just like any model you create in a Rails application. It also calls the <a href="/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods.html">acts_as_content_block</a> method, which just sets up several <a href="/doc/app/classes/Cms/Behaviors.html">Behaviors</a> on the model. One of the key Behaviors to understand is the <a href="/doc/app/classes/Cms/Behaviors/Rendering.html">Rendering</a> behavior. Essentially what this behavior does is to allow a model (by model I mean a subclass of ActiveRecord::Base) to act as a mini-controller. This is the same thing conceptually as <a href="http://yehudakatz.com/2007/09/06/merbs-parts-are-pretty-rocking-too">Merb Parts</a> or <a href="http://cells.rubyforge.org">Rails Cells</a>, the only difference is that content blocks are models as well, so they have attributes that are stored in the database like any other model.</p>
144
+ <p>In the BrowserCMS implementation, first the render method of the object is called, which is like an action. This is where instance variables are set. In the case of an HtmlBlock, there are no other instance variables to set up, so this step is just skipped. It is similar to a controller action that has no action method, it just goes straight to the view.</p>
145
+ <p>The view is the render template, which is inside the <tt>cms/html_blocks</tt> directory in the view path. If you look in the render template, you will see all it does is print the value of <tt>@content_block.content</tt>. Content is the name of the property that holds the <span class="caps">HTML</span> content.</p>
146
+ <h3 id="creating-a-custom-content-block">2 Creating A Custom Content Block</h3>
147
+ <p>Let&#8217;s say that you are using BrowserCMS to build a website that will display a list of products. The first step would be to create a product content block. This will give the users of the <span class="caps">CMS</span> a way to create products. To create a product content block, in an existing BrowserCMS project, run the content block generator:</p>
148
+ <div class="code_container"><code class="html">$ script/generate content_block product name:string price:integer description:html</code></div>
149
+ <p>You will notice that several things have been created:</p>
150
+ <ul>
151
+ <li>A model in <tt>app/models/product.rb</tt></li>
152
+ <li>A migration for the product model</li>
153
+ <li>A controller for the product in <tt>app/controllers/cms/products_controller.rb</tt></li>
154
+ <li>A form partial in <tt>app/views/cms/products/_form.html.erb</tt></li>
155
+ <li>A render template in <tt>app/views/cms/products/render.html.erb</tt></li>
156
+ <li>A resource route for the controller</li>
157
+ </ul>
158
+ <p>If you look at <tt>app/models/product.rb</tt>, you will see that it is nothing more than:</p>
159
+ <div class="code_container"><code class="ruby">class Product &lt; ActiveRecord::Base
160
+ acts_as_content_block
161
+ end</code></div>
162
+ <p>The controller created at <tt>app/controllers/cms/products_controller.rb</tt> is equally empty:</p>
163
+ <div class="code_container"><code class="ruby">class Cms::ProductsController &lt; Cms::ContentBlockController
164
+ end</code></div>
165
+ <p>This controller is the controller used in the actual <span class="caps">CMS</span> interface. If you want to create a controller to use in the front end of your application, create a products controller that is not in the <span class="caps">CMS</span> namespace, so as not to conflict the <span class="caps">CMS</span> functionality. You will most likely not need to customize the <span class="caps">CMS</span> controller at all.</p>
166
+ <p>The form partial at <tt>app/views/cms/products/_form.html.erb</tt> is the form that will be used when creating/editing the product content block in the content library of the <span class="caps">CMS</span>. The contents of this file will be:</p>
167
+ <div class="code_container"><code class="html">&lt;%= f.cms_text_field :name %&gt;
168
+ &lt;%= f.cms_text_field :price %&gt;
169
+ &lt;%= f.cms_text_editor :description %&gt;</code></div>
170
+ <p>The form helper methods that are prefixed with <tt>cms_</tt> will wrap that form helper with the <span class="caps">CMS</span> styling and extra functionality. The <tt>cms_text_editor</tt> will show the user a <span class="caps">WYSIWYG</span> editor for editing <span class="caps">HTML</span>. Additional <span class="caps">CMS</span> form builder extensions are covered in the <a href="designer_guide.html">BrowserCMS Designer Guide</a>.</p>
171
+ <p>The render template at <tt>app/views/cms/products/render.html.erb</tt> is the template that will be used to render the <span class="caps">HTML</span> when this product is placed directly on a page. It is also what is shown when you view a product within the content library of the <span class="caps">CMS</span>.</p>
172
+ <p>As you will see in the next section, custom content blocks are often not placed directly on a page, instead the data of a product is displayed through a portlet. For this reason, a more informational display, similar to what is automatically generated by the generator, is what the render template often contains. Depending on what your content block is, you may want to place the content block directly on a page, in which case you would most likely customize the render template.</p>
173
+ <h4 id="attribute-types">2.1 Attribute Types
174
+ This section covers some of the different attribute types that Content Blocks can have. Each attribute represents a
175
+ persistent column in the database, will appear as an editable control on the <em>form.html.erb, and may also need to need to be configured
176
+ on the content</em>block itself.</h4>
177
+ <p>List of Content Types</p>
178
+ <ul>
179
+ <li>Text Fields</li>
180
+ <li>Text Areas</li>
181
+ <li>Drop Down (Select)</li>
182
+ <li>Text Editor (<span class="caps">WYWIWYG</span>)</li>
183
+ <li>Attachment (File Upload)</li>
184
+ <li>Tag List (Allow</li>
185
+ <li>Date Picker</li>
186
+ </ul>
187
+ <h5 id="drop-down--selects">2.1.1 Drop Down / Selects
188
+ This is similar to the traditional &#8216;select&#8217; helper, it renders a stylized select control which allows users to choose one item from a list.</h5>
189
+ <h6 id="cms-drop-down">2.1.1.1 cms_drop_down
190
+ In _form.html.erb:</h6>
191
+ <div class="code_container"><code class="html">&lt;%= f.cms_drop_down :category_id, Category.all(:order =&gt; &quot;name&quot;).map{|c| [c.name, c.id]},
192
+ :prompt =&gt; &quot;Select a Category&quot;, :label =&gt; &quot;Category&quot;,
193
+ :instructions=&gt;&quot;Determines which category is used on the homepage.&quot; %&gt;</code></div>
194
+ <p>In product.rb:</p>
195
+ <div class="code_container"><code class="ruby">class Product &lt; ActiveRecord::Base
196
+ belongs_to :category
197
+ end</code></div>
198
+ <h5 id="attachments">2.1.2 Attachments
199
+ Each content block can have a single file attachment, which will allow users to upload files into the content repository. After uploading, the file will be
200
+ stored in a section within the <span class="caps">CMS</span>. Since sections determine permissions, this will allow you to control which users can access the file itself. Attached files
201
+ will have their own versioning history, which will keep track of changes.</h5>
202
+ <h6 id="cms-file-field">2.1.2.1 cms_file_field
203
+ This helper will create a stylized file upload file. An uploaded file will be associated with the content_block to which it is attached.</h6>
204
+ <p>In _form.html.erb (View)</p>
205
+ <div class="code_container"><code class="html">&lt;%= f.cms_file_field :attachment_file, :label =&gt; &quot;File&quot; %&gt;</code></div>
206
+ <p>In product.rb (Model)</p>
207
+ <div class="code_container"><code class="ruby">class Product &lt; ActiveRecord::Base
208
+ acts_as_content_block :belongs_to_attachment =&gt; true
209
+ end</code></div>
210
+ <p>In create_products.rb (Migration)</p>
211
+ <div class="code_container"><code class="ruby">create_content_table :products do |t|
212
+ t.belongs_to :attachment
213
+ t.integer :attachment_version
214
+ end</code></div>
215
+ <h3 id="creating-a-custom-portlet">3 Creating A Custom Portlet</h3>
216
+ <p>Once you have created the product content block and created a few products in the content library, you need a way to display them on a page. To do that, you will want to create a portlet.</p>
217
+ <p>A portlet is used to display dynamic data on a page. A portlet is a content block. A portlet will typically perform some kind of database query in the render method and then render it&#8217;s view. One difference between a portlet and typical content block is that each instance of a portlet can have a unique template because that template is stored as data along with the portlet. Let&#8217;s generate a portlet to display the most recently created products:</p>
218
+ <div class="code_container"><code class="html">$ script/generate portlet recent_products limit:integer</code></div>
219
+ <p>What you will see created is:</p>
220
+ <ul>
221
+ <li>A portlet at <tt>app/portlets/recent_products_portlet.rb</tt></li>
222
+ <li>A form partial at <tt>app/views/portlets/recent_products/_form.html.erb</tt></li>
223
+ <li>A render template at <tt>app/views/portlets/recent_products/render.html.erb</tt></li>
224
+ </ul>
225
+ <p>What you don&#8217;t see created is a migration. Portlets use the <a href="/doc/app/classes/Cms/Behaviors/DynamicAttributes.html">DynamicAttributes</a> behavior in order to store associated values in the database without having to create custom database tables. What this means is that you can set and then store a value for any attribute for a portlet.</p>
226
+ <p>So if you look at the form partial that was generate for this portlet, you will see this:</p>
227
+ <div class="code_container"><code class="html">&lt;%= f.cms_text_field :name %&gt;
228
+ &lt;%= f.cms_text_field :limit %&gt;
229
+ &lt;%= f.cms_drop_down :handler, ActionView::Template.template_handler_extensions, :default_value =&gt; &quot;erb&quot; %&gt;
230
+ &lt;%= f.cms_text_area :template, :default_value =&gt; @block.class.default_template %&gt;</code></div>
231
+ <p>Every portlet instance has to have a name and that is stored in the main <tt>portlets</tt> table, but <tt>limit</tt> is stored in the <tt>portlet_attributes</tt> table. You could add anything to this form, such as <tt>&lt;%= f.cms_text_field :foobar %&gt;</tt>, and whatever the user enters for <tt>foobar</tt> would get saved with the portlet.</p>
232
+ <p>If you look at the code for the portlet, you will see:</p>
233
+ <div class="code_container"><code class="ruby">class RecentProducts &lt; Portlet
234
+
235
+ def render
236
+ # Your Code Goes Here
237
+ end
238
+
239
+ end</code></div>
240
+ <p>As the comment says, you will want to fill in your application logic here. We&#8217;re going to get the most recent products and use the value the user entered for limit when they filled out the form. So edit the code to look like:</p>
241
+ <div class="code_container"><code class="ruby">class RecentProducts &lt; Portlet
242
+
243
+ def render
244
+ @products = Product.all(:order =&gt; &quot;created_at desc&quot;, :limit =&gt; self.limit)
245
+ end
246
+
247
+ end</code></div>
248
+ <p><code>self</code> in this case is the portlet instance, which is also available in the instance variable
249
+ <code>@portlet</code>.
250
+ We are setting the <code>@products</code> instance variable so that will be available in the view. If you look at the render template, you will see this:</p>
251
+ <div class="code_container"><code class="html">&lt;%=h @portlet.name %&gt;</code></div>
252
+ <p>This is simply a place holder, you should override this code with something similar to what you expect the user of your portlet to want to use. In this case, let&#8217;s go with:</p>
253
+ <div class="code_container"><code class="html">&lt;ul&gt;
254
+ &lt;% @products.each do |product| %&gt;
255
+ &lt;li&gt;&lt;%=h product.name %&gt;&lt;/li&gt;
256
+ &lt;% end %&gt;
257
+ &lt;/ul&gt;</code></div>
258
+ <p>Notice that in the last paragraph I said &#8220;similar to what you expect the user of your portlet to want to use&#8221;. This value is simply the default starting point for the template of a portlet. The actual value is entered into the form when the user creates an instance of this portlet.</p>
259
+ <p>If you look back at the form partial that was generated, you&#8217;ll see:</p>
260
+ <div class="code_container"><code class="html">&lt;%= f.cms_text_area :template, :default_value =&gt; @block.class.default_template %&gt;</code></div>
261
+ <p>What this does is preload the template with whatever you entered into the render template. The user is free to change it as they see fit and even have different values from one portlet instance to the next.</p>
262
+ <h4 id="using-file-system-templates">3.1 Using File system templates</h4>
263
+ <p>If you do not want to have the portlet&#8217;s render template stored in the <span class="caps">CMS</span> content libary, but would rather have it just render the file from the file system, simply add this to your portlet code:</p>
264
+ <div class="code_container"><code class="ruby">class RecentProducts &lt; Portlet
265
+
266
+ render_inline false
267
+
268
+ def render
269
+ @products = Product.all(:order =&gt; &quot;created_at desc&quot;, :limit =&gt; self.limit)
270
+ end
271
+
272
+ end</code></div>
273
+ <p>The key line being the <code>render_line false</code>. Also, you will probably notice this line in the form that was generated:</p>
274
+ <div class="code_container"><code class="html">&lt;%= f.cms_drop_down :handler,
275
+ ActionView::Template.template_handler_extensions,
276
+ :default_value =&gt; &quot;erb&quot; %&gt;</code></div>
277
+ <p>This generates a drop-down menu for the user creating the portlet to select from the various portlet handlers installed in your Rails app.
278
+ The default handler for portlet views is erb, but you could use alternative ones, like Haml. To do that, install the <span class="caps">HAML</span> gem and set the default_value to &#8216;haml&#8217; like so:</p>
279
+ <div class="code_container"><code class="html">&lt;%= f.cms_drop_down :handler,
280
+ ActionView::Template.template_handler_extensions,
281
+ :default_value =&gt; &quot;haml&quot; %&gt;</code></div>
282
+ <h4 id="pre-selecting-a-handler">3.2 Pre-selecting a handler</h4>
283
+ <p>If you would rather not have the user select the handler type, or if you are using the file system instead of storing the template code in the <span class="caps">CMS</span>, you can set the handler to a different value like this:</p>
284
+ <div class="code_container"><code class="ruby">class RecentProducts &lt; Portlet
285
+
286
+ handler &quot;haml&quot;
287
+ render_inline false
288
+
289
+ def render
290
+ @products = Product.all(:order =&gt; &quot;created_at desc&quot;, :limit =&gt; self.limit)
291
+ end
292
+
293
+ end</code></div>
294
+ <p>The key line being <code>handler "haml"</code>.</p>
295
+ <h3 id="page-routes">4 Page Routes</h3>
296
+ <p><span class="caps">TODO</span></p>
297
+ </td>
298
+ </tr>
299
+ </table>
300
+ </div>
301
+ </div>
302
+ <br clear="all"/>
303
+ <div class="bottom_cap"></div>
304
+ </div>
305
+ </div>
306
+ </body>
307
+ </html>
308
+