we5-browsercms 3.0.5.1 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1025) hide show
  1. data/app/controllers/cms/application_controller.rb +2 -12
  2. data/app/controllers/cms/categories_controller.rb +4 -1
  3. data/app/controllers/cms/content_block_controller.rb +1 -1
  4. data/app/controllers/cms/content_controller.rb +3 -83
  5. data/app/controllers/cms/dashboard_controller.rb +1 -1
  6. data/app/controllers/cms/links_controller.rb +2 -2
  7. data/app/controllers/cms/pages_controller.rb +2 -0
  8. data/app/controllers/cms/portlets_controller.rb +2 -2
  9. data/app/controllers/cms/tags_controller.rb +4 -1
  10. data/app/controllers/tests/pretend_controller.rb +32 -0
  11. data/app/helpers/application_helper.rb +3 -1
  12. data/app/helpers/cms/application_helper.rb +18 -32
  13. data/app/helpers/cms/form_builder.rb +129 -54
  14. data/app/helpers/cms/menu_helper.rb +13 -2
  15. data/app/helpers/cms/page_helper.rb +26 -2
  16. data/app/helpers/cms/rendering_helper.rb +42 -0
  17. data/app/models/guest_user.rb +11 -3
  18. data/app/models/page.rb +1 -1
  19. data/app/models/page_template.rb +1 -18
  20. data/app/models/portlet.rb +12 -2
  21. data/app/models/section.rb +41 -33
  22. data/app/models/tag.rb +1 -1
  23. data/app/models/task.rb +32 -26
  24. data/app/models/templates.rb +31 -0
  25. data/app/models/user.rb +35 -9
  26. data/app/portlets/forgot_password_portlet.rb +1 -0
  27. data/app/views/cms/blocks/_toolbar_for_member.html.erb +1 -1
  28. data/app/views/cms/blocks/edit.html.erb +5 -0
  29. data/app/views/cms/blocks/index.html.erb +26 -39
  30. data/app/views/cms/blocks/show.html.erb +3 -0
  31. data/app/views/cms/blocks/usages.html.erb +17 -22
  32. data/app/views/cms/blocks/versions.html.erb +25 -53
  33. data/app/views/cms/connectors/new.html.erb +6 -6
  34. data/app/views/cms/dashboard/_page_drafts.html.erb +27 -38
  35. data/app/views/cms/dashboard/_tasks.html.erb +31 -43
  36. data/app/views/cms/dynamic_views/index.html.erb +17 -26
  37. data/app/views/cms/email_messages/index.html.erb +10 -19
  38. data/app/views/cms/form_builder/_cms_check_box.html.erb +7 -0
  39. data/app/views/cms/form_builder/_cms_drop_down.html.erb +0 -7
  40. data/app/views/cms/form_builder/_cms_fancy_drop_down.html.erb +9 -0
  41. data/app/views/cms/form_builder/_cms_file_field.html.erb +11 -7
  42. data/app/views/cms/form_builder/_cms_instructions.html.erb +4 -0
  43. data/app/views/cms/form_builder/_cms_template_editor.html.erb +8 -0
  44. data/app/views/cms/groups/_permissions.html.erb +1 -1
  45. data/app/views/cms/groups/index.html.erb +34 -49
  46. data/app/views/cms/page_routes/index.html.erb +19 -28
  47. data/app/views/cms/page_routes/show.html.erb +2 -2
  48. data/app/views/cms/pages/_edit_connector.html.erb +9 -1
  49. data/app/views/cms/pages/versions.html.erb +31 -44
  50. data/app/views/cms/redirects/index.html.erb +14 -22
  51. data/app/views/cms/routes/index.html.erb +19 -21
  52. data/app/views/cms/tags/render.html.erb +19 -38
  53. data/app/views/cms/toolbar/index.html.erb +0 -11
  54. data/app/views/cms/users/index.html.erb +25 -33
  55. data/app/views/layouts/cms/_head.html.erb +1 -1
  56. data/app/views/layouts/cms/content_library.html.erb +7 -7
  57. data/app/views/layouts/cms/thickbox.html.erb +2 -2
  58. data/app/views/portlets/forgot_password/_form.html.erb +4 -3
  59. data/app/views/tests/pretend/open_with_layout.html.erb +2 -0
  60. data/bin/bcms +6 -0
  61. data/bin/browsercms +73 -0
  62. data/browsercms.gemspec +444 -369
  63. data/db/demo/page_templates/sub_page.html.erb +1 -1
  64. data/db/migrate/20081114172307_load_seed_data.rb +0 -29
  65. data/doc/app/classes/AbstractFileBlock.html +32 -6
  66. data/doc/app/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html +136 -85
  67. data/doc/app/classes/ActiveSupport/Cache/FileStore.html +6 -6
  68. data/doc/app/classes/ActsAsList.html +6 -6
  69. data/doc/app/classes/ActsAsList/ClassMethods.html +8 -8
  70. data/doc/app/classes/ActsAsList/InstanceMethods.html +143 -119
  71. data/doc/app/classes/ApplicationHelper.html +4 -0
  72. data/doc/app/classes/Attachment.html +134 -134
  73. data/doc/app/classes/Category.html +24 -24
  74. data/doc/app/classes/CategoryType.html +18 -18
  75. data/doc/app/classes/Cms.html +227 -94
  76. data/doc/app/classes/Cms/Acts.html +5 -0
  77. data/doc/app/classes/Cms/Acts/ContentBlock.html +6 -6
  78. data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods.html +6 -6
  79. data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods/InstanceMethods.html +6 -6
  80. data/doc/app/classes/Cms/Acts/ContentPage.html +187 -0
  81. data/doc/app/classes/Cms/Acts/ContentPage/ClassMethods.html +188 -0
  82. data/doc/app/classes/Cms/ApplicationController.html +69 -118
  83. data/doc/app/classes/Cms/ApplicationHelper.html +277 -393
  84. data/doc/app/classes/Cms/AttachmentsController.html +6 -6
  85. data/doc/app/classes/Cms/Authentication/Controller.html +226 -228
  86. data/doc/app/classes/Cms/Authentication/Model.html +6 -6
  87. data/doc/app/classes/Cms/Authentication/Model/ClassMethods.html +30 -30
  88. data/doc/app/classes/Cms/Authentication/Model/InstanceMethods.html +66 -66
  89. data/doc/app/classes/Cms/Behaviors/Archiving.html +6 -6
  90. data/doc/app/classes/Cms/Behaviors/Archiving/InstanceMethods.html +24 -24
  91. data/doc/app/classes/Cms/Behaviors/Archiving/MacroMethods.html +12 -12
  92. data/doc/app/classes/Cms/Behaviors/Attaching.html +6 -6
  93. data/doc/app/classes/Cms/Behaviors/Attaching/InstanceMethods.html +123 -123
  94. data/doc/app/classes/Cms/Behaviors/Attaching/MacroMethods.html +12 -12
  95. data/doc/app/classes/Cms/Behaviors/Categorizing.html +6 -6
  96. data/doc/app/classes/Cms/Behaviors/Categorizing/InstanceMethods.html +6 -6
  97. data/doc/app/classes/Cms/Behaviors/Categorizing/MacroMethods.html +12 -12
  98. data/doc/app/classes/Cms/Behaviors/ClassMethods.html +60 -60
  99. data/doc/app/classes/Cms/Behaviors/Connecting.html +6 -6
  100. data/doc/app/classes/Cms/Behaviors/Connecting/ClassMethods.html +18 -18
  101. data/doc/app/classes/Cms/Behaviors/Connecting/InstanceMethods.html +42 -42
  102. data/doc/app/classes/Cms/Behaviors/Connecting/MacroMethods.html +12 -12
  103. data/doc/app/classes/Cms/Behaviors/DynamicAttributes.html +6 -6
  104. data/doc/app/classes/Cms/Behaviors/DynamicAttributes/InstanceMethods.html +14 -14
  105. data/doc/app/classes/Cms/Behaviors/DynamicAttributes/MacroMethods.html +12 -12
  106. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange.html +12 -12
  107. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/InstanceMethods.html +6 -6
  108. data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/MacroMethods.html +12 -12
  109. data/doc/app/classes/Cms/Behaviors/Hiding.html +6 -6
  110. data/doc/app/classes/Cms/Behaviors/Hiding/InstanceMethods.html +24 -24
  111. data/doc/app/classes/Cms/Behaviors/Hiding/MacroMethods.html +12 -12
  112. data/doc/app/classes/Cms/Behaviors/InstanceMethods.html +127 -74
  113. data/doc/app/classes/Cms/Behaviors/Pagination.html +6 -6
  114. data/doc/app/classes/Cms/Behaviors/Pagination/ClassMethods.html +12 -12
  115. data/doc/app/classes/Cms/Behaviors/Pagination/Collection.html +55 -55
  116. data/doc/app/classes/Cms/Behaviors/Pagination/InvalidPage.html +6 -6
  117. data/doc/app/classes/Cms/Behaviors/Publishing.html +12 -12
  118. data/doc/app/classes/Cms/Behaviors/Publishing/InstanceMethods.html +119 -119
  119. data/doc/app/classes/Cms/Behaviors/Publishing/MacroMethods.html +25 -14
  120. data/doc/app/classes/Cms/Behaviors/Rendering.html +10 -13
  121. data/doc/app/classes/Cms/Behaviors/Rendering/MacroMethods.html +33 -33
  122. data/doc/app/classes/Cms/Behaviors/Searching.html +6 -6
  123. data/doc/app/classes/Cms/Behaviors/Searching/ClassMethods.html +12 -12
  124. data/doc/app/classes/Cms/Behaviors/Searching/MacroMethods.html +12 -12
  125. data/doc/app/classes/Cms/Behaviors/SoftDeleting.html +6 -6
  126. data/doc/app/classes/Cms/Behaviors/SoftDeleting/ClassMethods.html +24 -24
  127. data/doc/app/classes/Cms/Behaviors/SoftDeleting/InstanceMethods.html +30 -30
  128. data/doc/app/classes/Cms/Behaviors/SoftDeleting/MacroMethods.html +12 -12
  129. data/doc/app/classes/Cms/Behaviors/Taggable.html +6 -6
  130. data/doc/app/classes/Cms/Behaviors/Taggable/ClassMethods.html +12 -12
  131. data/doc/app/classes/Cms/Behaviors/Taggable/InstanceMethods.html +34 -33
  132. data/doc/app/classes/Cms/Behaviors/Taggable/MacroMethods.html +12 -12
  133. data/doc/app/classes/Cms/Behaviors/Userstamping.html +6 -6
  134. data/doc/app/classes/Cms/Behaviors/Userstamping/InstanceMethods.html +6 -6
  135. data/doc/app/classes/Cms/Behaviors/Userstamping/MacroMethods.html +12 -12
  136. data/doc/app/classes/Cms/Behaviors/Versioning.html +6 -6
  137. data/doc/app/classes/Cms/Behaviors/Versioning/ClassMethods.html +30 -30
  138. data/doc/app/classes/Cms/Behaviors/Versioning/InstanceMethods.html +322 -294
  139. data/doc/app/classes/Cms/Behaviors/Versioning/MacroMethods.html +31 -31
  140. data/doc/app/classes/Cms/CacheController.html +12 -12
  141. data/doc/app/classes/Cms/Caching.html +12 -12
  142. data/doc/app/classes/Cms/CategoriesController.html +35 -0
  143. data/doc/app/classes/Cms/CategoryTypesController.html +6 -6
  144. data/doc/app/classes/Cms/ConnectorsController.html +19 -19
  145. data/doc/app/classes/Cms/ContentBlockController.html +486 -440
  146. data/doc/app/classes/Cms/ContentController.html +48 -121
  147. data/doc/app/classes/Cms/ContentRenderingSupport.html +222 -0
  148. data/doc/app/classes/Cms/ContentTypesController.html +6 -6
  149. data/doc/app/classes/Cms/DashboardController.html +12 -11
  150. data/doc/app/classes/Cms/DataLoader.html +12 -12
  151. data/doc/app/classes/Cms/DomainSupport.html +166 -0
  152. data/doc/app/classes/Cms/DynamicViewsController.html +54 -54
  153. data/doc/app/classes/Cms/EmailMessagesController.html +12 -12
  154. data/doc/app/classes/Cms/ErrorHandling.html +50 -23
  155. data/doc/app/classes/Cms/Errors/AccessDenied.html +10 -10
  156. data/doc/app/classes/Cms/Extensions/ActionView/Base.html +6 -6
  157. data/doc/app/classes/Cms/Extensions/ActiveRecord/Base.html +6 -6
  158. data/doc/app/classes/Cms/Extensions/ActiveRecord/Errors.html +6 -6
  159. data/doc/app/classes/Cms/Extensions/Hash.html +12 -12
  160. data/doc/app/classes/Cms/Extensions/Integer.html +6 -6
  161. data/doc/app/classes/Cms/Extensions/NilClass.html +24 -24
  162. data/doc/app/classes/Cms/Extensions/String.html +24 -24
  163. data/doc/app/classes/Cms/FormBuilder.html +258 -90
  164. data/doc/app/classes/Cms/FormTagHelper.html +30 -30
  165. data/doc/app/classes/Cms/GroupsController.html +24 -24
  166. data/doc/app/classes/Cms/HomeController.html +6 -6
  167. data/doc/app/classes/Cms/LinksController.html +64 -62
  168. data/doc/app/classes/Cms/MenuHelper.html +210 -165
  169. data/doc/app/classes/Cms/PageHelper.html +178 -91
  170. data/doc/app/classes/Cms/PageRouteOptionsController.html +54 -54
  171. data/doc/app/classes/Cms/PageRoutesController.html +36 -36
  172. data/doc/app/classes/Cms/PagesController.html +111 -109
  173. data/doc/app/classes/Cms/PathHelper.html +36 -36
  174. data/doc/app/classes/Cms/PortletController.html +6 -6
  175. data/doc/app/classes/Cms/PortletsController.html +43 -43
  176. data/doc/app/classes/Cms/RedirectsController.html +12 -12
  177. data/doc/app/classes/Cms/RenderingHelper.html +214 -0
  178. data/doc/app/classes/Cms/ResourceController.html +114 -114
  179. data/doc/app/classes/Cms/Routes.html +151 -143
  180. data/doc/app/classes/Cms/RoutesController.html +6 -6
  181. data/doc/app/classes/Cms/SectionNodesController.html +36 -36
  182. data/doc/app/classes/Cms/SectionNodesHelper.html +6 -6
  183. data/doc/app/classes/Cms/SectionsController.html +212 -188
  184. data/doc/app/classes/Cms/SessionsController.html +68 -39
  185. data/doc/app/classes/Cms/TagsController.html +30 -6
  186. data/doc/app/classes/Cms/TasksController.html +18 -18
  187. data/doc/app/classes/Cms/TemplateSupport.html +185 -0
  188. data/doc/app/classes/Cms/ToolbarController.html +6 -6
  189. data/doc/app/classes/Cms/UsersController.html +129 -153
  190. data/doc/app/classes/CommandLine.html +226 -0
  191. data/doc/app/classes/Connector.html +75 -71
  192. data/doc/app/classes/ContentType.html +72 -72
  193. data/doc/app/classes/DynamicPortlet.html +6 -6
  194. data/doc/app/classes/DynamicView.html +130 -133
  195. data/doc/app/classes/EmailMessage.html +24 -24
  196. data/doc/app/classes/EmailMessageMailer.html +6 -6
  197. data/doc/app/classes/EmailPagePortlet.html +12 -12
  198. data/doc/app/classes/FileBlock.html +18 -18
  199. data/doc/app/classes/ForgotPasswordMailer.html +151 -0
  200. data/doc/app/classes/ForgotPasswordPortlet.html +162 -0
  201. data/doc/app/classes/Group.html +72 -20
  202. data/doc/app/classes/GuestUser.html +138 -93
  203. data/doc/app/classes/HtmlBlock.html +12 -12
  204. data/doc/app/classes/ImageBlock.html +18 -18
  205. data/doc/app/classes/InitialData.html +6 -6
  206. data/doc/app/classes/Link.html +30 -30
  207. data/doc/app/classes/LoginPortlet.html +6 -6
  208. data/doc/app/classes/Page.html +185 -185
  209. data/doc/app/classes/PagePartial.html +18 -18
  210. data/doc/app/classes/PageRoute.html +48 -48
  211. data/doc/app/classes/PageTemplate.html +60 -78
  212. data/doc/app/classes/Portlet.html +339 -267
  213. data/doc/app/classes/ResetPasswordPortlet.html +169 -0
  214. data/doc/app/classes/Section.html +257 -200
  215. data/doc/app/classes/SectionNode.html +60 -60
  216. data/doc/app/classes/Sequence.html +6 -6
  217. data/doc/app/classes/Site.html +30 -30
  218. data/doc/app/classes/Tag.html +31 -31
  219. data/doc/app/classes/TagCloudPortlet.html +12 -12
  220. data/doc/app/classes/Tagging.html +6 -6
  221. data/doc/app/classes/Task.html +37 -37
  222. data/doc/app/classes/Templates.html +151 -0
  223. data/doc/app/classes/Tests.html +107 -0
  224. data/doc/app/classes/Tests/PretendController.html +275 -0
  225. data/doc/app/classes/User.html +344 -205
  226. data/doc/app/created.rid +1 -1
  227. data/doc/app/files/app/controllers/cms/application_controller_rb.html +1 -1
  228. data/doc/app/files/app/controllers/cms/categories_controller_rb.html +1 -1
  229. data/doc/app/files/app/controllers/cms/connectors_controller_rb.html +1 -1
  230. data/doc/app/files/app/controllers/cms/content_block_controller_rb.html +1 -1
  231. data/doc/app/files/app/controllers/cms/content_controller_rb.html +1 -1
  232. data/doc/app/files/app/controllers/cms/dashboard_controller_rb.html +1 -1
  233. data/doc/app/files/app/controllers/cms/error_handling_rb.html +1 -1
  234. data/doc/app/files/app/controllers/cms/links_controller_rb.html +1 -1
  235. data/doc/app/files/app/controllers/cms/pages_controller_rb.html +1 -1
  236. data/doc/app/files/app/controllers/cms/portlets_controller_rb.html +1 -1
  237. data/doc/app/files/app/controllers/cms/section_nodes_controller_rb.html +1 -1
  238. data/doc/app/files/app/controllers/cms/sections_controller_rb.html +1 -1
  239. data/doc/app/files/app/controllers/cms/sessions_controller_rb.html +1 -1
  240. data/doc/app/files/app/controllers/cms/tags_controller_rb.html +1 -1
  241. data/doc/app/files/app/controllers/cms/users_controller_rb.html +1 -1
  242. data/doc/app/files/app/controllers/tests/pretend_controller_rb.html +112 -0
  243. data/doc/app/files/app/helpers/application_helper_rb.html +5 -1
  244. data/doc/app/files/app/helpers/cms/application_helper_rb.html +1 -1
  245. data/doc/app/files/app/helpers/cms/form_builder_rb.html +8 -1
  246. data/doc/app/files/app/helpers/cms/menu_helper_rb.html +1 -1
  247. data/doc/app/files/app/helpers/cms/page_helper_rb.html +1 -1
  248. data/doc/app/files/app/helpers/cms/rendering_helper_rb.html +111 -0
  249. data/doc/app/files/app/helpers/cms/template_support_rb.html +108 -0
  250. data/doc/app/files/app/models/abstract_file_block_rb.html +1 -1
  251. data/doc/app/files/app/models/attachment_rb.html +2 -2
  252. data/doc/app/files/app/models/connector_rb.html +1 -1
  253. data/doc/app/files/app/models/content_type_rb.html +1 -1
  254. data/doc/app/files/app/models/dynamic_view_rb.html +1 -1
  255. data/doc/app/files/app/models/forgot_password_mailer_rb.html +101 -0
  256. data/doc/app/files/app/models/group_rb.html +10 -1
  257. data/doc/app/files/app/models/guest_user_rb.html +14 -1
  258. data/doc/app/files/app/models/link_rb.html +1 -1
  259. data/doc/app/files/app/models/page_rb.html +1 -1
  260. data/doc/app/files/app/models/page_template_rb.html +1 -1
  261. data/doc/app/files/app/models/portlet_rb.html +1 -1
  262. data/doc/app/files/app/models/section_rb.html +1 -1
  263. data/doc/app/files/app/models/tag_rb.html +1 -1
  264. data/doc/app/files/app/models/task_rb.html +1 -1
  265. data/doc/app/files/app/models/templates_rb.html +108 -0
  266. data/doc/app/files/app/models/user_rb.html +1 -1
  267. data/doc/app/files/app/portlets/forgot_password_portlet_rb.html +108 -0
  268. data/doc/app/files/app/portlets/reset_password_portlet_rb.html +101 -0
  269. data/doc/app/files/doc/README_FOR_APP.html +7 -6
  270. data/doc/app/files/lib/acts_as_list_rb.html +1 -1
  271. data/doc/app/files/lib/browsercms_rb.html +1 -1
  272. data/doc/app/files/lib/cms/acts/content_block_rb.html +1 -1
  273. data/doc/app/files/lib/cms/acts/content_page_rb.html +125 -0
  274. data/doc/app/files/lib/cms/authentication/controller_rb.html +61 -1
  275. data/doc/app/files/lib/cms/behaviors/attaching_rb.html +1 -1
  276. data/doc/app/files/lib/cms/behaviors/publishing_rb.html +1 -1
  277. data/doc/app/files/lib/cms/behaviors/rendering_rb.html +1 -1
  278. data/doc/app/files/lib/cms/behaviors/taggable_rb.html +1 -1
  279. data/doc/app/files/lib/cms/behaviors/versioning_rb.html +1 -1
  280. data/doc/app/files/lib/cms/content_rendering_support_rb.html +108 -0
  281. data/doc/app/files/lib/cms/domain_support_rb.html +108 -0
  282. data/doc/app/files/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements_rb.html +1 -1
  283. data/doc/app/files/lib/cms/init_rb.html +8 -1
  284. data/doc/app/files/lib/cms/routes_rb.html +1 -1
  285. data/doc/app/files/lib/cms/version_rb.html +107 -0
  286. data/doc/app/files/lib/command_line_rb.html +101 -0
  287. data/doc/app/fr_class_index.html +13 -0
  288. data/doc/app/fr_file_index.html +12 -0
  289. data/doc/app/fr_method_index.html +761 -712
  290. data/doc/guides/html/authentication.html +201 -0
  291. data/doc/guides/html/build_it_yourself.html +9 -1
  292. data/doc/guides/html/building_modules.html +90 -48
  293. data/doc/guides/html/building_templates.html +506 -0
  294. data/doc/guides/html/content_blocks.html +476 -0
  295. data/doc/guides/html/customizing_browsercms.html +173 -0
  296. data/doc/guides/html/deployment_guide.html +30 -5
  297. data/doc/guides/html/getting_started.html +61 -27
  298. data/doc/guides/html/images/content_blocks/add_field_to_form.png +0 -0
  299. data/doc/guides/html/images/content_blocks/add_second_block.png +0 -0
  300. data/doc/guides/html/images/nfl_sitemap.png +0 -0
  301. data/doc/guides/html/index.html +33 -22
  302. data/doc/guides/html/installing_modules.html +9 -1
  303. data/doc/guides/html/portlets.html +237 -0
  304. data/doc/guides/html/user_guide.html +9 -1
  305. data/doc/guides/html/{designer_guide.html → writing_guides.html} +21 -20
  306. data/lib/cms/acts/content_page.rb +69 -0
  307. data/lib/cms/authentication/controller.rb +1 -1
  308. data/lib/cms/behaviors/rendering.rb +9 -2
  309. data/lib/cms/behaviors/versioning.rb +43 -35
  310. data/lib/cms/content_rendering_support.rb +96 -0
  311. data/lib/cms/domain_support.rb +20 -0
  312. data/lib/cms/init.rb +21 -2
  313. data/lib/cms/version.rb +5 -0
  314. data/lib/command_line.rb +39 -0
  315. data/lib/tasks/cms.rake +12 -1
  316. data/public/bcms/ckeditor/ckeditor.js +108 -0
  317. data/public/bcms/ckeditor/config.js +18 -0
  318. data/public/bcms/ckeditor/core/_bootstrap.js +64 -0
  319. data/public/bcms/ckeditor/core/ajax.js +143 -0
  320. data/public/bcms/ckeditor/core/ckeditor.js +96 -0
  321. data/public/bcms/ckeditor/core/ckeditor_base.js +190 -0
  322. data/public/bcms/ckeditor/core/ckeditor_basic.js +241 -0
  323. data/public/bcms/ckeditor/core/command.js +70 -0
  324. data/public/bcms/ckeditor/core/commanddefinition.js +72 -0
  325. data/public/bcms/ckeditor/core/config.js +287 -0
  326. data/public/bcms/ckeditor/core/dom.js +21 -0
  327. data/public/bcms/ckeditor/core/dom/document.js +210 -0
  328. data/public/bcms/ckeditor/core/dom/documentfragment.js +49 -0
  329. data/public/bcms/ckeditor/core/dom/domobject.js +204 -0
  330. data/public/bcms/ckeditor/core/dom/element.js +1384 -0
  331. data/public/bcms/ckeditor/core/dom/elementpath.js +104 -0
  332. data/public/bcms/ckeditor/core/dom/event.js +137 -0
  333. data/public/bcms/ckeditor/core/dom/node.js +649 -0
  334. data/public/bcms/ckeditor/core/dom/nodelist.js +23 -0
  335. data/public/bcms/ckeditor/core/dom/range.js +1668 -0
  336. data/public/bcms/ckeditor/core/dom/text.js +123 -0
  337. data/public/bcms/ckeditor/core/dom/walker.js +411 -0
  338. data/public/bcms/ckeditor/core/dom/window.js +96 -0
  339. data/public/bcms/ckeditor/core/dtd.js +200 -0
  340. data/public/bcms/ckeditor/core/editor.js +650 -0
  341. data/public/bcms/ckeditor/core/editor_basic.js +178 -0
  342. data/public/bcms/ckeditor/core/env.js +219 -0
  343. data/public/bcms/ckeditor/core/event.js +335 -0
  344. data/public/bcms/ckeditor/core/eventInfo.js +120 -0
  345. data/public/bcms/ckeditor/core/focusmanager.js +123 -0
  346. data/public/bcms/ckeditor/core/htmlparser.js +212 -0
  347. data/public/bcms/ckeditor/core/htmlparser/basicwriter.js +140 -0
  348. data/public/bcms/ckeditor/core/htmlparser/cdata.js +44 -0
  349. data/public/bcms/ckeditor/core/htmlparser/comment.js +59 -0
  350. data/public/bcms/ckeditor/core/htmlparser/element.js +196 -0
  351. data/public/bcms/ckeditor/core/htmlparser/filter.js +233 -0
  352. data/public/bcms/ckeditor/core/htmlparser/fragment.js +434 -0
  353. data/public/bcms/ckeditor/core/htmlparser/text.js +55 -0
  354. data/public/bcms/ckeditor/core/imagecacher.js +58 -0
  355. data/public/bcms/ckeditor/core/lang.js +147 -0
  356. data/public/bcms/ckeditor/core/loader.js +238 -0
  357. data/public/bcms/ckeditor/core/plugindefinition.js +66 -0
  358. data/public/bcms/ckeditor/core/plugins.js +82 -0
  359. data/public/bcms/ckeditor/core/resourcemanager.js +233 -0
  360. data/public/bcms/ckeditor/core/scriptloader.js +194 -0
  361. data/public/bcms/ckeditor/core/skins.js +185 -0
  362. data/public/bcms/ckeditor/core/test.js +184 -0
  363. data/public/bcms/ckeditor/core/themes.js +18 -0
  364. data/public/bcms/ckeditor/core/tools.js +531 -0
  365. data/public/bcms/ckeditor/core/ui.js +106 -0
  366. data/public/bcms/ckeditor/core/xml.js +165 -0
  367. data/public/bcms/ckeditor/editor.js +51 -0
  368. data/public/bcms/ckeditor/lang/_languages.js +82 -0
  369. data/public/bcms/ckeditor/lang/_translationstatus.txt +59 -0
  370. data/public/bcms/ckeditor/lang/af.js +674 -0
  371. data/public/bcms/ckeditor/lang/ar.js +674 -0
  372. data/public/bcms/ckeditor/lang/bg.js +674 -0
  373. data/public/bcms/ckeditor/lang/bn.js +674 -0
  374. data/public/bcms/ckeditor/lang/bs.js +674 -0
  375. data/public/bcms/ckeditor/lang/ca.js +674 -0
  376. data/public/bcms/ckeditor/lang/cs.js +674 -0
  377. data/public/bcms/ckeditor/lang/da.js +674 -0
  378. data/public/bcms/ckeditor/lang/de.js +674 -0
  379. data/public/bcms/ckeditor/lang/el.js +674 -0
  380. data/public/bcms/ckeditor/lang/en-au.js +674 -0
  381. data/public/bcms/ckeditor/lang/en-ca.js +674 -0
  382. data/public/bcms/ckeditor/lang/en-uk.js +674 -0
  383. data/public/bcms/ckeditor/lang/en.js +674 -0
  384. data/public/bcms/ckeditor/lang/eo.js +674 -0
  385. data/public/bcms/ckeditor/lang/es.js +674 -0
  386. data/public/bcms/ckeditor/lang/et.js +674 -0
  387. data/public/bcms/ckeditor/lang/eu.js +674 -0
  388. data/public/bcms/ckeditor/lang/fa.js +674 -0
  389. data/public/bcms/ckeditor/lang/fi.js +674 -0
  390. data/public/bcms/ckeditor/lang/fo.js +674 -0
  391. data/public/bcms/ckeditor/lang/fr-ca.js +674 -0
  392. data/public/bcms/ckeditor/lang/fr.js +674 -0
  393. data/public/bcms/ckeditor/lang/gl.js +674 -0
  394. data/public/bcms/ckeditor/lang/gu.js +674 -0
  395. data/public/bcms/ckeditor/lang/he.js +674 -0
  396. data/public/bcms/ckeditor/lang/hi.js +674 -0
  397. data/public/bcms/ckeditor/lang/hr.js +674 -0
  398. data/public/bcms/ckeditor/lang/hu.js +674 -0
  399. data/public/bcms/ckeditor/lang/is.js +674 -0
  400. data/public/bcms/ckeditor/lang/it.js +674 -0
  401. data/public/bcms/ckeditor/lang/ja.js +674 -0
  402. data/public/bcms/ckeditor/lang/km.js +674 -0
  403. data/public/bcms/ckeditor/lang/ko.js +674 -0
  404. data/public/bcms/ckeditor/lang/lt.js +674 -0
  405. data/public/bcms/ckeditor/lang/lv.js +674 -0
  406. data/public/bcms/ckeditor/lang/mn.js +674 -0
  407. data/public/bcms/ckeditor/lang/ms.js +674 -0
  408. data/public/bcms/ckeditor/lang/nb.js +674 -0
  409. data/public/bcms/ckeditor/lang/nl.js +674 -0
  410. data/public/bcms/ckeditor/lang/no.js +674 -0
  411. data/public/bcms/ckeditor/lang/pl.js +674 -0
  412. data/public/bcms/ckeditor/lang/pt-br.js +674 -0
  413. data/public/bcms/ckeditor/lang/pt.js +674 -0
  414. data/public/bcms/ckeditor/lang/ro.js +674 -0
  415. data/public/bcms/ckeditor/lang/ru.js +674 -0
  416. data/public/bcms/ckeditor/lang/sk.js +674 -0
  417. data/public/bcms/ckeditor/lang/sl.js +674 -0
  418. data/public/bcms/ckeditor/lang/sr-latn.js +674 -0
  419. data/public/bcms/ckeditor/lang/sr.js +674 -0
  420. data/public/bcms/ckeditor/lang/sv.js +674 -0
  421. data/public/bcms/ckeditor/lang/th.js +674 -0
  422. data/public/bcms/ckeditor/lang/tr.js +674 -0
  423. data/public/bcms/ckeditor/lang/uk.js +674 -0
  424. data/public/bcms/ckeditor/lang/vi.js +674 -0
  425. data/public/bcms/ckeditor/lang/zh-cn.js +674 -0
  426. data/public/bcms/ckeditor/lang/zh.js +674 -0
  427. data/public/bcms/ckeditor/plugins/about/dialogs/about.js +73 -0
  428. data/public/bcms/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  429. data/public/bcms/ckeditor/plugins/about/plugin.js +22 -0
  430. data/public/bcms/ckeditor/plugins/basicstyles/plugin.js +50 -0
  431. data/public/bcms/ckeditor/plugins/blockquote/plugin.js +301 -0
  432. data/public/bcms/ckeditor/plugins/button/plugin.js +264 -0
  433. data/public/bcms/ckeditor/plugins/clipboard/dialogs/paste.js +167 -0
  434. data/public/bcms/ckeditor/plugins/clipboard/plugin.js +208 -0
  435. data/public/bcms/ckeditor/plugins/colorbutton/plugin.js +202 -0
  436. data/public/bcms/ckeditor/plugins/contextmenu/plugin.js +178 -0
  437. data/public/bcms/ckeditor/plugins/dialog/dialogDefinition.js +315 -0
  438. data/public/bcms/ckeditor/plugins/dialog/plugin.js +2742 -0
  439. data/public/bcms/ckeditor/plugins/dialogui/plugin.js +1319 -0
  440. data/public/bcms/ckeditor/plugins/domiterator/plugin.js +354 -0
  441. data/public/bcms/ckeditor/plugins/editingblock/plugin.js +236 -0
  442. data/public/bcms/ckeditor/plugins/elementspath/plugin.js +182 -0
  443. data/public/bcms/ckeditor/plugins/enterkey/plugin.js +324 -0
  444. data/public/bcms/ckeditor/plugins/entities/plugin.js +200 -0
  445. data/public/bcms/ckeditor/plugins/fakeobjects/plugin.js +111 -0
  446. data/public/bcms/ckeditor/plugins/filebrowser/plugin.js +383 -0
  447. data/public/bcms/ckeditor/plugins/find/dialogs/find.js +843 -0
  448. data/public/bcms/ckeditor/plugins/find/plugin.js +46 -0
  449. data/public/bcms/ckeditor/plugins/flash/dialogs/flash.js +682 -0
  450. data/public/bcms/ckeditor/plugins/flash/images/placeholder.png +0 -0
  451. data/public/bcms/ckeditor/plugins/flash/plugin.js +165 -0
  452. data/public/bcms/ckeditor/plugins/floatpanel/plugin.js +325 -0
  453. data/public/bcms/ckeditor/plugins/font/plugin.js +227 -0
  454. data/public/bcms/ckeditor/plugins/format/plugin.js +191 -0
  455. data/public/bcms/ckeditor/plugins/forms/dialogs/button.js +135 -0
  456. data/public/bcms/ckeditor/plugins/forms/dialogs/checkbox.js +138 -0
  457. data/public/bcms/ckeditor/plugins/forms/dialogs/form.js +177 -0
  458. data/public/bcms/ckeditor/plugins/forms/dialogs/hiddenfield.js +91 -0
  459. data/public/bcms/ckeditor/plugins/forms/dialogs/radio.js +135 -0
  460. data/public/bcms/ckeditor/plugins/forms/dialogs/select.js +541 -0
  461. data/public/bcms/ckeditor/plugins/forms/dialogs/textarea.js +114 -0
  462. data/public/bcms/ckeditor/plugins/forms/dialogs/textfield.js +193 -0
  463. data/public/bcms/ckeditor/plugins/forms/plugin.js +193 -0
  464. data/public/bcms/ckeditor/plugins/horizontalrule/plugin.js +35 -0
  465. data/public/bcms/ckeditor/plugins/htmldataprocessor/plugin.js +373 -0
  466. data/public/bcms/ckeditor/plugins/htmlwriter/plugin.js +289 -0
  467. data/public/bcms/ckeditor/plugins/iframedialog/plugin.js +136 -0
  468. data/public/bcms/ckeditor/plugins/image/dialogs/image.js +1225 -0
  469. data/public/bcms/ckeditor/plugins/image/plugin.js +64 -0
  470. data/public/bcms/ckeditor/plugins/indent/plugin.js +323 -0
  471. data/public/bcms/ckeditor/plugins/justify/plugin.js +164 -0
  472. data/public/bcms/ckeditor/plugins/keystrokes/plugin.js +217 -0
  473. data/public/bcms/ckeditor/plugins/link/dialogs/anchor.js +98 -0
  474. data/public/bcms/ckeditor/plugins/link/dialogs/link.js +1217 -0
  475. data/public/{fckeditor/editor → bcms/ckeditor/plugins/link}/images/anchor.gif +0 -0
  476. data/public/bcms/ckeditor/plugins/link/plugin.js +188 -0
  477. data/public/bcms/ckeditor/plugins/list/plugin.js +570 -0
  478. data/public/bcms/ckeditor/plugins/listblock/plugin.js +231 -0
  479. data/public/bcms/ckeditor/plugins/maximize/plugin.js +267 -0
  480. data/public/bcms/ckeditor/plugins/menu/plugin.js +377 -0
  481. data/public/bcms/ckeditor/plugins/menubutton/plugin.js +93 -0
  482. data/public/bcms/ckeditor/plugins/newpage/plugin.js +65 -0
  483. data/public/{fckeditor/editor/css/images/fck_pagebreak.gif → bcms/ckeditor/plugins/pagebreak/images/pagebreak.gif} +0 -0
  484. data/public/bcms/ckeditor/plugins/pagebreak/plugin.js +96 -0
  485. data/public/bcms/ckeditor/plugins/panel/plugin.js +330 -0
  486. data/public/bcms/ckeditor/plugins/panelbutton/plugin.js +140 -0
  487. data/public/bcms/ckeditor/plugins/pastefromword/dialogs/pastefromword.js +307 -0
  488. data/public/bcms/ckeditor/plugins/pastefromword/plugin.js +54 -0
  489. data/public/bcms/ckeditor/plugins/pastetext/dialogs/pastetext.js +65 -0
  490. data/public/bcms/ckeditor/plugins/pastetext/plugin.js +142 -0
  491. data/public/bcms/ckeditor/plugins/popup/plugin.js +62 -0
  492. data/public/bcms/ckeditor/plugins/preview/plugin.js +97 -0
  493. data/public/bcms/ckeditor/plugins/print/plugin.js +41 -0
  494. data/public/bcms/ckeditor/plugins/removeformat/plugin.js +132 -0
  495. data/public/bcms/ckeditor/plugins/resize/plugin.js +115 -0
  496. data/public/bcms/ckeditor/plugins/richcombo/plugin.js +357 -0
  497. data/public/bcms/ckeditor/plugins/save/plugin.js +55 -0
  498. data/public/bcms/ckeditor/plugins/scayt/dialogs/options.js +494 -0
  499. data/public/bcms/ckeditor/plugins/scayt/dialogs/toolbar.css +71 -0
  500. data/public/bcms/ckeditor/plugins/scayt/plugin.js +511 -0
  501. data/public/bcms/ckeditor/plugins/selection/plugin.js +1072 -0
  502. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_address.png +0 -0
  503. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_blockquote.png +0 -0
  504. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_div.png +0 -0
  505. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h1.png +0 -0
  506. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h2.png +0 -0
  507. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h3.png +0 -0
  508. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h4.png +0 -0
  509. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h5.png +0 -0
  510. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_h6.png +0 -0
  511. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_p.png +0 -0
  512. data/public/{fckeditor/editor/css → bcms/ckeditor/plugins/showblocks}/images/block_pre.png +0 -0
  513. data/public/bcms/ckeditor/plugins/showblocks/plugin.js +153 -0
  514. data/public/bcms/ckeditor/plugins/smiley/dialogs/smiley.js +219 -0
  515. data/public/bcms/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  516. data/public/bcms/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  517. data/public/bcms/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  518. data/public/bcms/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  519. data/public/bcms/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  520. data/public/bcms/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  521. data/public/bcms/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  522. data/public/bcms/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  523. data/public/bcms/ckeditor/plugins/smiley/images/heart.gif +0 -0
  524. data/public/bcms/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  525. data/public/bcms/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  526. data/public/bcms/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  527. data/public/bcms/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  528. data/public/bcms/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  529. data/public/bcms/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  530. data/public/bcms/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  531. data/public/bcms/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  532. data/public/bcms/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  533. data/public/bcms/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  534. data/public/bcms/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  535. data/public/bcms/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  536. data/public/bcms/ckeditor/plugins/smiley/plugin.js +74 -0
  537. data/public/bcms/ckeditor/plugins/sourcearea/plugin.js +185 -0
  538. data/public/bcms/ckeditor/plugins/specialchar/dialogs/specialchar.js +362 -0
  539. data/public/bcms/ckeditor/plugins/specialchar/plugin.js +29 -0
  540. data/public/bcms/ckeditor/plugins/styles/plugin.js +1242 -0
  541. data/public/bcms/ckeditor/plugins/stylescombo/plugin.js +295 -0
  542. data/public/bcms/ckeditor/plugins/stylescombo/styles/default.js +85 -0
  543. data/public/bcms/ckeditor/plugins/tab/plugin.js +266 -0
  544. data/public/bcms/ckeditor/plugins/table/dialogs/table.js +550 -0
  545. data/public/bcms/ckeditor/plugins/table/plugin.js +70 -0
  546. data/public/bcms/ckeditor/plugins/tabletools/dialogs/tableCell.js +328 -0
  547. data/public/bcms/ckeditor/plugins/tabletools/plugin.js +701 -0
  548. data/public/bcms/ckeditor/plugins/templates/dialogs/templates.js +170 -0
  549. data/public/bcms/ckeditor/plugins/templates/plugin.js +99 -0
  550. data/public/bcms/ckeditor/plugins/templates/templates/default.js +94 -0
  551. data/public/{fckeditor/editor/dialog/fck_template → bcms/ckeditor/plugins/templates/templates}/images/template1.gif +0 -0
  552. data/public/{fckeditor/editor/dialog/fck_template → bcms/ckeditor/plugins/templates/templates}/images/template2.gif +0 -0
  553. data/public/{fckeditor/editor/dialog/fck_template → bcms/ckeditor/plugins/templates/templates}/images/template3.gif +0 -0
  554. data/public/bcms/ckeditor/plugins/toolbar/plugin.js +412 -0
  555. data/public/bcms/ckeditor/plugins/uicolor/dialogs/uicolor.js +203 -0
  556. data/public/bcms/ckeditor/plugins/uicolor/lang/en.js +15 -0
  557. data/public/bcms/ckeditor/plugins/uicolor/plugin.js +35 -0
  558. data/public/bcms/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  559. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  560. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  561. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  562. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  563. data/public/bcms/ckeditor/plugins/uicolor/yui/assets/yui.css +15 -0
  564. data/public/bcms/ckeditor/plugins/uicolor/yui/yui.js +71 -0
  565. data/public/bcms/ckeditor/plugins/undo/plugin.js +490 -0
  566. data/public/bcms/ckeditor/plugins/wsc/dialogs/ciframe.html +49 -0
  567. data/public/bcms/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  568. data/public/bcms/ckeditor/plugins/wsc/dialogs/wsc.css +83 -0
  569. data/public/bcms/ckeditor/plugins/wsc/dialogs/wsc.js +169 -0
  570. data/public/bcms/ckeditor/plugins/wsc/plugin.js +32 -0
  571. data/public/bcms/ckeditor/plugins/wysiwygarea/plugin.js +636 -0
  572. data/public/bcms/ckeditor/skins/kama/dialog.css +742 -0
  573. data/public/bcms/ckeditor/skins/kama/editor.css +21 -0
  574. data/public/bcms/ckeditor/skins/kama/elementspath.css +68 -0
  575. data/public/bcms/ckeditor/skins/kama/icons.css +309 -0
  576. data/public/bcms/ckeditor/skins/kama/icons.png +0 -0
  577. data/public/{fckeditor/editor/skins/default/images/dialog.sides.gif → bcms/ckeditor/skins/kama/images/dialog_sides.gif} +0 -0
  578. data/public/{fckeditor/editor/skins/default/images/dialog.sides.png → bcms/ckeditor/skins/kama/images/dialog_sides.png} +0 -0
  579. data/public/{fckeditor/editor/skins/default/images/dialog.sides.rtl.png → bcms/ckeditor/skins/kama/images/dialog_sides_rtl.png} +0 -0
  580. data/public/bcms/ckeditor/skins/kama/images/mini.gif +0 -0
  581. data/public/bcms/ckeditor/skins/kama/images/noimage.png +0 -0
  582. data/public/bcms/ckeditor/skins/kama/images/sprites.png +0 -0
  583. data/public/bcms/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  584. data/public/{fckeditor/editor/skins/default/images/toolbar.start.gif → bcms/ckeditor/skins/kama/images/toolbar_start.gif} +0 -0
  585. data/public/bcms/ckeditor/skins/kama/mainui.css +139 -0
  586. data/public/bcms/ckeditor/skins/kama/menu.css +179 -0
  587. data/public/bcms/ckeditor/skins/kama/panel.css +203 -0
  588. data/public/bcms/ckeditor/skins/kama/presets.css +49 -0
  589. data/public/bcms/ckeditor/skins/kama/reset.css +78 -0
  590. data/public/bcms/ckeditor/skins/kama/richcombo.css +260 -0
  591. data/public/bcms/ckeditor/skins/kama/skin.js +291 -0
  592. data/public/bcms/ckeditor/skins/kama/templates.css +71 -0
  593. data/public/bcms/ckeditor/skins/kama/toolbar.css +384 -0
  594. data/public/bcms/ckeditor/skins/office2003/dialog.css +643 -0
  595. data/public/bcms/ckeditor/skins/office2003/editor.css +21 -0
  596. data/public/bcms/ckeditor/skins/office2003/elementspath.css +68 -0
  597. data/public/bcms/ckeditor/skins/office2003/icons.css +309 -0
  598. data/public/bcms/ckeditor/skins/office2003/icons.png +0 -0
  599. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  600. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  601. data/public/bcms/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  602. data/public/bcms/ckeditor/skins/office2003/images/mini.gif +0 -0
  603. data/public/bcms/ckeditor/skins/office2003/images/noimage.png +0 -0
  604. data/public/bcms/ckeditor/skins/office2003/images/sprites.png +0 -0
  605. data/public/bcms/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  606. data/public/bcms/ckeditor/skins/office2003/mainui.css +97 -0
  607. data/public/bcms/ckeditor/skins/office2003/menu.css +175 -0
  608. data/public/bcms/ckeditor/skins/office2003/panel.css +198 -0
  609. data/public/bcms/ckeditor/skins/office2003/presets.css +49 -0
  610. data/public/bcms/ckeditor/skins/office2003/reset.css +78 -0
  611. data/public/bcms/ckeditor/skins/office2003/richcombo.css +279 -0
  612. data/public/bcms/ckeditor/skins/office2003/skin.js +77 -0
  613. data/public/bcms/ckeditor/skins/office2003/templates.css +71 -0
  614. data/public/bcms/ckeditor/skins/office2003/toolbar.css +442 -0
  615. data/public/bcms/ckeditor/skins/v2/dialog.css +653 -0
  616. data/public/bcms/ckeditor/skins/v2/editor.css +21 -0
  617. data/public/bcms/ckeditor/skins/v2/elementspath.css +68 -0
  618. data/public/bcms/ckeditor/skins/v2/icons.css +309 -0
  619. data/public/bcms/ckeditor/skins/v2/icons.png +0 -0
  620. data/public/bcms/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  621. data/public/bcms/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  622. data/public/bcms/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  623. data/public/bcms/ckeditor/skins/v2/images/mini.gif +0 -0
  624. data/public/bcms/ckeditor/skins/v2/images/noimage.png +0 -0
  625. data/public/bcms/ckeditor/skins/v2/images/sprites.png +0 -0
  626. data/public/bcms/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  627. data/public/{fckeditor/editor/skins/silver/images/toolbar.start.gif → bcms/ckeditor/skins/v2/images/toolbar_start.gif} +0 -0
  628. data/public/bcms/ckeditor/skins/v2/mainui.css +112 -0
  629. data/public/bcms/ckeditor/skins/v2/menu.css +178 -0
  630. data/public/bcms/ckeditor/skins/v2/panel.css +198 -0
  631. data/public/bcms/ckeditor/skins/v2/presets.css +50 -0
  632. data/public/bcms/ckeditor/skins/v2/reset.css +78 -0
  633. data/public/bcms/ckeditor/skins/v2/richcombo.css +275 -0
  634. data/public/bcms/ckeditor/skins/v2/skin.js +73 -0
  635. data/public/bcms/ckeditor/skins/v2/templates.css +71 -0
  636. data/public/bcms/ckeditor/skins/v2/toolbar.css +399 -0
  637. data/public/bcms/ckeditor/tests/_assets/sample.css +4 -0
  638. data/public/bcms/ckeditor/tests/_assets/sample.js +1 -0
  639. data/public/bcms/ckeditor/tests/_assets/sample.txt +1 -0
  640. data/public/bcms/ckeditor/tests/_assets/sample.xml +5 -0
  641. data/public/bcms/ckeditor/tests/_assets/sample_xml.txt +5 -0
  642. data/public/bcms/ckeditor/tests/core/_editor/custom_config_1.js +10 -0
  643. data/public/bcms/ckeditor/tests/core/_editor/custom_config_2.js +9 -0
  644. data/public/bcms/ckeditor/tests/core/ajax.html +163 -0
  645. data/public/bcms/ckeditor/tests/core/bootstrap.html +66 -0
  646. data/public/bcms/ckeditor/tests/core/ckeditor.html +160 -0
  647. data/public/bcms/ckeditor/tests/core/dom/document.html +126 -0
  648. data/public/bcms/ckeditor/tests/core/dom/documentfragment.html +292 -0
  649. data/public/bcms/ckeditor/tests/core/dom/element.html +637 -0
  650. data/public/bcms/ckeditor/tests/core/dom/node.html +164 -0
  651. data/public/bcms/ckeditor/tests/core/dom/range.html +2411 -0
  652. data/public/bcms/ckeditor/tests/core/dom/text.html +128 -0
  653. data/public/bcms/ckeditor/tests/core/dom/walker.html +340 -0
  654. data/public/bcms/ckeditor/tests/core/dom/window.html +53 -0
  655. data/public/bcms/ckeditor/tests/core/editor.html +123 -0
  656. data/public/bcms/ckeditor/tests/core/env.html +52 -0
  657. data/public/bcms/ckeditor/tests/core/event.html +487 -0
  658. data/public/bcms/ckeditor/tests/core/htmlparser/fragment.html +188 -0
  659. data/public/bcms/ckeditor/tests/core/htmlparser/htmlparser.html +91 -0
  660. data/public/bcms/ckeditor/tests/core/plugins.html +45 -0
  661. data/public/bcms/ckeditor/tests/core/plugins/myplugins/sample/my_plugin.js +3 -0
  662. data/public/bcms/ckeditor/tests/core/scriptloader.html +52 -0
  663. data/public/bcms/ckeditor/tests/core/tools.html +170 -0
  664. data/public/bcms/ckeditor/tests/core/xml.html +150 -0
  665. data/public/bcms/ckeditor/tests/plugins/domiterator/domiterator.html +236 -0
  666. data/public/bcms/ckeditor/tests/plugins/htmldataprocessor/htmldataprocessor.html +386 -0
  667. data/public/bcms/ckeditor/tests/plugins/link/link.html +123 -0
  668. data/public/bcms/ckeditor/tests/plugins/list/list.html +217 -0
  669. data/public/bcms/ckeditor/tests/plugins/selection/selection.html +49 -0
  670. data/public/bcms/ckeditor/tests/plugins/styles/styles.html +596 -0
  671. data/public/bcms/ckeditor/tests/test.css +81 -0
  672. data/public/bcms/ckeditor/tests/test.js +93 -0
  673. data/public/bcms/ckeditor/tests/testall.html +114 -0
  674. data/public/bcms/ckeditor/tests/yuitest.js +75 -0
  675. data/public/bcms/ckeditor/themes/default/theme.js +232 -0
  676. data/public/stylesheets/cms/administration.css +52 -51
  677. data/public/stylesheets/cms/application.css +55 -51
  678. data/public/stylesheets/cms/block.css +13 -13
  679. data/public/stylesheets/cms/buttons.css +91 -91
  680. data/public/stylesheets/cms/content_library.css +49 -57
  681. data/public/stylesheets/cms/content_types.css +3 -3
  682. data/public/stylesheets/cms/dashboard.css +25 -43
  683. data/public/stylesheets/cms/data_table.css +57 -81
  684. data/public/stylesheets/cms/date_picker.css +13 -14
  685. data/public/stylesheets/cms/form_layout.css +133 -140
  686. data/public/stylesheets/cms/jquery.contextMenu.css +43 -35
  687. data/public/stylesheets/cms/login.css +50 -51
  688. data/public/stylesheets/cms/menu.css +61 -63
  689. data/public/stylesheets/cms/nav.css +53 -53
  690. data/public/stylesheets/cms/page_toolbar.css +80 -82
  691. data/public/stylesheets/cms/reset.css +21 -21
  692. data/public/stylesheets/cms/selectbox.css +16 -18
  693. data/public/stylesheets/cms/sitemap.css +138 -134
  694. data/public/stylesheets/cms/thickbox.css +120 -105
  695. data/rails_generators/content_block/templates/migration.rb +1 -1
  696. data/rails_generators/portlet/USAGE +3 -1
  697. data/rails_generators/portlet/portlet_generator.rb +4 -0
  698. data/rails_generators/portlet/templates/_form.html.erb +1 -2
  699. data/rails_generators/portlet/templates/portlet.rb +4 -1
  700. data/rails_generators/portlet/templates/portlet_helper.rb +5 -0
  701. data/rails_generators/template/USAGE +10 -0
  702. data/rails_generators/template/template_generator.rb +18 -0
  703. data/rails_generators/template/templates/template.erb +3 -0
  704. data/templates/blank.rb +11 -1
  705. data/templates/demo.rb +11 -1
  706. data/templates/module.rb +15 -4
  707. data/test/functional/cms/dashboard_controller_test.rb +19 -2
  708. data/test/functional/tests/pretend_controller_test.rb +54 -0
  709. data/test/integration/cms/ckeditor_test.rb +27 -0
  710. data/test/integration/cms/password_management_test.rb +1 -2
  711. data/test/test_helper.rb +14 -0
  712. data/test/unit/helpers/application_helper_test.rb +48 -0
  713. data/test/unit/helpers/form_builder_test.rb +21 -2
  714. data/test/unit/helpers/menu_helper_test.rb +164 -142
  715. data/test/unit/helpers/page_helper_test.rb +11 -3
  716. data/test/unit/lib/acts_as_content_page_test.rb +72 -0
  717. data/test/unit/lib/cms/authentication/controller_test.rb +20 -0
  718. data/test/unit/lib/cms_domain_support_test.rb +43 -0
  719. data/test/unit/lib/command_line_test.rb +70 -0
  720. data/test/unit/lib/content_block_test.rb +41 -4
  721. data/test/unit/lib/content_rendering_support_test.rb +40 -0
  722. data/test/unit/models/attachment_test.rb +2 -2
  723. data/test/unit/models/content_type_test.rb +19 -7
  724. data/test/unit/models/page_template_test.rb +4 -1
  725. data/test/unit/models/portlet_test.rb +49 -1
  726. data/test/unit/models/sections_test.rb +41 -2
  727. data/test/unit/models/task_test.rb +37 -22
  728. data/test/unit/models/user_test.rb +165 -51
  729. metadata +424 -323
  730. data/doc/guides/html/developer_guide.html +0 -308
  731. data/public/fckeditor/editor/css/behaviors/disablehandles.htc +0 -15
  732. data/public/fckeditor/editor/css/behaviors/showtableborders.htc +0 -36
  733. data/public/fckeditor/editor/css/fck_editorarea.css +0 -110
  734. data/public/fckeditor/editor/css/fck_internal.css +0 -199
  735. data/public/fckeditor/editor/css/fck_showtableborders_gecko.css +0 -49
  736. data/public/fckeditor/editor/css/images/fck_anchor.gif +0 -0
  737. data/public/fckeditor/editor/css/images/fck_flashlogo.gif +0 -0
  738. data/public/fckeditor/editor/css/images/fck_hiddenfield.gif +0 -0
  739. data/public/fckeditor/editor/css/images/fck_plugin.gif +0 -0
  740. data/public/fckeditor/editor/dialog/common/fck_dialog_common.css +0 -85
  741. data/public/fckeditor/editor/dialog/common/fck_dialog_common.js +0 -311
  742. data/public/fckeditor/editor/dialog/common/images/locked.gif +0 -0
  743. data/public/fckeditor/editor/dialog/common/images/reset.gif +0 -0
  744. data/public/fckeditor/editor/dialog/common/images/unlocked.gif +0 -0
  745. data/public/fckeditor/editor/dialog/fck_about.html +0 -161
  746. data/public/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif +0 -0
  747. data/public/fckeditor/editor/dialog/fck_about/logo_fredck.gif +0 -0
  748. data/public/fckeditor/editor/dialog/fck_about/sponsors/spellchecker_net.gif +0 -0
  749. data/public/fckeditor/editor/dialog/fck_anchor.html +0 -220
  750. data/public/fckeditor/editor/dialog/fck_button.html +0 -104
  751. data/public/fckeditor/editor/dialog/fck_checkbox.html +0 -104
  752. data/public/fckeditor/editor/dialog/fck_colorselector.html +0 -172
  753. data/public/fckeditor/editor/dialog/fck_div.html +0 -364
  754. data/public/fckeditor/editor/dialog/fck_docprops.html +0 -600
  755. data/public/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html +0 -113
  756. data/public/fckeditor/editor/dialog/fck_flash.html +0 -152
  757. data/public/fckeditor/editor/dialog/fck_flash/fck_flash.js +0 -300
  758. data/public/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html +0 -50
  759. data/public/fckeditor/editor/dialog/fck_form.html +0 -109
  760. data/public/fckeditor/editor/dialog/fck_hiddenfield.html +0 -115
  761. data/public/fckeditor/editor/dialog/fck_image.html +0 -258
  762. data/public/fckeditor/editor/dialog/fck_image/fck_image.js +0 -512
  763. data/public/fckeditor/editor/dialog/fck_image/fck_image_preview.html +0 -72
  764. data/public/fckeditor/editor/dialog/fck_link.html +0 -295
  765. data/public/fckeditor/editor/dialog/fck_link/fck_link.js +0 -893
  766. data/public/fckeditor/editor/dialog/fck_listprop.html +0 -120
  767. data/public/fckeditor/editor/dialog/fck_paste.html +0 -346
  768. data/public/fckeditor/editor/dialog/fck_radiobutton.html +0 -104
  769. data/public/fckeditor/editor/dialog/fck_replace.html +0 -648
  770. data/public/fckeditor/editor/dialog/fck_select.html +0 -180
  771. data/public/fckeditor/editor/dialog/fck_select/fck_select.js +0 -194
  772. data/public/fckeditor/editor/dialog/fck_smiley.html +0 -111
  773. data/public/fckeditor/editor/dialog/fck_source.html +0 -68
  774. data/public/fckeditor/editor/dialog/fck_specialchar.html +0 -121
  775. data/public/fckeditor/editor/dialog/fck_spellerpages.html +0 -70
  776. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html +0 -0
  777. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js +0 -87
  778. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html +0 -153
  779. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm +0 -148
  780. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php +0 -199
  781. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl +0 -181
  782. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js +0 -461
  783. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html +0 -71
  784. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css +0 -49
  785. data/public/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js +0 -272
  786. data/public/fckeditor/editor/dialog/fck_table.html +0 -298
  787. data/public/fckeditor/editor/dialog/fck_tablecell.html +0 -257
  788. data/public/fckeditor/editor/dialog/fck_template.html +0 -242
  789. data/public/fckeditor/editor/dialog/fck_textarea.html +0 -94
  790. data/public/fckeditor/editor/dialog/fck_textfield.html +0 -136
  791. data/public/fckeditor/editor/dtd/fck_dtd_test.html +0 -41
  792. data/public/fckeditor/editor/dtd/fck_xhtml10strict.js +0 -116
  793. data/public/fckeditor/editor/dtd/fck_xhtml10transitional.js +0 -140
  794. data/public/fckeditor/editor/fckdebug.html +0 -153
  795. data/public/fckeditor/editor/fckdialog.html +0 -812
  796. data/public/fckeditor/editor/fckeditor.html +0 -317
  797. data/public/fckeditor/editor/fckeditor.original.html +0 -424
  798. data/public/fckeditor/editor/filemanager/browser/default/browser.css +0 -87
  799. data/public/fckeditor/editor/filemanager/browser/default/browser.html +0 -200
  800. data/public/fckeditor/editor/filemanager/browser/default/frmactualfolder.html +0 -95
  801. data/public/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html +0 -114
  802. data/public/fckeditor/editor/filemanager/browser/default/frmfolders.html +0 -198
  803. data/public/fckeditor/editor/filemanager/browser/default/frmresourceslist.html +0 -169
  804. data/public/fckeditor/editor/filemanager/browser/default/frmresourcetype.html +0 -68
  805. data/public/fckeditor/editor/filemanager/browser/default/frmupload.html +0 -115
  806. data/public/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif +0 -0
  807. data/public/fckeditor/editor/filemanager/browser/default/images/Folder.gif +0 -0
  808. data/public/fckeditor/editor/filemanager/browser/default/images/Folder32.gif +0 -0
  809. data/public/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif +0 -0
  810. data/public/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif +0 -0
  811. data/public/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif +0 -0
  812. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif +0 -0
  813. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif +0 -0
  814. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif +0 -0
  815. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif +0 -0
  816. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif +0 -0
  817. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif +0 -0
  818. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif +0 -0
  819. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif +0 -0
  820. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif +0 -0
  821. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif +0 -0
  822. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif +0 -0
  823. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif +0 -0
  824. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif +0 -0
  825. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif +0 -0
  826. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif +0 -0
  827. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif +0 -0
  828. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif +0 -0
  829. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif +0 -0
  830. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif +0 -0
  831. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif +0 -0
  832. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif +0 -0
  833. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif +0 -0
  834. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif +0 -0
  835. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif +0 -0
  836. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif +0 -0
  837. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif +0 -0
  838. data/public/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif +0 -0
  839. data/public/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif +0 -0
  840. data/public/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif +0 -0
  841. data/public/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif +0 -0
  842. data/public/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif +0 -0
  843. data/public/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif +0 -0
  844. data/public/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif +0 -0
  845. data/public/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif +0 -0
  846. data/public/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif +0 -0
  847. data/public/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif +0 -0
  848. data/public/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif +0 -0
  849. data/public/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif +0 -0
  850. data/public/fckeditor/editor/filemanager/browser/default/images/icons/html.gif +0 -0
  851. data/public/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif +0 -0
  852. data/public/fckeditor/editor/filemanager/browser/default/images/icons/js.gif +0 -0
  853. data/public/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif +0 -0
  854. data/public/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif +0 -0
  855. data/public/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif +0 -0
  856. data/public/fckeditor/editor/filemanager/browser/default/images/icons/png.gif +0 -0
  857. data/public/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif +0 -0
  858. data/public/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif +0 -0
  859. data/public/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif +0 -0
  860. data/public/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif +0 -0
  861. data/public/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif +0 -0
  862. data/public/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif +0 -0
  863. data/public/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif +0 -0
  864. data/public/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif +0 -0
  865. data/public/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif +0 -0
  866. data/public/fckeditor/editor/filemanager/browser/default/images/spacer.gif +0 -0
  867. data/public/fckeditor/editor/filemanager/browser/default/js/common.js +0 -88
  868. data/public/fckeditor/editor/filemanager/browser/default/js/fckxml.js +0 -147
  869. data/public/fckeditor/editor/images/arrow_ltr.gif +0 -0
  870. data/public/fckeditor/editor/images/arrow_rtl.gif +0 -0
  871. data/public/fckeditor/editor/images/smiley/msn/angel_smile.gif +0 -0
  872. data/public/fckeditor/editor/images/smiley/msn/angry_smile.gif +0 -0
  873. data/public/fckeditor/editor/images/smiley/msn/broken_heart.gif +0 -0
  874. data/public/fckeditor/editor/images/smiley/msn/cake.gif +0 -0
  875. data/public/fckeditor/editor/images/smiley/msn/confused_smile.gif +0 -0
  876. data/public/fckeditor/editor/images/smiley/msn/cry_smile.gif +0 -0
  877. data/public/fckeditor/editor/images/smiley/msn/devil_smile.gif +0 -0
  878. data/public/fckeditor/editor/images/smiley/msn/embaressed_smile.gif +0 -0
  879. data/public/fckeditor/editor/images/smiley/msn/envelope.gif +0 -0
  880. data/public/fckeditor/editor/images/smiley/msn/heart.gif +0 -0
  881. data/public/fckeditor/editor/images/smiley/msn/kiss.gif +0 -0
  882. data/public/fckeditor/editor/images/smiley/msn/lightbulb.gif +0 -0
  883. data/public/fckeditor/editor/images/smiley/msn/omg_smile.gif +0 -0
  884. data/public/fckeditor/editor/images/smiley/msn/regular_smile.gif +0 -0
  885. data/public/fckeditor/editor/images/smiley/msn/sad_smile.gif +0 -0
  886. data/public/fckeditor/editor/images/smiley/msn/shades_smile.gif +0 -0
  887. data/public/fckeditor/editor/images/smiley/msn/teeth_smile.gif +0 -0
  888. data/public/fckeditor/editor/images/smiley/msn/thumbs_down.gif +0 -0
  889. data/public/fckeditor/editor/images/smiley/msn/thumbs_up.gif +0 -0
  890. data/public/fckeditor/editor/images/smiley/msn/tounge_smile.gif +0 -0
  891. data/public/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif +0 -0
  892. data/public/fckeditor/editor/images/smiley/msn/wink_smile.gif +0 -0
  893. data/public/fckeditor/editor/images/spacer.gif +0 -0
  894. data/public/fckeditor/editor/js/fckadobeair.js +0 -176
  895. data/public/fckeditor/editor/js/fckeditorcode_gecko.js +0 -108
  896. data/public/fckeditor/editor/js/fckeditorcode_ie.js +0 -109
  897. data/public/fckeditor/editor/lang/_translationstatus.txt +0 -78
  898. data/public/fckeditor/editor/lang/af.js +0 -526
  899. data/public/fckeditor/editor/lang/ar.js +0 -526
  900. data/public/fckeditor/editor/lang/bg.js +0 -526
  901. data/public/fckeditor/editor/lang/bn.js +0 -526
  902. data/public/fckeditor/editor/lang/bs.js +0 -526
  903. data/public/fckeditor/editor/lang/ca.js +0 -526
  904. data/public/fckeditor/editor/lang/cs.js +0 -526
  905. data/public/fckeditor/editor/lang/da.js +0 -526
  906. data/public/fckeditor/editor/lang/de.js +0 -526
  907. data/public/fckeditor/editor/lang/el.js +0 -526
  908. data/public/fckeditor/editor/lang/en-au.js +0 -526
  909. data/public/fckeditor/editor/lang/en-ca.js +0 -526
  910. data/public/fckeditor/editor/lang/en-uk.js +0 -526
  911. data/public/fckeditor/editor/lang/en.js +0 -526
  912. data/public/fckeditor/editor/lang/eo.js +0 -526
  913. data/public/fckeditor/editor/lang/es.js +0 -526
  914. data/public/fckeditor/editor/lang/et.js +0 -526
  915. data/public/fckeditor/editor/lang/eu.js +0 -527
  916. data/public/fckeditor/editor/lang/fa.js +0 -526
  917. data/public/fckeditor/editor/lang/fi.js +0 -526
  918. data/public/fckeditor/editor/lang/fo.js +0 -526
  919. data/public/fckeditor/editor/lang/fr-ca.js +0 -526
  920. data/public/fckeditor/editor/lang/fr.js +0 -526
  921. data/public/fckeditor/editor/lang/gl.js +0 -526
  922. data/public/fckeditor/editor/lang/gu.js +0 -526
  923. data/public/fckeditor/editor/lang/he.js +0 -526
  924. data/public/fckeditor/editor/lang/hi.js +0 -526
  925. data/public/fckeditor/editor/lang/hr.js +0 -526
  926. data/public/fckeditor/editor/lang/hu.js +0 -526
  927. data/public/fckeditor/editor/lang/it.js +0 -526
  928. data/public/fckeditor/editor/lang/ja.js +0 -526
  929. data/public/fckeditor/editor/lang/km.js +0 -526
  930. data/public/fckeditor/editor/lang/ko.js +0 -526
  931. data/public/fckeditor/editor/lang/lt.js +0 -526
  932. data/public/fckeditor/editor/lang/lv.js +0 -526
  933. data/public/fckeditor/editor/lang/mn.js +0 -526
  934. data/public/fckeditor/editor/lang/ms.js +0 -526
  935. data/public/fckeditor/editor/lang/nb.js +0 -526
  936. data/public/fckeditor/editor/lang/nl.js +0 -526
  937. data/public/fckeditor/editor/lang/no.js +0 -526
  938. data/public/fckeditor/editor/lang/pl.js +0 -526
  939. data/public/fckeditor/editor/lang/pt-br.js +0 -526
  940. data/public/fckeditor/editor/lang/pt.js +0 -526
  941. data/public/fckeditor/editor/lang/ro.js +0 -526
  942. data/public/fckeditor/editor/lang/ru.js +0 -526
  943. data/public/fckeditor/editor/lang/sk.js +0 -526
  944. data/public/fckeditor/editor/lang/sl.js +0 -526
  945. data/public/fckeditor/editor/lang/sr-latn.js +0 -526
  946. data/public/fckeditor/editor/lang/sr.js +0 -526
  947. data/public/fckeditor/editor/lang/sv.js +0 -526
  948. data/public/fckeditor/editor/lang/th.js +0 -526
  949. data/public/fckeditor/editor/lang/tr.js +0 -526
  950. data/public/fckeditor/editor/lang/uk.js +0 -526
  951. data/public/fckeditor/editor/lang/vi.js +0 -526
  952. data/public/fckeditor/editor/lang/zh-cn.js +0 -526
  953. data/public/fckeditor/editor/lang/zh.js +0 -526
  954. data/public/fckeditor/editor/plugins/autogrow/fckplugin.js +0 -99
  955. data/public/fckeditor/editor/plugins/bbcode/_sample/sample.config.js +0 -26
  956. data/public/fckeditor/editor/plugins/bbcode/_sample/sample.html +0 -67
  957. data/public/fckeditor/editor/plugins/bbcode/fckplugin.js +0 -123
  958. data/public/fckeditor/editor/plugins/dragresizetable/fckplugin.js +0 -524
  959. data/public/fckeditor/editor/plugins/placeholder/fck_placeholder.html +0 -105
  960. data/public/fckeditor/editor/plugins/placeholder/fckplugin.js +0 -187
  961. data/public/fckeditor/editor/plugins/placeholder/lang/de.js +0 -27
  962. data/public/fckeditor/editor/plugins/placeholder/lang/en.js +0 -27
  963. data/public/fckeditor/editor/plugins/placeholder/lang/es.js +0 -27
  964. data/public/fckeditor/editor/plugins/placeholder/lang/fr.js +0 -27
  965. data/public/fckeditor/editor/plugins/placeholder/lang/it.js +0 -27
  966. data/public/fckeditor/editor/plugins/placeholder/lang/pl.js +0 -27
  967. data/public/fckeditor/editor/plugins/placeholder/placeholder.gif +0 -0
  968. data/public/fckeditor/editor/plugins/simplecommands/fckplugin.js +0 -29
  969. data/public/fckeditor/editor/plugins/tablecommands/fckplugin.js +0 -33
  970. data/public/fckeditor/editor/skins/_fckviewstrips.html +0 -121
  971. data/public/fckeditor/editor/skins/default/fck_dialog.css +0 -402
  972. data/public/fckeditor/editor/skins/default/fck_dialog_ie6.js +0 -110
  973. data/public/fckeditor/editor/skins/default/fck_editor.css +0 -464
  974. data/public/fckeditor/editor/skins/default/fck_strip.gif +0 -0
  975. data/public/fckeditor/editor/skins/default/images/sprites.gif +0 -0
  976. data/public/fckeditor/editor/skins/default/images/sprites.png +0 -0
  977. data/public/fckeditor/editor/skins/default/images/toolbar.arrowright.gif +0 -0
  978. data/public/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif +0 -0
  979. data/public/fckeditor/editor/skins/default/images/toolbar.collapse.gif +0 -0
  980. data/public/fckeditor/editor/skins/default/images/toolbar.end.gif +0 -0
  981. data/public/fckeditor/editor/skins/default/images/toolbar.expand.gif +0 -0
  982. data/public/fckeditor/editor/skins/default/images/toolbar.separator.gif +0 -0
  983. data/public/fckeditor/editor/skins/office2003/fck_dialog.css +0 -402
  984. data/public/fckeditor/editor/skins/office2003/fck_dialog_ie6.js +0 -110
  985. data/public/fckeditor/editor/skins/office2003/fck_editor.css +0 -476
  986. data/public/fckeditor/editor/skins/office2003/fck_strip.gif +0 -0
  987. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.gif +0 -0
  988. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.png +0 -0
  989. data/public/fckeditor/editor/skins/office2003/images/dialog.sides.rtl.png +0 -0
  990. data/public/fckeditor/editor/skins/office2003/images/sprites.gif +0 -0
  991. data/public/fckeditor/editor/skins/office2003/images/sprites.png +0 -0
  992. data/public/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif +0 -0
  993. data/public/fckeditor/editor/skins/office2003/images/toolbar.bg.gif +0 -0
  994. data/public/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif +0 -0
  995. data/public/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif +0 -0
  996. data/public/fckeditor/editor/skins/office2003/images/toolbar.end.gif +0 -0
  997. data/public/fckeditor/editor/skins/office2003/images/toolbar.expand.gif +0 -0
  998. data/public/fckeditor/editor/skins/office2003/images/toolbar.separator.gif +0 -0
  999. data/public/fckeditor/editor/skins/office2003/images/toolbar.start.gif +0 -0
  1000. data/public/fckeditor/editor/skins/silver/fck_dialog.css +0 -402
  1001. data/public/fckeditor/editor/skins/silver/fck_dialog_ie6.js +0 -110
  1002. data/public/fckeditor/editor/skins/silver/fck_editor.css +0 -473
  1003. data/public/fckeditor/editor/skins/silver/fck_strip.gif +0 -0
  1004. data/public/fckeditor/editor/skins/silver/images/dialog.sides.gif +0 -0
  1005. data/public/fckeditor/editor/skins/silver/images/dialog.sides.png +0 -0
  1006. data/public/fckeditor/editor/skins/silver/images/dialog.sides.rtl.png +0 -0
  1007. data/public/fckeditor/editor/skins/silver/images/sprites.gif +0 -0
  1008. data/public/fckeditor/editor/skins/silver/images/sprites.png +0 -0
  1009. data/public/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif +0 -0
  1010. data/public/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif +0 -0
  1011. data/public/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif +0 -0
  1012. data/public/fckeditor/editor/skins/silver/images/toolbar.collapse.gif +0 -0
  1013. data/public/fckeditor/editor/skins/silver/images/toolbar.end.gif +0 -0
  1014. data/public/fckeditor/editor/skins/silver/images/toolbar.expand.gif +0 -0
  1015. data/public/fckeditor/editor/skins/silver/images/toolbar.separator.gif +0 -0
  1016. data/public/fckeditor/fckconfig.js +0 -364
  1017. data/public/fckeditor/fckdebug.html +0 -153
  1018. data/public/fckeditor/fckdialog.html +0 -812
  1019. data/public/fckeditor/fckeditor.html +0 -317
  1020. data/public/fckeditor/fckeditor.js +0 -328
  1021. data/public/fckeditor/fckeditor.original.html +0 -424
  1022. data/public/fckeditor/fckpackager.xml +0 -262
  1023. data/public/fckeditor/fckstyles.xml +0 -111
  1024. data/public/fckeditor/fcktemplates.xml +0 -103
  1025. data/public/javascripts/cms/editor.js +0 -56
