browsercmsi 3.1.1 → 3.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. data/README.markdown +3 -4
  2. data/app/controllers/cms/dynamic_views_controller.rb +3 -2
  3. data/app/controllers/cms/portlet_controller.rb +9 -2
  4. data/app/helpers/cms/form_builder.rb +1 -1
  5. data/app/views/cms/dynamic_views/index.html.erb +5 -0
  6. data/app/views/cms/form_builder/_cms_select_year.html.erb +16 -0
  7. data/app/views/cms/sessions/new.html.erb +1 -1
  8. data/app/views/layouts/_page_toolbar.html.erb +4 -3
  9. data/bin/browsercmsi +1 -1
  10. data/browsercmsi.gemspec +111 -6
  11. data/config/initializers/i18n.rb +2 -0
  12. data/config/locales/bcms/de/behaviors.yml +22 -0
  13. data/config/locales/bcms/de/bootstrap.yml +30 -0
  14. data/config/locales/bcms/de/controllers.yml +76 -0
  15. data/config/locales/bcms/de/helpers.yml +13 -0
  16. data/config/locales/bcms/de/js.yml +7 -0
  17. data/config/locales/bcms/de/models.yml +146 -0
  18. data/config/locales/bcms/de/portlets.yml +10 -0
  19. data/config/locales/bcms/de/views/cms/blocks.yml +68 -0
  20. data/config/locales/bcms/de/views/cms/cache.yml +5 -0
  21. data/config/locales/bcms/de/views/cms/categories.yml +9 -0
  22. data/config/locales/bcms/de/views/cms/connectors.yml +10 -0
  23. data/config/locales/bcms/de/views/cms/content.yml +5 -0
  24. data/config/locales/bcms/de/views/cms/content_types.yml +4 -0
  25. data/config/locales/bcms/de/views/cms/dashboard.yml +18 -0
  26. data/config/locales/bcms/de/views/cms/dynamic_views.yml +18 -0
  27. data/config/locales/bcms/de/views/cms/email_messages.yml +18 -0
  28. data/config/locales/bcms/de/views/cms/forgot_password_mailer.yml +6 -0
  29. data/config/locales/bcms/de/views/cms/form_builder.yml +5 -0
  30. data/config/locales/bcms/de/views/cms/groups.yml +34 -0
  31. data/config/locales/bcms/de/views/cms/links.yml +14 -0
  32. data/config/locales/bcms/de/views/cms/page_routes.yml +28 -0
  33. data/config/locales/bcms/de/views/cms/pages.yml +39 -0
  34. data/config/locales/bcms/de/views/cms/redirects.yml +19 -0
  35. data/config/locales/bcms/de/views/cms/routes.yml +10 -0
  36. data/config/locales/bcms/de/views/cms/section_nodes.yml +15 -0
  37. data/config/locales/bcms/de/views/cms/sections.yml +23 -0
  38. data/config/locales/bcms/de/views/cms/sessions.yml +7 -0
  39. data/config/locales/bcms/de/views/cms/shared.yml +38 -0
  40. data/config/locales/bcms/de/views/cms/tags.yml +5 -0
  41. data/config/locales/bcms/de/views/cms/tasks.yml +8 -0
  42. data/config/locales/bcms/de/views/cms/users.yml +48 -0
  43. data/config/locales/bcms/de/views/layouts/cms/content_library.yml +8 -0
  44. data/config/locales/bcms/de/views/layouts/cms/footer.yml +5 -0
  45. data/config/locales/bcms/de/views/layouts/cms_toolbar.yml +4 -0
  46. data/config/locales/bcms/de/views/layouts/page_toolbar.yml +27 -0
  47. data/config/locales/bcms/de/views/portlets.yml +57 -0
  48. data/config/locales/bcms/en/bootstrap.yml +1 -1
  49. data/config/locales/bcms/en/models.yml +1 -1
  50. data/config/locales/bcms/en/views/cms/blocks.yml +1 -1
  51. data/config/locales/bcms/en/views/cms/groups.yml +1 -1
  52. data/config/locales/bcms/en/views/layouts/page_toolbar.yml +5 -1
  53. data/config/locales/bcms/en/views/portlets.yml +1 -1
  54. data/config/locales/bcms/es/models.yml +1 -1
  55. data/config/locales/bcms/es/views/cms/sections.yml +1 -1
  56. data/config/locales/bcms/es/views/cms/sessions.yml +1 -1
  57. data/config/locales/bcms/es/views/layouts/page_toolbar.yml +6 -2
  58. data/config/locales/bcms/fr/behaviors.yml +21 -0
  59. data/config/locales/bcms/fr/bootstrap.yml +30 -0
  60. data/config/locales/bcms/fr/controllers.yml +76 -0
  61. data/config/locales/bcms/fr/helpers.yml +12 -0
  62. data/config/locales/bcms/fr/js.yml +7 -0
  63. data/config/locales/bcms/fr/models.yml +146 -0
  64. data/config/locales/bcms/fr/portlets.yml +9 -0
  65. data/config/locales/bcms/fr/views/cms/blocks.yml +67 -0
  66. data/config/locales/bcms/fr/views/cms/cache.yml +6 -0
  67. data/config/locales/bcms/fr/views/cms/categories.yml +11 -0
  68. data/config/locales/bcms/fr/views/cms/connectors.yml +10 -0
  69. data/config/locales/bcms/fr/views/cms/content.yml +5 -0
  70. data/config/locales/bcms/fr/views/cms/content_types.yml +4 -0
  71. data/config/locales/bcms/fr/views/cms/dashboard.yml +16 -0
  72. data/config/locales/bcms/fr/views/cms/dynamic_views.yml +18 -0
  73. data/config/locales/bcms/fr/views/cms/email_messages.yml +18 -0
  74. data/config/locales/bcms/fr/views/cms/forgot_password_mailer.yml +8 -0
  75. data/config/locales/bcms/fr/views/cms/form_builder.yml +5 -0
  76. data/config/locales/bcms/fr/views/cms/groups.yml +34 -0
  77. data/config/locales/bcms/fr/views/cms/links.yml +14 -0
  78. data/config/locales/bcms/fr/views/cms/page_routes.yml +28 -0
  79. data/config/locales/bcms/fr/views/cms/pages.yml +38 -0
  80. data/config/locales/bcms/fr/views/cms/redirects.yml +18 -0
  81. data/config/locales/bcms/fr/views/cms/routes.yml +9 -0
  82. data/config/locales/bcms/fr/views/cms/section_nodes.yml +15 -0
  83. data/config/locales/bcms/fr/views/cms/sections.yml +22 -0
  84. data/config/locales/bcms/fr/views/cms/sessions.yml +7 -0
  85. data/config/locales/bcms/fr/views/cms/shared.yml +38 -0
  86. data/config/locales/bcms/fr/views/cms/tags.yml +5 -0
  87. data/config/locales/bcms/fr/views/cms/tasks.yml +7 -0
  88. data/config/locales/bcms/fr/views/cms/users.yml +43 -0
  89. data/config/locales/bcms/fr/views/layouts/cms/content_library.yml +7 -0
  90. data/config/locales/bcms/fr/views/layouts/cms/footer.yml +5 -0
  91. data/config/locales/bcms/fr/views/layouts/cms_toolbar.yml +4 -0
  92. data/config/locales/bcms/fr/views/layouts/page_toolbar.yml +26 -0
  93. data/config/locales/bcms/fr/views/portlets.yml +56 -0
  94. data/doc/guides/html/authentication.html +448 -192
  95. data/doc/guides/html/build_it_yourself.html +454 -175
  96. data/doc/guides/html/building_modules.html +453 -245
  97. data/doc/guides/html/building_templates.html +448 -498
  98. data/doc/guides/html/content_blocks.html +450 -470
  99. data/doc/guides/html/customizing_browsercms.html +453 -169
  100. data/doc/guides/html/deployment_guide.html +451 -201
  101. data/doc/guides/html/files/bcmsorg.js +28 -0
  102. data/doc/guides/html/files/clearfix.css +8 -0
  103. data/doc/guides/html/files/cufon.js +7 -0
  104. data/doc/guides/html/files/global.css +190 -0
  105. data/doc/guides/html/files/helvetica.js +91 -0
  106. data/doc/guides/html/files/jquery.js +11 -0
  107. data/doc/guides/html/getting_started.html +454 -213
  108. data/doc/guides/html/index.html +454 -174
  109. data/doc/guides/html/installing_modules.html +454 -186
  110. data/doc/guides/html/portlets.html +451 -232
  111. data/doc/guides/html/user_guide.html +452 -270
  112. data/doc/guides/html/writing_guides.html +454 -161
  113. data/lib/cms/init.rb +2 -1
  114. data/lib/cms/version.rb +2 -2
  115. data/public/images/cms/locales/de/nav_admin.gif +0 -0
  116. data/public/images/cms/locales/de/nav_admin_h.gif +0 -0
  117. data/public/images/cms/locales/de/nav_admin_on.gif +0 -0
  118. data/public/images/cms/locales/de/nav_content_library.gif +0 -0
  119. data/public/images/cms/locales/de/nav_content_library_h.gif +0 -0
  120. data/public/images/cms/locales/de/nav_content_library_on.gif +0 -0
  121. data/public/images/cms/locales/de/nav_dash.gif +0 -0
  122. data/public/images/cms/locales/de/nav_dash_h.gif +0 -0
  123. data/public/images/cms/locales/de/nav_dash_on.gif +0 -0
  124. data/public/images/cms/locales/de/nav_sitemap.gif +0 -0
  125. data/public/images/cms/locales/de/nav_sitemap_h.gif +0 -0
  126. data/public/images/cms/locales/de/nav_sitemap_on.gif +0 -0
  127. data/public/images/cms/locales/fr/nav_admin.gif +0 -0
  128. data/public/images/cms/locales/fr/nav_admin_h.gif +0 -0
  129. data/public/images/cms/locales/fr/nav_admin_on.gif +0 -0
  130. data/public/images/cms/locales/fr/nav_content_library.gif +0 -0
  131. data/public/images/cms/locales/fr/nav_content_library_h.gif +0 -0
  132. data/public/images/cms/locales/fr/nav_content_library_on.gif +0 -0
  133. data/public/images/cms/locales/fr/nav_dash.gif +0 -0
  134. data/public/images/cms/locales/fr/nav_dash_h.gif +0 -0
  135. data/public/images/cms/locales/fr/nav_dash_on.gif +0 -0
  136. data/public/images/cms/locales/fr/nav_sitemap.gif +0 -0
  137. data/public/images/cms/locales/fr/nav_sitemap_h.gif +0 -0
  138. data/public/images/cms/locales/fr/nav_sitemap_on.gif +0 -0
  139. data/rails/init.rb +2 -2
  140. data/templates/blank.rb +1 -1
  141. data/templates/demo.rb +1 -1
  142. data/templates/module.rb +1 -1
  143. data/test/functional/cms/dynamic_views_controller_test.rb +26 -2
  144. metadata +187 -4