@@ -0,0 +1,476 @@
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>Understanding Content Blocks</title>
6
+ <link rel="stylesheet" type="text/css" href="files/stylesheets/syntax.css" />
7
+ <script type="text/javascript" src="files/javascripts/code_highlighter.js"></script>
8
+ <script type="text/javascript" src="files/javascripts/highlighters.js"></script>
9
+ <style type="text/css">
10
+ body {
11
+ background: #FFFFFF url(images/bg.png) repeat-x scroll 0 0;
12
+ font-family: "Trebuchet MS", Helvetica, Verdana, Arial, sans-serif;
13
+ margin: 0;
14
+ padding: 0;
15
+ }
16
+
17
+ #page {
18
+ margin: 0 auto;
19
+ text-align: left;
20
+ width: 1000px;
21
+ }
22
+
23
+ #header {
24
+ height: 110px;
25
+ }
26
+
27
+ div.top_cap {
28
+ background: transparent url(images/top_cap.png) no-repeat scroll 0 0;
29
+ height: 10px;
30
+ }
31
+
32
+ #contentwrap {
33
+ background: transparent url(images/dot.png) repeat scroll 0 0;
34
+ float: left;
35
+ width: 1000px;
36
+ }
37
+
38
+ div.bottom_cap {
39
+ background: transparent url(images/bottom_cap.png) no-repeat scroll 0 0;
40
+ height: 9px;
41
+ }
42
+
43
+ div.top_cap_content {
44
+ background: transparent url(images/top_cap_content.png) no-repeat scroll 0 0;
45
+ height: 5px;
46
+ }
47
+
48
+ #content {
49
+ background-color: #FFFFFF;
50
+ margin: 0 5px;
51
+ padding: 0 10px;
52
+ }
53
+
54
+ div.title {
55
+ padding: 20px;
56
+ }
57
+
58
+ div.title h1 {
59
+ border-bottom: 3px solid #505358;
60
+ color: #FFFFFF;
61
+ font-size: 24pt;
62
+ font-weight: normal;
63
+ line-height: 1;
64
+ margin: 0 0 10px;
65
+ padding-bottom: 10px;
66
+ }
67
+
68
+ td.sidebar {
69
+ font-size: 8pt;
70
+ width: 165px;
71
+ padding: 5px;
72
+ }
73
+
74
+ td.sidebar ol {
75
+ margin-left: 20px;
76
+ padding: 0;
77
+ line-height: 1.5;
78
+ }
79
+
80
+ td.sidebar ol li {
81
+ margin: 0;
82
+ padding: 0;
83
+ }
84
+
85
+ td.sidebar ol li ul {
86
+ list-style-type: none;
87
+ padding-left: 10px;
88
+ }
89
+
90
+ td.guides {
91
+ font-size: 10pt;
92
+ width: 800px;
93
+ padding: 10px;
94
+ }
95
+
96
+ .code_container {
97
+ padding: 10px;
98
+ background: #eee;
99
+ border: 1px solid #ccc;
100
+ overflow: auto;
101
+ width: 760px;
102
+ }
103
+
104
+ pre, code {
105
+ overflow: auto;
106
+ white-space:pre;
107
+ }
108
+ .note {
109
+ -moz-background-clip:border;
110
+ -moz-background-inline-policy:continuous;
111
+ -moz-background-origin:padding;
112
+ background:#FFF9D8 url(../images/tab_note.gif) no-repeat scroll left top;
113
+ border:medium none;
114
+ margin:0.25em 0 1.5em;
115
+ padding:1em 1em 0.25em 48px;
116
+ }
117
+ </style>
118
+ </head>
119
+ <body>
120
+ <div id="page">
121
+ <div id="header">
122
+ <a href="index.html"><img style="border:0px" src="images/browsercms_logo.png" alt="BrowserCMS"/></a>
123
+ </div>
124
+ <div id="main">
125
+ <div class="top_cap"></div>
126
+ <div id="contentwrap">
127
+ <div class="title">
128
+ <h1>Understanding Content Blocks</h1>
129
+ </div>
130
+ <div class="top_cap_content"></div>
131
+ <div id="content">
132
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
133
+ <tr>
134
+ <td class="sidebar" valign="top">
135
+ <div id="subCol">
136
+ <h3 class="chapter"><img src="images/chapters_icon.gif" alt="" />Chapters</h3>
137
+ <ol class="chapters">
138
+ <li><a href="#generating-a-new-content-block">Generating a new Content Block</a><ul><li><a href="#generated-files">Generated files</a></li><li><a href="#migrating-the-database">Migrating the database</a></li><li><a href="#viewing-the-user-interface">Viewing the User Interface</a></li></ul></li><li><a href="#available-attributes">Available Attributes</a><ul><li><a href="#examples">Examples</a></li><li><a href="#gotchas">Gotchas</a></li><li><a href="#other-attributes">Other Attributes</a></li></ul></li><li><a href="#validations">Validations</a><ul></ul></li><li><a href="#customizing-the-form">Customizing the Form</a><ul></ul></li><li><a href="#changing-the-view">Changing the View</a><ul></ul></li><li><a href="#adding-more-attributes">Adding more attributes</a><ul><li><a href="#adding-a-content-column-via-migration">Adding a content column via migration</a></li><li><a href="#add-field-to-form">Add Field to Form</a></li></ul></li><li><a href="#renaming-content-types">Renaming Content Types</a><ul></ul></li><li><a href="#grouping-related-blocks">Grouping Related Blocks</a><ul><li><a href="#adding-a-second-block-to-store-group">Adding a Second Block to &#8216;Store&#8217; Group</a></li></ul></li><li><a href="#associations-between-blocks">Associations between Blocks</a><ul></ul></li><li><a href="#field-types">Field Types</a><ul><li><a href="#select--cms-drop-down">Select / <tt>cms_drop_down</tt></a></li><li><a href="#attachments--cms-file-field">Attachments / <tt>cms_file_field</tt></a></li></ul></li><li><a href="#controllers">Controllers</a><ul><li><a href="#public-controllers">Public Controllers</a></li></ul></li></ol></div>
139
+ </td>
140
+ <td class="guides">
141
+ <h2>Understanding Content Blocks</h2>
142
+ <p>This guide covers how developers can create content blocks. It covers the following concepts:</p>
143
+ <ul>
144
+ <li>Generating a new Block</li>
145
+ <li>Attributes</li>
146
+ <li>Migrations</li>
147
+ <li>Grouping related Content Blocks</li>
148
+ </ul>
149
+ <h3 id="generating-a-new-content-block">1 Generating a new Content Block</h3>
150
+ <p>New blocks can be creating using their own generator. For this guide, we will start by creating a Product block. This
151
+ will represent a single product that users can browse and purchase for. <span class="caps">CMS</span> users will be able create new products via a
152
+ generated user interface. Products can be place on pages as content, or fetched by Portlets based on specific criteria.</p>
153
+ <p>Run the following command:</p>
154
+ <div class="code_container"><code class="html">$ script/generate content_block Product name:string price:integer description:html</code></div>
155
+ <p>This generates the Content Block with several attributes. We will cover a list of available attributes later.</p>
156
+ <h4 id="generated-files">1.1 Generated files</h4>
157
+ <p>The generator creates a number of files, as well as modify the routes.rb file to add the new routes for modifying Products.</p>
158
+ <table>
159
+ <tr>
160
+ <th>File </th>
161
+ <th>Purpose </th>
162
+ </tr>
163
+ <tr>
164
+ <td> app/models/product.rb </td>
165
+ <td> The Product content block (i.e. the model) </td>
166
+ </tr>
167
+ <tr>
168
+ <td> db/migrate/20100127012201_create_products.rb </td>
169
+ <td> Migration to create the product tables (The timestamps will vary) </td>
170
+ </tr>
171
+ <tr>
172
+ <td> app/controllers/cms/products_controller.rb </td>
173
+ <td> Controller to modify products </td>
174
+ </tr>
175
+ <tr>
176
+ <td> app/views/cms/products/_form.html.erb </td>
177
+ <td> Partial for the form to edit Products </td>
178
+ </tr>
179
+ <tr>
180
+ <td> app/views/cms/products/render.html.erb </td>
181
+ <td> View for rendering a Product </td>
182
+ </tr>
183
+ <tr>
184
+ <td> test/unit/models/product_test.rb </td>
185
+ <td> Unit test for the Product model </td>
186
+ </tr>
187
+ <tr>
188
+ <td> test/functional/cms/products_controller_test.rb </td>
189
+ <td> Functional test for the Product Controller </td>
190
+ </tr>
191
+ <tr>
192
+ <td> config/routes.rb </td>
193
+ <td> Edited to add routing information for Products </td>
194
+ </tr>
195
+ </table>
196
+ <h4 id="migrating-the-database">1.2 Migrating the database</h4>
197
+ <p>After generating the content block, you will need to run the migration to add the product tables. Run the following at your terminal:</p>
198
+ <div class="code_container"><code class="html">$ rake db:migrate</code></div>
199
+ <p>This will create several tables and registers the new Product in the UI. You should not need to restart your server if
200
+ its already running to use the admin interface.</p>
201
+ <h4 id="viewing-the-user-interface">1.3 Viewing the User Interface</h4>
202
+ <p>After creating the model, you can review the basic user interface that has been generated to add and edit products. In
203
+ the <span class="caps">CMS</span> UI, you can go directly to <tt>/cms/products</tt>. This is the index page for products, which will list all instances of
204
+ your Product models in the database. As we have just created this block, there should be none in the database.</p>
205
+ <p>Click on the <em>Add New Content</em> button, which will bring up the form to add a new instance of a Product. This form will have three form fields for the three attributes we specified in our generator, name, price and description. The form fields available on this page are determined by what is in the +app/views/cms/products/_form.html.erb, which will cover later.</p>
206
+ <p>Fill in some data for each of these three fields and click the <em>Save and Publish</em> button. You will now be looking at a view of the product you just added. Each product has a default way of showing it&#8217;s data to the world, which is defined in the <tt>app/views/cms/products/render.html.erb</tt> file. When a block is first generated, it will just list it&#8217;s attributes. However, as you will see later, you can edit that file to change how it&#8217;s displayed. On this page (<tt>/cms/products/1</tt>) you are seeing a product by itself, but since any block can be added to a page, the <tt>render.html.erb</tt> determines how it will look.</p>
207
+ <h3 id="available-attributes">2 Available Attributes</h3>
208
+ <p>Blocks are really just ActiveRecord models, and they will support all of the same attribute or column types that Rails model or migrations do. Each attribute will be mapped to a column in the <tt>products</tt> table and will have a form field to allow users to edit it. Here is a list of the commonly used attributes. Not all attributes can be specified via the generator, though they can be added to blocks later. These attribute</p>
209
+ <table>
210
+ <tr>
211
+ <th>Generator </th>
212
+ <th>Migration </th>
213
+ <th>Field </th>
214
+ <th>Description </th>
215
+ </tr>
216
+ <tr>
217
+ <td> string </td>
218
+ <td> string </td>
219
+ <td> cms_text_field </td>
220
+ <td> A single line text field allowing for basic text entry. </td>
221
+ </tr>
222
+ <tr>
223
+ <td> text </td>
224
+ <td> text </td>
225
+ <td> cms_text_area </td>
226
+ <td> A multiline text area for basic text. </td>
227
+ </tr>
228
+ <tr>
229
+ <td> integer </td>
230
+ <td> integer </td>
231
+ <td> cms_text_field </td>
232
+ <td> See <tt>string</tt> </td>
233
+ </tr>
234
+ <tr>
235
+ <td> decimal </td>
236
+ <td> decimal </td>
237
+ <td> cms_text_field </td>
238
+ <td> See <tt>string</tt> </td>
239
+ </tr>
240
+ <tr>
241
+ <td> boolean </td>
242
+ <td> boolean </td>
243
+ <td> cms_check_box </td>
244
+ <td> A single check box </td>
245
+ </tr>
246
+ <tr>
247
+ <td> date </td>
248
+ <td> date </td>
249
+ <td> cms_date_picker </td>
250
+ <td> A javascript popup date picker that lets you select date from a mini calendar </td>
251
+ </tr>
252
+ <tr>
253
+ <td> datetime </td>
254
+ <td> datetime </td>
255
+ <td> cms_datetime_select </td>
256
+ <td> A widget to choose month, day, year and time using several select boxes </td>
257
+ </tr>
258
+ <tr>
259
+ <td> category </td>
260
+ <td> belongs_to :category </td>
261
+ <td> cms_drop_down </td>
262
+ <td> A styled select to choose any Category associated with the block </td>
263
+ </tr>
264
+ <tr>
265
+ <td> html </td>
266
+ <td> text (64.kilobytes + 1) </td>
267
+ <td> cms_text_editor </td>
268
+ <td> A <span class="caps">WYSIWYG</span> Html Editor </td>
269
+ </tr>
270
+ <tr>
271
+ <td> attachment </td>
272
+ <td> belongs_to :attachment </td>
273
+ <td> cms_file_field </td>
274
+ <td> A File Browse button to upload files into the repository. </td>
275
+ </tr>
276
+ <tr>
277
+ <td> NA </td>
278
+ <td> NA </td>
279
+ <td> cms_tag_list </td>
280
+ <td> A text area that can be used to associate blocks with Tags (many to many) </td>
281
+ </tr>
282
+ <tr>
283
+ <td> NA </td>
284
+ <td> integer </td>
285
+ <td> cms_drop_down </td>
286
+ <td> A styled select to handle creating belongs_to relationship with other blocks </td>
287
+ </tr>
288
+ </table>
289
+ <p><strong>Table Key</strong></p>
290
+ <ul>
291
+ <li>Generator &#8211; What is specified the generator (i.e. name:string)</li>
292
+ <li>Migration &#8211; The migration column type that Rails will use to generate the table.</li>
293
+ <li>Field &#8211; The name of the default Form Field method which is generated to allows users to edit that attribute.</li>
294
+ <li>Description &#8211; The basic purpose of the form field.</li>
295
+ </ul>
296
+ <h4 id="examples">2.1 Examples</h4>
297
+ <p>Here are some examples of potential usages for generating blocks, using the generator.</p>
298
+ <div class="code_container"><code class="html">$ script/generate content_block Meeting name:string active:boolean start_date:date end_time:datetime
299
+ $ script/generate content_block photo attachment:attachment on_shelf:category</code></div>
300
+ <h4 id="gotchas">2.2 Gotchas</h4>
301
+ <ul>
302
+ <li>Specifying the <tt>name</tt> attribute is optional. It will be included automatically if you don&#8217;t specify it.</li>
303
+ <li>Any block can only ever have one attribute of type &#8216;Attachment&#8217;. The field name must be &#8216;Attachment&#8217;, though you can change the label shown on the form field.</li>
304
+ </ul>
305
+ <h4 id="other-attributes">2.3 Other Attributes</h4>
306
+ <p>This list of attributes isn&#8217;t comprehensive and any migration attribute supported by Rails may work. The content_block generator will just pass the attribute to the migration and use a <tt>cms_text_field</tt> to edit the attribute.</p>
307
+ <h3 id="validations">3 Validations</h3>
308
+ <p>Since content blocks are just still ActiveRecord objects, you can use any Rails Validations to enforce the data validity. Let&#8217;s add one to our Product. Edit the app/models/product.rb file. It should look like this:</p>
309
+ <div class="code_container"><code class="ruby">class Product &lt; ActiveRecord::Base
310
+ acts_as_content_block
311
+ end</code></div>
312
+ <p>Let&#8217;s assume we want to require that users will specify a price when they add a new product. Add the following to the block.</p>
313
+ <div class="code_container"><code class="ruby">class Product &lt; ActiveRecord::Base
314
+ validates_presence_of :price
315
+ end</code></div>
316
+ <p>Then open up <tt>/cms/products</tt> in your browser and click <em>Add New Content</em>. Leave the price empty and try to save the block. The <span class="caps">CMS</span> will check the product has a price, and will display an error message if it&#8217;s not included. It will also highlight the field to indicate where the error is.</p>
317
+ <p>See the <a href="http://guides.rubyonrails.org/activerecord_validations_callbacks.html#validations-overview">ActiveRecord Validation</a> Guide for a more detailed list of supported validations.</p>
318
+ <h3 id="customizing-the-form">4 Customizing the Form</h3>
319
+ <p>The form created for us is good enough, but suppose we want change it up a bit. For example, I would like to add some instructions to our price field to indicated that it&#8217;s a required integer (whole dollars only) and put it last in the order. We can do this by editing the <tt>app/views/cms/_form.html.erb</tt> partial.</p>
320
+ <p>Here&#8217;s what our Form looks like:</p>
321
+ <div class="code_container"><code class="html">&lt;%= f.cms_text_field :name %&gt;
322
+ &lt;%= f.cms_text_field :price %&gt;
323
+ &lt;%= f.cms_text_editor :description %&gt;</code></div>
324
+ <p>Switching the order is easy. Just move the :price line after the :description line. There is also an easy way to add instructions to any given field by adding a :instructions option to it. Change the <tt>_form.html.erb</tt> to the following:</p>
325
+ <div class="code_container"><code class="html">&lt;%= f.cms_text_field :name %&gt;
326
+ &lt;%= f.cms_text_editor :description %&gt;
327
+ &lt;%= f.cms_text_field :price, :instructions=&gt;&quot;Required. Must be an integer (i.e. 1, not 1.0)&quot; %&gt;</code></div>
328
+ <p>Refresh the <tt>/cms/products/new</tt> page to see the changes to the form. The price field show now appear last and will have helpful instructions written out below the text field. All form fields should support an <tt>:instructions</tt> option.</p>
329
+ <h3 id="changing-the-view">5 Changing the View</h3>
330
+ <p>As mentioned before, each content block has a single view that will be used to render the <span class="caps">HTML</span> when this product is placed directly on a page. For our Product block, this file is <tt>app/views/cms/products/render.html.erb</tt>. Open up that file and you should see the following:</p>
331
+ <div class="code_container"><code class="html">&lt;p&gt;&lt;b&gt;Name:&lt;/b&gt; &lt;%= @content_block.name %&gt;&lt;/p&gt;
332
+ &lt;p&gt;&lt;b&gt;Price:&lt;/b&gt; &lt;%= @content_block.price %&gt;&lt;/p&gt;
333
+ &lt;p&gt;&lt;b&gt;Description:&lt;/b&gt; &lt;%= @content_block.description %&gt;&lt;/p&gt;</code></div>
334
+ <p>This is a reasonable start, but its likely you will want to change this if you start placing Products onto pages. Let&#8217;s go ahead and alter this file to see how it works. Alter it to match the following:</p>
335
+ <div class="code_container"><code class="html">&lt;p&gt;&lt;b&gt;&lt;%= @content_block.name %&gt;&lt;/b&gt; $&lt;%= @content_block.price %&gt;.00&lt;/p&gt;
336
+ &lt;p&gt;&lt;%= @content_block.description %&gt;&lt;/p&gt;</code></div>
337
+ <p>Then open the <tt>/cms/products/1</tt> <span class="caps">URL</span> in your browser and see what a single product looks like. This isn&#8217;t the only way to alter how a block looks, as Portlets can also find and display blocks using different views. And if you don&#8217;t plan to use Products individually, you can likely skip this step and just build the portlets you need.</p>
338
+ <h3 id="adding-more-attributes">6 Adding more attributes</h3>
339
+ <p>When working with blocks, its easiest if you know all your attributes before you generate the block. However, you can still add additional attributes after you have generated the block. To add a new field to a block, you will need to make the following changes:</p>
340
+ <ul>
341
+ <li>Add the attribute via a migration.</li>
342
+ <li>Add the field to the form.</li>
343
+ </ul>
344
+ <p>Let&#8217;s update our Product to add a Size attribute, which will be a drop down where users can choose S, M, L and XL.</p>
345
+ <h4 id="adding-a-content-column-via-migration">6.1 Adding a content column via migration</h4>
346
+ <p>To add a column to an existing block, run the following command:</p>
347
+ <div class="code_container"><code class="html">$ script/generate migration update_products</code></div>
348
+ <p>This will generate a single file <tt>db/migrate/20100129000441_update_products.rb</tt>. Open up that file, alter it to match the following:</p>
349
+ <div class="code_container"><code class="ruby">class UpdateProducts &lt; ActiveRecord::Migration
350
+ def self.up
351
+ add_content_column :products, :size, :string
352
+ end
353
+
354
+ def self.down
355
+ remove_column :products, :size
356
+ remove_column :product_versions, :size
357
+ end
358
+ end</code></div>
359
+ <p>BrowserCMS adds a new migration method called <tt>add_content_column</tt>, which you can use to add the column to the correct tables. Run <tt>rake db:migrate</tt> to add the column to the database.</p>
360
+ <div class='note'><p>One of the differences between a typical Rails Active Record and a <span class="caps">CMS</span> Content Block is that content blocks are versioned, meaning they keep track of every change made to them. To do this requires an additional table to keep all the older states. For example, there are two tables for our Product, <tt>products</tt> and <tt>product_versions</tt>. So when you add a new column, it must be added to both tables, which <tt>add_content_column</tt> does for you.</p></div>
361
+ <h4 id="add-field-to-form">6.2 Add Field to Form</h4>
362
+ <p>We want to add a selectbox to the form which will allow our user to choose from S, M, L or XL. Open the <tt>app/views/cms/products/_form.html.erb</tt> and add a new field <tt>cms_drop_down</tt> like this:</p>
363
+ <div class="code_container"><code class="html">&lt;%= f.cms_text_field :name %&gt;
364
+ &lt;%= f.cms_drop_down :size, [&quot;S&quot;, &quot;M&quot;, &quot;L&quot;, &quot;XL&quot;] %&gt;
365
+ &lt;%= f.cms_text_editor :description %&gt;
366
+ &lt;%= f.cms_text_field :price, :instructions=&gt;&quot;Required. Must be an integer (i.e. 1, not 1.0)&quot; %&gt;</code></div>
367
+ <p>This will render a styled select box which will present the four choices and store the value as a string. Open <tt>/cms/products/new</tt> and you should see the following:</p>
368
+ <p><img src="images/content_blocks/add_field_to_form.png" alt="" /></p>
369
+ <h3 id="renaming-content-types">7 Renaming Content Types</h3>
370
+ <p>When you generate a content block, by default it will use the name of the class as the &#8216;Display Name&#8217; through out the user interface. In the content library in the content type menu you see &#8216;Products&#8217; and the page says &#8216;View Product&#8217;. In some cases, the name of the class may be different that how you want it displayed, or you might want to relabel it without rewriting your code.</p>
371
+ <p>You can set the display_name of a given content type by defining a new method in your block. Suppose we wanted to rename our <tt>Product</tt> Block from &#8220;Product&#8221; to &#8220;Book&#8221; throughout the UI. Edit the <tt>app/model/product.rb</tt> to add the following method.</p>
372
+ <div class="code_container"><code class="ruby">class Product &lt; ActiveRecord::Base
373
+ # ...
374
+ def self.display_name
375
+ &quot;Book&quot;
376
+ end
377
+ end</code></div>
378
+ <p>BrowserCMS will use whatever value is returned by <tt>display_name</tt> in the UI for singular labels (i.e. Add New Book). It will automatically pluralize <tt>display_name</tt> as well. If you want to explicitly set the plural form of your block, you can do so by adding the following method to the block.</p>
379
+ <div class="code_container"><code class="ruby">class Product &lt; ActiveRecord::Base
380
+ # ...
381
+ def self.display_name_plural
382
+ &quot;Bookz&quot;
383
+ end
384
+ end</code></div>
385
+ <div class='note'><p>This will not change the path to manage the block. I.e. even after change from &#8220;Product&#8221; to &#8220;Book&#8221;, the route for viewing a Product will be <tt>/cms/products/1</tt>, not <tt>/cms/books/1</tt>.</p></div>
386
+ <h3 id="grouping-related-blocks">8 Grouping Related Blocks</h3>
387
+ <p>As you define new Content Blocks in your project, you will notice that each new one will appear in its own group on the Content Types menu of the Content Library. By default, each Block will be assigned to its own group. It&#8217;s often a good idea to group several related Content Blocks together into a single group to keep users understand which types belong together. Open the <tt>db/migrate/20100128194303_create_products.rb</tt> migration file, which is where the &#8216;Group&#8217; name is set.</p>
388
+ <div class="code_container"><code class="ruby">class CreateProducts &lt; ActiveRecord::Migration
389
+ def self.up
390
+ # ...
391
+ ContentType.create!(:name =&gt; &quot;Product&quot;, :group_name =&gt; &quot;Product&quot;)
392
+ end
393
+ # ...
394
+ end</code></div>
395
+ <p>When a new <tt>ContentType</tt> is created, it determines which group_name is used. By default, the group name will be the same as the block name. Change the <tt>:group_name=>"Product"</tt> to <tt>:group_name=>"Store"</tt>, then run the following command to drop and rebuild the database using the migrations <tt>rake db:drop db:create db:migrate</tt></p>
396
+ <div class='note'><p>This technique is an easy way to just toss out all your development data and start over. Often times, its quicker to just edit an existing migration and rerun them all, rather than create a ton of little migrations just for changes to your local database.</p></div>
397
+ <h4 id="adding-a-second-block-to-store-group">8.1 Adding a Second Block to &#8216;Store&#8217; Group</h4>
398
+ <p>Now that we have renamed our Group from &#8216;Product&#8217; to &#8216;Store&#8217;, lets add another block to the &#8216;Store&#8217;. Run the following:</p>
399
+ <div class="code_container"><code class="html">$ script/generate content_block ShippingMethod name:string insured:boolean</code></div>
400
+ <p>Before running the migration, edit the <tt>db/migrate/20100129154902_create_shipping_methods.rb</tt> file to alter the following line:</p>
401
+ <div class="code_container"><code class="ruby">class CreateShippingMethods &lt; ActiveRecord::Migration
402
+ def self.up
403
+ # ...
404
+ ContentType.create!(:name =&gt; &quot;ShippingMethod&quot;, :group_name =&gt; &quot;Store&quot;)
405
+ end
406
+
407
+ # ...
408
+ end</code></div>
409
+ <p>Now run the migration to add the Shipping Method block. Open your browser to <tt>/cms/products</tt> and your Content Types menu should look like this:</p>
410
+ <p><img src="images/content_blocks/add_second_block.png" alt="" /></p>
411
+ <h3 id="associations-between-blocks">9 Associations between Blocks</h3>
412
+ <p>Since Content Blocks are Active Record objects, they can be associated with each other like any models can. This includes the commonly used <tt>belongs_to</tt> and <tt>has_many</tt> associations. You can see the <a href="http://guides.rubyonrails.org/association_basics.html">Active Record Associations Guide</a> for details on how associations work.</p>
413
+ <p>When you associate Content Blocks, you will need to determine how you allow users to edit content. For instance, if our <tt>Product</tt> had a <tt>belongs_to</tt> relationship with a <tt>Category</tt> object you can use a <tt>cms_drop_down</tt> Field that allows users to select a single category.</p>
414
+ <p>In some cases, you may need to build your own form fields for more complex relationships (Like javascript based controls). You can use the basic Rails <tt>FormBuilder</tt> methods to construct new Fields. To get things to look right (with labels and alignments), you should start with the html used to generate other fields and work backwards from there.</p>
415
+ <div class='note'><p><strong>Understanding Versioning:</strong> It&#8217;s important to recognize how versioning works with respect to related blocks. Versioning will keep track of the state of each block everytime the row is saved, but does not keep track of the relationships between blocks. So if I update our <tt>Product</tt> block, then renamed the <tt>Category</tt> block it&#8217;s related to, reverting that <tt>Product</tt> will not undo the Category name change.</p></div>
416
+ <h3 id="field-types">10 Field Types</h3>
417
+ <p>This section servers as a quick reference of the field types that Content Blocks can have. Fields are the html widgets you use to edit properties on blocks. The complete list of available fields is:</p>
418
+ <ul>
419
+ <li>Text Fields (<tt>cms_text_field</tt>)</li>
420
+ <li>Text Areas (<tt>cms_text_area</tt>)</li>
421
+ <li>Check box (<tt>cms_check_box</tt>)</li>
422
+ <li>Drop Down / Selects (<tt>cms_drop_down</tt>)</li>
423
+ <li>Text Editor (<tt>cms_text_editor</tt>)</li>
424
+ <li>Attachment (<tt>cms_file_field</tt>)</li>
425
+ <li>Tag List (<tt>cms_tag_list</tt>)</li>
426
+ <li>Date Picker (<tt>cms_date_picker</tt>)</li>
427
+ <li>Date Time Select (<tt>cms_datetime_select</tt>)</li>
428
+ </ul>
429
+ <h4 id="select--cms-drop-down">10.1 Select / <tt>cms_drop_down</tt></h4>
430
+ <p>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.</p>
431
+ <p>In _form.html.erb:</p>
432
+ <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]},
433
+ :prompt =&gt; &quot;Select a Category&quot;, :label =&gt; &quot;Category&quot;,
434
+ :instructions=&gt;&quot;Determines which category is used on the homepage.&quot; %&gt;</code></div>
435
+ <p>In product.rb:</p>
436
+ <div class="code_container"><code class="ruby">class Product &lt; ActiveRecord::Base
437
+ belongs_to :category
438
+ end</code></div>
439
+ <h4 id="attachments--cms-file-field">10.2 Attachments / <tt>cms_file_field</tt></h4>
440
+ <p>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
441
+ 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
442
+ will have their own versioning history, which will keep track of changes.</p>
443
+ <p>This helper will create a stylized file upload file. An uploaded file will be associated with the content_block to which it is attached.</p>
444
+ <p>In _form.html.erb (View)</p>
445
+ <div class="code_container"><code class="html">&lt;%= f.cms_file_field :attachment_file, :label =&gt; &quot;File&quot; %&gt;</code></div>
446
+ <p>In product.rb (Block)</p>
447
+ <div class="code_container"><code class="ruby">class Product &lt; ActiveRecord::Base
448
+ acts_as_content_block :belongs_to_attachment =&gt; true
449
+ end</code></div>
450
+ <p>In create_products.rb (Migration)</p>
451
+ <div class="code_container"><code class="ruby">create_content_table :products do |t|
452
+ t.belongs_to :attachment
453
+ t.integer :attachment_version
454
+ end</code></div>
455
+ <ol>
456
+ <li>To Do &#8211; Add additional examples of other Fields (like cms_drop_down with example of relationships)</li>
457
+ </ol>
458
+ <h3 id="controllers">11 Controllers</h3>
459
+ <p>Each block is will also have an associated Controller, which gives it the same <span class="caps">CRUD</span> methods that a typical Rails resource would have, along with a few others (like publishing and reverting). By default, the generated controller inherits all this behavior from <tt>Cms::ContentBlockController</tt> and is therefore pretty empty. Like so:</p>
460
+ <div class="code_container"><code class="ruby">class Cms::ProductsController &lt; Cms::ContentBlockController
461
+ end</code></div>
462
+ <p>If you want to define new methods (or override the existing methods) you can do so by editing this controller.</p>
463
+ <h4 id="public-controllers">11.1 Public Controllers</h4>
464
+ <p>The above controller is intended to handle only admin related actions. 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.</p>
465
+ </td>
466
+ </tr>
467
+ </table>
468
+ </div>
469
+ </div>
470
+ <br clear="all"/>
471
+ <div class="bottom_cap"></div>
472
+ </div>
473
+ </div>
474
+ </body>
475
+ </html>
476
+