@@ -1,249 +1,457 @@
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>Creating your own modules</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
- }
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
+ <html class="cufon-active cufon-ready" xml:lang="en"
3
+ xmlns="http://www.w3.org/1999/xhtml" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
6
+ <meta name="keywords" content="">
7
+ <meta name="description" content="">
8
+ <link href="files/clearfix.css" media="screen,projection" rel="stylesheet" type="text/css">
9
+ <link href="files/global.css" media="screen,projection" rel="stylesheet" type="text/css">
10
+ <script src="files/jquery.js" type="text/javascript"></script>
11
+ <script src="files/cufon.js" type="text/javascript"></script>
12
+ <style type="text/css">cufon {
13
+ text-indent: 0 !important;
14
+ }
42
15
 
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>Creating your own modules</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="#getting-started">Getting Started</a><ul><li><a href="#generated-files">Generated Files</a></li></ul></li><li><a href="#creating-blocks">Creating Blocks</a><ul><li><a href="#defining-routes-for-the-module">Defining routes for the module</a></li></ul></li><li><a href="#displaying-products-in-our-site">Displaying Products in our Site</a><ul></ul></li><li><a href="#copying-files-into-projects">Copying files into projects.</a><ul></ul></li><li><a href="#conventions-when-building-your-module">Conventions When Building Your Module</a><ul></ul></li><li><a href="#testing-your-gem">Testing Your Gem</a><ul></ul></li></ol></div>
139
- </td>
140
- <td class="guides">
141
- <h2>Creating your own modules</h2>
142
- <p>This guide covers how to create and package modules for BrowserCMS. Modules are the primary way to expand the functionality of the BrowserCMS core project. After reading this guide, you should understand how to:</p>
143
- <ul>
144
- <li>Create a new module</li>
145
- <li>Add blocks and portlets</li>
146
- <li>Add new controllers</li>
147
- <li>How to modify core modules using open classes</li>
148
- <li>Package and Test your module in another <span class="caps">CMS</span> project.</li>
16
+ @media screen, projection {
17
+ cufon {
18
+ display: inline !important;
19
+ display: inline-block !important;
20
+ position: relative !important;
21
+ vertical-align: middle !important;
22
+ font-size: 1px !important;
23
+ line-height: 1px !important;
24
+ }
25
+
26
+ cufon cufontext {
27
+ display: -moz-inline-box !important;
28
+ display: inline-block !important;
29
+ width: 0 !important;
30
+ height: 0 !important;
31
+ overflow: hidden !important;
32
+ text-indent: -10000in !important;
33
+ }
34
+
35
+ cufon canvas {
36
+ position: relative !important;
37
+ }
38
+ }
39
+
40
+ @media print {
41
+ cufon {
42
+ padding: 0 !important;
43
+ }
44
+
45
+ cufon canvas {
46
+ display: none !important;
47
+ }
48
+ }</style>
49
+ <script src="files/helvetica.js" type="text/javascript"></script>
50
+ <script src="files/bcmsorg.js" type="text/javascript"></script>
51
+ <title>Table of Contents</title>
52
+ </head>
53
+ <body>
54
+
55
+ <div id="container">
56
+ <div id="header">
57
+ <h1 id="logo"><a href="http://www.staging.browsercms.org/"
58
+ title="Return to Home Page">Table of Contents</a></h1>
59
+
60
+ <div id="topnav">
61
+ <ul>
62
+ <li><a href="/">Home</a></li>
63
+ <li><a href="/demo">Demo</a></li>
64
+ <li><a href="/documentation" class="active">Documentation</a></li>
65
+ <li><a href="/extending">Extending</a></li>
66
+ <li><a href="/support">Support</a></li>
67
+ <li><a href="/blog">Blog</a></li>
68
+ <li><a href="/download">Download</a></li>
69
+ </ul>
70
+
71
+ </div>
72
+ </div>
73
+ <div id="content" class="clearfix">
74
+ <div id="subnav">
75
+ <ul class="breadcrumbs">
76
+ <li class="first first-child"><a
77
+ href="http://www.staging.browsercms.org/documentation">Documentation</a></li>
78
+ <li><a href="http://www.staging.browsercms.org/documentation/guides">Guides</a></li>
79
+ <li class="last-child">Table of Contents</li>
80
+ </ul>
81
+ </div>
82
+ <div id="sidenav_doc">
83
+ <h2 class="alt">
84
+ <cufon style="width: 58px; height: 23px;" alt="Table "
85
+ class="cufon cufon-canvas">
86
+ <canvas style="width: 77px; height: 23px;
87
+ top: 1px; left: -1px;" height="23" width="77"></canvas>
88
+ <cufontext>Table</cufontext>
89
+ </cufon>
90
+ <cufon
91
+ style="width: 25px; height: 23px;" alt="of " class="cufon cufon-canvas">
92
+ <canvas
93
+ style="width: 43px; height: 23px; top: 1px; left: -1px;" height="23"
94
+ width="43"></canvas>
95
+ <cufontext>of</cufontext>
96
+ </cufon>
97
+ <cufon
98
+ style="width: 84px; height: 23px;" alt="Contents" class="cufon
99
+ cufon-canvas">
100
+ <canvas style="width: 98px; height: 23px; top: 1px; left:
101
+ -1px;" height="23" width="98"></canvas>
102
+ <cufontext>Contents</cufontext>
103
+ </cufon>
104
+ </h2>
105
+ <div id="menu" class="menu">
106
+ <ul>
107
+ <li id="section_6" class="depth-1 first open first-child">
108
+ <a
109
+ href="http://www.staging.browsercms.org/documentation/guides/table-of-contents/installing-browsercms">Installing
110
+ BrowserCMS</a>
111
+ <ul>
112
+ <li id="page_11" class="depth-2 first last last-child
113
+ first-child">
114
+ <a
115
+ href="http://www.staging.browsercms.org/documentation/guides/table-of-contents/installing-browsercms/things-you-need-first">Things
116
+ you need first</a>
117
+ </li>
118
+ </ul>
119
+ </li>
120
+ <li id="section_7" class="depth-1 last open final">
121
+ <a
122
+ href="http://www.staging.browsercms.org/documentation/guides/table-of-contents/trying-out-browsercms">Trying
123
+ Out BrowserCMS</a>
124
+ <ul>
125
+ <li id="page_14" class="depth-2 first first-child">
126
+ <a
127
+ href="http://www.staging.browsercms.org/documentation/guides/table-of-contents/trying-out-browsercms/with-sqlite3">With
128
+ SQLite3</a>
129
+ </li>
130
+ <li id="page_15" class="depth-2">
131
+ <a
132
+ href="http://www.staging.browsercms.org/documentation/guides/table-of-contents/trying-out-browsercms/with-mysql">With
133
+ MySQL</a>
134
+ </li>
135
+ <li id="page_16" class="depth-2 last last-child final">
136
+ <a
137
+ href="http://www.staging.browsercms.org/documentation/guides/table-of-contents/trying-out-browsercms/using-your-site">Using
138
+ your Site</a>
139
+ </li>
140
+ </ul>
141
+ </li>
142
+ </ul>
143
+ </div>
144
+
145
+ </div>
146
+ <div id="main_doc">
147
+
148
+ <h2>
149
+ <cufon style="width: 73px; height: 23px;" alt="Header "
150
+ class="cufon cufon-canvas">
151
+ <canvas style="width: 92px; height: 23px;
152
+ top: 1px; left: -1px;" height="23" width="92"></canvas>
153
+ <cufontext>Header
154
+ </cufontext>
155
+ </cufon>
156
+ <cufon style="width: 12px; height: 23px;" alt="2"
157
+ class="cufon cufon-canvas">
158
+ <canvas style="width: 25px; height: 23px;
159
+ top: 1px; left: -1px;" height="23" width="25"></canvas>
160
+ <cufontext>2</cufontext>
161
+ </cufon>
162
+ </h2>
163
+ <h2 class="alt">
164
+ <cufon style="width: 73px; height: 23px;" alt="Header "
165
+ class="cufon cufon-canvas">
166
+ <canvas style="width: 92px; height: 23px;
167
+ top: 1px; left: -1px;" height="23" width="92"></canvas>
168
+ <cufontext>Header
169
+ </cufontext>
170
+ </cufon>
171
+ <cufon style="width: 18px; height: 23px;" alt="2 "
172
+ class="cufon cufon-canvas">
173
+ <canvas style="width: 36px; height: 23px;
174
+ top: 1px; left: -1px;" height="23" width="36"></canvas>
175
+ <cufontext>2</cufontext>
176
+ </cufon>
177
+ <cufon
178
+ style="width: 27px; height: 23px;" alt="Alt" class="cufon cufon-canvas">
179
+ <canvas
180
+ style="width: 44px; height: 23px; top: 1px; left: -1px;" height="23"
181
+ width="44"></canvas>
182
+ <cufontext>Alt</cufontext>
183
+ </cufon>
184
+ </h2>
185
+ <h2 class="brdr">
186
+ <cufon style="width: 73px; height: 23px;" alt="Header "
187
+ class="cufon cufon-canvas">
188
+ <canvas style="width: 92px; height: 23px;
189
+ top: 1px; left: -1px;" height="23" width="92"></canvas>
190
+ <cufontext>Header
191
+ </cufontext>
192
+ </cufon>
193
+ <cufon style="width: 18px; height: 23px;" alt="2 "
194
+ class="cufon cufon-canvas">
195
+ <canvas style="width: 36px; height: 23px;
196
+ top: 1px; left: -1px;" height="23" width="36"></canvas>
197
+ <cufontext>2</cufontext>
198
+ </cufon>
199
+ <cufon
200
+ style="width: 91px; height: 23px;" alt="Underline" class="cufon
201
+ cufon-canvas">
202
+ <canvas style="width: 104px; height: 23px; top: 1px; left:
203
+ -1px;" height="23" width="104"></canvas>
204
+ <cufontext>Underline</cufontext>
205
+ </cufon>
206
+ </h2>
207
+ <h3>
208
+ <cufon style="width: 51px; height: 16px;" alt="Header " class="cufon
209
+ cufon-canvas">
210
+ <canvas style="width: 64px; height: 16px; top: 0px; left:
211
+ 0px;" height="16" width="64"></canvas>
212
+ <cufontext>Header</cufontext>
213
+ </cufon>
214
+ <cufon
215
+ style="width: 8px; height: 16px;" alt="3" class="cufon cufon-canvas">
216
+ <canvas
217
+ style="width: 18px; height: 16px; top: 0px; left: 0px;" height="16"
218
+ width="18"></canvas>
219
+ <cufontext>3</cufontext>
220
+ </cufon>
221
+ </h3>
222
+ <h3 class="alt">
223
+ <cufon style="width: 51px; height: 16px;" alt="Header "
224
+ class="cufon cufon-canvas">
225
+ <canvas style="width: 64px; height: 16px;
226
+ top: 0px; left: 0px;" height="16" width="64"></canvas>
227
+ <cufontext>Header</cufontext>
228
+ </cufon>
229
+ <cufon
230
+ style="width: 12px; height: 16px;" alt="3 " class="cufon cufon-canvas">
231
+ <canvas
232
+ style="width: 25px; height: 16px; top: 0px; left: 0px;" height="16"
233
+ width="25"></canvas>
234
+ <cufontext>3</cufontext>
235
+ </cufon>
236
+ <cufon
237
+ style="width: 19px; height: 16px;" alt="Alt" class="cufon cufon-canvas">
238
+ <canvas
239
+ style="width: 31px; height: 16px; top: 0px; left: 0px;" height="16"
240
+ width="31"></canvas>
241
+ <cufontext>Alt</cufontext>
242
+ </cufon>
243
+ </h3>
244
+ <h3 class="brdr">
245
+ <cufon style="width: 51px; height: 16px;" alt="Header "
246
+ class="cufon cufon-canvas">
247
+ <canvas style="width: 64px; height: 16px;
248
+ top: 0px; left: 0px;" height="16" width="64"></canvas>
249
+ <cufontext>Header</cufontext>
250
+ </cufon>
251
+ <cufon
252
+ style="width: 12px; height: 16px;" alt="3 " class="cufon cufon-canvas">
253
+ <canvas
254
+ style="width: 25px; height: 16px; top: 0px; left: 0px;" height="16"
255
+ width="25"></canvas>
256
+ <cufontext>3</cufontext>
257
+ </cufon>
258
+ <cufon
259
+ style="width: 63px; height: 16px;" alt="Underline" class="cufon
260
+ cufon-canvas">
261
+ <canvas style="width: 73px; height: 16px; top: 0px; left:
262
+ 0px;" height="16" width="73"></canvas>
263
+ <cufontext>Underline</cufontext>
264
+ </cufon>
265
+ </h3>
266
+ <h4>
267
+ <cufon style="width: 45px; height: 14px;" alt="Header " class="cufon
268
+ cufon-canvas">
269
+ <canvas style="width: 56px; height: 14px; top: 0px; left:
270
+ 0px;" height="14" width="56"></canvas>
271
+ <cufontext>Header</cufontext>
272
+ </cufon>
273
+ <cufon
274
+ style="width: 7px; height: 14px;" alt="4" class="cufon cufon-canvas">
275
+ <canvas
276
+ style="width: 15px; height: 14px; top: 0px; left: 0px;" height="14"
277
+ width="15"></canvas>
278
+ <cufontext>4</cufontext>
279
+ </cufon>
280
+ </h4>
281
+ <h4 class="alt">
282
+ <cufon style="width: 45px; height: 14px;" alt="Header "
283
+ class="cufon cufon-canvas">
284
+ <canvas style="width: 56px; height: 14px;
285
+ top: 0px; left: 0px;" height="14" width="56"></canvas>
286
+ <cufontext>Header</cufontext>
287
+ </cufon>
288
+ <cufon
289
+ style="width: 11px; height: 14px;" alt="4 " class="cufon cufon-canvas">
290
+ <canvas
291
+ style="width: 22px; height: 14px; top: 0px; left: 0px;" height="14"
292
+ width="22"></canvas>
293
+ <cufontext>4</cufontext>
294
+ </cufon>
295
+ <cufon
296
+ style="width: 16px; height: 14px;" alt="Alt" class="cufon cufon-canvas">
297
+ <canvas
298
+ style="width: 27px; height: 14px; top: 0px; left: 0px;" height="14"
299
+ width="27"></canvas>
300
+ <cufontext>Alt</cufontext>
301
+ </cufon>
302
+ </h4>
303
+ <h4 class="brdr">
304
+ <cufon style="width: 45px; height: 14px;" alt="Header "
305
+ class="cufon cufon-canvas">
306
+ <canvas style="width: 56px; height: 14px;
307
+ top: 0px; left: 0px;" height="14" width="56"></canvas>
308
+ <cufontext>Header</cufontext>
309
+ </cufon>
310
+ <cufon
311
+ style="width: 11px; height: 14px;" alt="4 " class="cufon cufon-canvas">
312
+ <canvas
313
+ style="width: 22px; height: 14px; top: 0px; left: 0px;" height="14"
314
+ width="22"></canvas>
315
+ <cufontext>4</cufontext>
316
+ </cufon>
317
+ <cufon
318
+ style="width: 55px; height: 14px;" alt="Underline" class="cufon
319
+ cufon-canvas">
320
+ <canvas style="width: 64px; height: 14px; top: 0px; left:
321
+ 0px;" height="14" width="64"></canvas>
322
+ <cufontext>Underline</cufontext>
323
+ </cufon>
324
+ </h4>
325
+ <h5>
326
+ <cufon style="width: 35px; height: 11px;" alt="Header " class="cufon
327
+ cufon-canvas">
328
+ <canvas style="width: 44px; height: 11px; top: 0px; left:
329
+ 0px;" height="11" width="44"></canvas>
330
+ <cufontext>Header</cufontext>
331
+ </cufon>
332
+ <cufon
333
+ style="width: 6px; height: 11px;" alt="5" class="cufon cufon-canvas">
334
+ <canvas
335
+ style="width: 12px; height: 11px; top: 0px; left: 0px;" height="11"
336
+ width="12"></canvas>
337
+ <cufontext>5</cufontext>
338
+ </cufon>
339
+ </h5>
340
+ <h5 class="alt">
341
+ <cufon style="width: 35px; height: 11px;" alt="Header "
342
+ class="cufon cufon-canvas">
343
+ <canvas style="width: 44px; height: 11px;
344
+ top: 0px; left: 0px;" height="11" width="44"></canvas>
345
+ <cufontext>Header</cufontext>
346
+ </cufon>
347
+ <cufon
348
+ style="width: 9px; height: 11px;" alt="5 " class="cufon cufon-canvas">
349
+ <canvas
350
+ style="width: 18px; height: 11px; top: 0px; left: 0px;" height="11"
351
+ width="18"></canvas>
352
+ <cufontext>5</cufontext>
353
+ </cufon>
354
+ <cufon
355
+ style="width: 13px; height: 11px;" alt="Alt" class="cufon cufon-canvas">
356
+ <canvas
357
+ style="width: 21px; height: 11px; top: 0px; left: 0px;" height="11"
358
+ width="21"></canvas>
359
+ <cufontext>Alt</cufontext>
360
+ </cufon>
361
+ </h5>
362
+ <h5 class="brdr">
363
+ <cufon style="width: 35px; height: 11px;" alt="Header "
364
+ class="cufon cufon-canvas">
365
+ <canvas style="width: 44px; height: 11px;
366
+ top: 0px; left: 0px;" height="11" width="44"></canvas>
367
+ <cufontext>Header</cufontext>
368
+ </cufon>
369
+ <cufon
370
+ style="width: 9px; height: 11px;" alt="5 " class="cufon cufon-canvas">
371
+ <canvas
372
+ style="width: 18px; height: 11px; top: 0px; left: 0px;" height="11"
373
+ width="18"></canvas>
374
+ <cufontext>5</cufontext>
375
+ </cufon>
376
+ <cufon
377
+ style="width: 44px; height: 11px;" alt="Underline" class="cufon
378
+ cufon-canvas">
379
+ <canvas style="width: 50px; height: 11px; top: 0px; left:
380
+ 0px;" height="11" width="50"></canvas>
381
+ <cufontext>Underline</cufontext>
382
+ </cufon>
383
+ </h5>
384
+ <p>
385
+ <code>I am code<br>
386
+ I can expand as needed<br>
387
+ with my content<br>
388
+ </code></p>
389
+
390
+ <p>
391
+ <code class="mono">I am monotone code<br>
392
+ I can expand too<br>
393
+ </code></p>
394
+
395
+ <div class="info">
396
+ I am info<br>
397
+ again, can expand with content<br>
398
+ as I grow
399
+ </div>
400
+ <div class="warn">
401
+ I am warning<br>
402
+ repetition is nice when it <br>
403
+ comes to demonstrating expansion<br>
404
+ of elements
405
+ </div>
406
+ <ul class="list">
407
+ <li class="first-child">
408
+ list item 1
409
+ </li>
410
+ <li class="last-child">
411
+ list item 2
412
+ </li>
149
413
  </ul>
150
- <p>This guide is for BrowserCMS <strong>3.1</strong>. Some code shown here may not work with older versions of BrowserCMS.</p>
151
- <h3 id="getting-started">1 Getting Started</h3>
152
- <p>The guide is going to walk how a new module can be created from scratch. The goal for our sample module will be to add some Pet Store functionality to BrowserCMS, and allow editors to create new products and users to browse a product catalog. This module will be built to show off some of the most common techniques used to add dynamic behavior to BrowserCMS projects.</p>
153
- <p>To start a new module, run the following command:</p>
154
- <div class="code_container"><code class="html">$ bcms bcms_pet_store -m module</code></div>
155
- <p>This will create a browsercms project, which will be structured to help test your module as its being built. The <tt>-m module</tt> flag will a project design to be packaged as gem for reuse. Note that the name of any module must start with <tt>bcms_</tt> or the files won&#8217;t be generated correctly.</p>
156
- <h4 id="generated-files">1.1 Generated Files</h4>
157
- <p>After the project has been created, there are a number of files which are created. Here&#8217;s a brief list of the notable files and their purpose.</p>
158
- <table>
159
- <tr>
160
- <th>File </th>
161
- <th>Purpose </th>
162
- </tr>
163
- <tr>
164
- <td> .gitignore </td>
165
- <td> Contains a list of files which will not be checked into git </td>
166
- </tr>
167
- <tr>
168
- <td> bcms_pet_store.gemspec</td>
169
- <td> An initial gemspec to package the module as a gem. </td>
170
- </tr>
171
- <tr>
172
- <td> config/initializers/init_module.rb </td>
173
- <td> Called by BrowserCMS startup to load the module&#8217;s files. (You shouldn&#8217;t need to modify this) </td>
174
- </tr>
175
- <tr>
176
- <td> lib/bcms_pet_store.rb </td>
177
- <td> Used to require files not in the app/ loadpath. You may need to update this if you add new files under lib. </td>
178
- </tr>
179
- <tr>
180
- <td> public/bcms/bcms_petstore/ </td>
181
- <td> A directory for public files which should be copied into projects that use this module. </td>
182
- </tr>
183
- <tr>
184
- <td> lib/bcms_pet_store/routes.rb </td>
185
- <td> A place to define routes for this module, like content blocks. These routes will be included in projects that use this gem. </td>
186
- </tr>
187
- <tr>
188
- <td> rails/init.rb </td>
189
- <td> Add the gem root to the Rails load path, including determining which files will be copied from the gem into projects .</td>
190
- </tr>
191
- </table>
192
- <p>Note the gemspec, license (<span class="caps">LGPL</span>) and copywrite files specific to BrowserMedia, therefore you will likely want to edit these later to reflect your own purposes.</p>
193
- <h3 id="creating-blocks">2 Creating Blocks</h3>
194
- <p>One of the most common reason to creating a module is to define one or more Content blocks that can be added to projects. For our Pet Store example, we will create a Product block which will represent a purchasable good in our Store. Run the following command inside the project.</p>
195
- <div class="code_container"><code class="html">$ script/generate content_block product name:string price:integer description:html</code></div>
196
- <p>This is the exact same generator used to create content blocks for any BrowserCMS project. You can run <tt>rake db:migrate</tt> and see this block in the <span class="caps">CMS</span> Admin UI.</p>
197
- <h4 id="defining-routes-for-the-module">2.1 Defining routes for the module</h4>
198
- <p>Each content block will have its own routes for the Admin UI, which the generator will place into the <tt>config/routes.rb</tt>. This works fine for a BrowserCMS project, but not as a module as the <tt>config/routes.rb</tt> file won&#8217;t be packaged in the gem. To fix this, we need to move the route from the <tt>config/routes.rb</tt> to the <tt>lib/bcms_pet_store/routes.rb</tt>. Open the latter file and alter to look like this:</p>
199
- <div class="code_container"><code class="ruby">module Cms::Routes
200
- def routes_for_bcms_pet_store
201
- namespace(:cms) do |cms|
202
- cms.content_blocks :products
203
- end
204
- end
205
- end</code></div>
206
- <p>Then edit the +config/routes.rb file to look like this:</p>
207
- <div class="code_container"><code class="ruby">ActionController::Routing::Routes.draw do |map|
208
- map.routes_for_bcms_pet_store
209
- map.routes_for_browser_cms
210
- end</code></div>
211
- <p>By doing this, we are defining our routes in a reusuable way, both for the gem as well as the bcms_pet_store project for testing. All routes that you want to make available to projects should be defined in the <tt>lib/bcms_pet_store/routes.rb</tt> file, which developers will add to their routes by calling <tt>map.routes_for_bcms_pet_store</tt>.</p>
212
- <p>Restart your server and verify that you see that the routes still work.</p>
213
- <h3 id="displaying-products-in-our-site">3 Displaying Products in our Site</h3>
214
- <p>Now that we have our product data, we can use the Admin UI to create some sample product data. But how do we display our products to our site visitors. In a typical Rails project, you might create a controller that looks up the products and shows them in a view. However, in a BrowserCMS project we probably want to take advantage of displaying products on <span class="caps">CMS</span> page which can be styled by our <span class="caps">CMS</span> editors.</p>
215
- <p>To do this, we need to use portlets.</p>
216
- <h3 id="copying-files-into-projects">4 Copying files into projects.</h3>
217
- <ul>
218
- <li><code>rails/init.rb</code></li>
414
+ <ul class="disc">
415
+ <li class="first-child">
416
+ disc list item 1
417
+ </li>
418
+ <li class="last-child">
419
+ disc list item 2
420
+ </li>
219
421
  </ul>
220
- <blockquote>
221
- <p>Adds the gem root to the rails paths, adds all migration files to the list of files that will be copied into any application using the module when <code>script/generate browser_cms</code> is run, and adds all files in <code>public/bcms/bcms_[module name]/</code> to the list of files that will be copied into any application using the module when <code>script/generate browser_cms</code> is run.</p>
222
- </blockquote>
223
- <h3 id="conventions-when-building-your-module">5 Conventions When Building Your Module</h3>
224
- <p>Build your module as if you were building a rails application that does whatever you want.</p>
225
- <p>That said, there are some conventions that tend to make things easier.</p>
226
- <p>First, place any files that are used as configuration files for public assects (for example, the fckeditor) in the <code>public/bcms_config/[module_name]</code> directory and have the gem only copy them if they are not already there. For example you can add code like the following to the <code>rails/init.rb</code> file.</p>
227
- <div class="code_container"><code class="ruby">unless File.exists?(&quot;#{RAILS_ROOT}/public/bcms_config/fckeditor/fckstyles.xml&quot;)
228
- Cms.add_generator_paths gem_root, &quot;public/bcms_config/fckeditor/fckstyles.xml&quot;
229
- end</code></div>
230
- <p>This will make the required configuration file available to the fckeditor, but it won&#8217;t overwrite it (or even ask you if you want to overwrite it) every time you run <code>script/generate browser_cms</code> for your application.</p>
231
- <h3 id="testing-your-gem">6 Testing Your Gem</h3>
232
- <p>We strongly encourage the creation of unit, functional, and integration tests as part of your module.</p>
233
- <p>We also suggest that you test your gem against a BrowserCMS application. To do this, first run</p>
234
- <p><code>bcms module_tester -m demo</code></p>
235
- <p>wherever (I use <code>/var/tmp</code>). Edit the <code>config/environment.rb</code> file to include the line</p>
236
- <p><code>gem.config 'bcms_[module name]'</code></p>
237
- <p>then run the app locally and make sure your module works as expected.</p>
238
- </td>
239
- </tr>
240
- </table>
241
- </div>
242
- </div>
243
- <br clear="all"/>
244
- <div class="bottom_cap"></div>
245
- </div>
246
- </div>
247
- </body>
248
- </html>
422
+ <ul class="flat-list">
423
+ <li class="first-child">
424
+ flat-list item 1
425
+ </li>
426
+ <li class="last-child">
427
+ flat-list item 2
428
+ </li>
429
+ </ul>
430
+ <p class="clearfix">
431
+ clearing paragraph block (has margins)</p>
432
+
433
+ <div class="clearfix">
434
+ cleearing regular block (no margins)
435
+ </div>
436
+
249
437
 
438
+ </div>
439
+ </div>
440
+ <div id="footer">
441
+ <ul>
442
+ <li class="first-child"><a href="">BrowserMedia Home</a></li>
443
+ <li><a href="">BrowserCMS Home</a></li>
444
+ <li><a href="">Sitemap</a></li>
445
+ <li class="last-child"><a href="">Contact Us</a></li>
446
+ </ul>
447
+ <p class="copynotice">© 1998-2010 BrowserMedia, LLC. All Rights
448
+ Reserved.</p>
449
+ </div>
450
+ </div>
451
+ <script type="text/javascript">
452
+ //<![CDATA[
453
+ bcmsOrg.init();
454
+ //]]>
455
+ </script>
456
+ </body>
457
+ </html>