typo 4.1 → 4.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (251) hide show
  1. data/Rakefile +1 -1
  2. data/TODO-4.2 +14 -0
  3. data/TODO.MULTIUSERS +45 -0
  4. data/app/controllers/admin/base_controller.rb +18 -0
  5. data/app/controllers/admin/general_controller.rb +14 -0
  6. data/app/controllers/application.rb +2 -1
  7. data/app/controllers/articles_controller.rb +18 -21
  8. data/app/helpers/admin/base_helper.rb +4 -4
  9. data/app/helpers/admin/feedback_helper.rb +3 -3
  10. data/app/helpers/application_helper.rb +2 -6
  11. data/app/helpers/sidebar_helper.rb +2 -2
  12. data/app/models/blog.rb +9 -1
  13. data/app/models/category.rb +9 -9
  14. data/app/models/comment.rb +1 -1
  15. data/app/models/content_state/presumed_ham.rb +2 -2
  16. data/app/models/resource.rb +2 -0
  17. data/app/views/admin/categories/_categories.rhtml +10 -6
  18. data/app/views/admin/categories/edit.rhtml +3 -1
  19. data/app/views/admin/comments/_form.rhtml +3 -3
  20. data/app/views/admin/comments/list.rhtml +7 -5
  21. data/app/views/admin/comments/new.rhtml +3 -1
  22. data/app/views/admin/comments/show.rhtml +3 -1
  23. data/app/views/admin/content/_articles.rhtml +1 -1
  24. data/app/views/admin/content/_form.rhtml +4 -2
  25. data/app/views/admin/content/new.rhtml +1 -0
  26. data/app/views/admin/content/preview.rhtml +8 -8
  27. data/app/views/admin/feedback/_item.rhtml +3 -1
  28. data/app/views/admin/feedback/list.rhtml +4 -4
  29. data/app/views/admin/general/index.rhtml +14 -1
  30. data/app/views/admin/pages/_form.rhtml +1 -1
  31. data/app/views/admin/pages/destroy.rhtml +1 -1
  32. data/app/views/admin/pages/new.rhtml +1 -0
  33. data/app/views/admin/shared/_edit.rhtml +2 -2
  34. data/app/views/layouts/administration.rhtml +5 -2
  35. data/app/views/layouts/minimal.rhtml +134 -2
  36. data/config/boot.rb +1 -1
  37. data/config/environment.rb +11 -3
  38. data/config/environments/test.rb +0 -7
  39. data/config/routes.rb +3 -0
  40. data/db/migrate/004_add_sidebars.rb +21 -3
  41. data/db/migrate/056_create_notifications.rb +1 -1
  42. data/db/migrate/062_add_sitealizer_plugin.rb +18 -0
  43. data/db/schema.mysql-v3.sql +217 -0
  44. data/db/schema.mysql.sql +31 -5
  45. data/db/schema.postgresql.sql +31 -6
  46. data/db/schema.rb +17 -7
  47. data/db/schema.sqlite.sql +31 -6
  48. data/db/schema.sqlserver.sql +32 -6
  49. data/db/schema_version +1 -1
  50. data/lang/de_DE.rb +493 -0
  51. data/lang/fr_FR.rb +28 -4
  52. data/lang/ro_RO.rb +554 -0
  53. data/lib/tasks/release.rake +7 -7
  54. data/lib/typo_version.rb +1 -1
  55. data/public/images/sitealizer/bar.gif +0 -0
  56. data/public/images/sitealizer/uv.png +0 -0
  57. data/public/images/sitealizer/vh.png +0 -0
  58. data/public/javascripts/tiny_mce/blank.htm +9 -0
  59. data/public/javascripts/tiny_mce/langs/en.js +41 -0
  60. data/public/javascripts/tiny_mce/license.txt +504 -0
  61. data/public/javascripts/tiny_mce/themes/advanced/about.htm +52 -0
  62. data/public/javascripts/tiny_mce/themes/advanced/anchor.htm +33 -0
  63. data/public/javascripts/tiny_mce/themes/advanced/charmap.htm +53 -0
  64. data/public/javascripts/tiny_mce/themes/advanced/color_picker.htm +13 -0
  65. data/public/javascripts/tiny_mce/themes/advanced/css/editor_content.css +58 -0
  66. data/public/javascripts/tiny_mce/themes/advanced/css/editor_popup.css +331 -0
  67. data/public/javascripts/tiny_mce/themes/advanced/css/editor_ui.css +97 -0
  68. data/public/javascripts/tiny_mce/themes/advanced/docs/en/about.htm +31 -0
  69. data/public/javascripts/tiny_mce/themes/advanced/docs/en/common_buttons.htm +162 -0
  70. data/public/javascripts/tiny_mce/themes/advanced/docs/en/create_accessible_content.htm +45 -0
  71. data/public/javascripts/tiny_mce/themes/advanced/docs/en/images/insert_anchor_window.gif +0 -0
  72. data/public/javascripts/tiny_mce/themes/advanced/docs/en/images/insert_image_window.gif +0 -0
  73. data/public/javascripts/tiny_mce/themes/advanced/docs/en/images/insert_link_window.gif +0 -0
  74. data/public/javascripts/tiny_mce/themes/advanced/docs/en/images/insert_table_window.gif +0 -0
  75. data/public/javascripts/tiny_mce/themes/advanced/docs/en/index.htm +27 -0
  76. data/public/javascripts/tiny_mce/themes/advanced/docs/en/insert_anchor_button.htm +32 -0
  77. data/public/javascripts/tiny_mce/themes/advanced/docs/en/insert_image_button.htm +65 -0
  78. data/public/javascripts/tiny_mce/themes/advanced/docs/en/insert_link_button.htm +33 -0
  79. data/public/javascripts/tiny_mce/themes/advanced/docs/en/insert_table_button.htm +71 -0
  80. data/public/javascripts/tiny_mce/themes/advanced/docs/en/style.css +28 -0
  81. data/public/javascripts/tiny_mce/themes/advanced/editor_template.js +1 -0
  82. data/public/javascripts/tiny_mce/themes/advanced/editor_template_src.js +1534 -0
  83. data/public/javascripts/tiny_mce/themes/advanced/image.htm +100 -0
  84. data/public/javascripts/tiny_mce/themes/advanced/images/anchor.gif +0 -0
  85. data/public/javascripts/tiny_mce/themes/advanced/images/anchor_symbol.gif +0 -0
  86. data/public/javascripts/tiny_mce/themes/advanced/images/backcolor.gif +0 -0
  87. data/public/javascripts/tiny_mce/themes/advanced/images/bold.gif +0 -0
  88. data/public/javascripts/tiny_mce/themes/advanced/images/bold_de_se.gif +0 -0
  89. data/public/javascripts/tiny_mce/themes/advanced/images/bold_es.gif +0 -0
  90. data/public/javascripts/tiny_mce/themes/advanced/images/bold_fr.gif +0 -0
  91. data/public/javascripts/tiny_mce/themes/advanced/images/bold_ru.gif +0 -0
  92. data/public/javascripts/tiny_mce/themes/advanced/images/bold_tw.gif +0 -0
  93. data/public/javascripts/tiny_mce/themes/advanced/images/browse.gif +0 -0
  94. data/public/javascripts/tiny_mce/themes/advanced/images/bullist.gif +0 -0
  95. data/public/javascripts/tiny_mce/themes/advanced/images/button_menu.gif +0 -0
  96. data/public/javascripts/tiny_mce/themes/advanced/images/buttons.gif +0 -0
  97. data/public/javascripts/tiny_mce/themes/advanced/images/cancel_button_bg.gif +0 -0
  98. data/public/javascripts/tiny_mce/themes/advanced/images/charmap.gif +0 -0
  99. data/public/javascripts/tiny_mce/themes/advanced/images/cleanup.gif +0 -0
  100. data/public/javascripts/tiny_mce/themes/advanced/images/close.gif +0 -0
  101. data/public/javascripts/tiny_mce/themes/advanced/images/code.gif +0 -0
  102. data/public/javascripts/tiny_mce/themes/advanced/images/color.gif +0 -0
  103. data/public/javascripts/tiny_mce/themes/advanced/images/copy.gif +0 -0
  104. data/public/javascripts/tiny_mce/themes/advanced/images/custom_1.gif +0 -0
  105. data/public/javascripts/tiny_mce/themes/advanced/images/cut.gif +0 -0
  106. data/public/javascripts/tiny_mce/themes/advanced/images/forecolor.gif +0 -0
  107. data/public/javascripts/tiny_mce/themes/advanced/images/help.gif +0 -0
  108. data/public/javascripts/tiny_mce/themes/advanced/images/hr.gif +0 -0
  109. data/public/javascripts/tiny_mce/themes/advanced/images/image.gif +0 -0
  110. data/public/javascripts/tiny_mce/themes/advanced/images/indent.gif +0 -0
  111. data/public/javascripts/tiny_mce/themes/advanced/images/insert_button_bg.gif +0 -0
  112. data/public/javascripts/tiny_mce/themes/advanced/images/italic.gif +0 -0
  113. data/public/javascripts/tiny_mce/themes/advanced/images/italic_de_se.gif +0 -0
  114. data/public/javascripts/tiny_mce/themes/advanced/images/italic_es.gif +0 -0
  115. data/public/javascripts/tiny_mce/themes/advanced/images/italic_ru.gif +0 -0
  116. data/public/javascripts/tiny_mce/themes/advanced/images/italic_tw.gif +0 -0
  117. data/public/javascripts/tiny_mce/themes/advanced/images/justifycenter.gif +0 -0
  118. data/public/javascripts/tiny_mce/themes/advanced/images/justifyfull.gif +0 -0
  119. data/public/javascripts/tiny_mce/themes/advanced/images/justifyleft.gif +0 -0
  120. data/public/javascripts/tiny_mce/themes/advanced/images/justifyright.gif +0 -0
  121. data/public/javascripts/tiny_mce/themes/advanced/images/link.gif +0 -0
  122. data/public/javascripts/tiny_mce/themes/advanced/images/menu_check.gif +0 -0
  123. data/public/javascripts/tiny_mce/themes/advanced/images/newdocument.gif +0 -0
  124. data/public/javascripts/tiny_mce/themes/advanced/images/numlist.gif +0 -0
  125. data/public/javascripts/tiny_mce/themes/advanced/images/opacity.png +0 -0
  126. data/public/javascripts/tiny_mce/themes/advanced/images/outdent.gif +0 -0
  127. data/public/javascripts/tiny_mce/themes/advanced/images/paste.gif +0 -0
  128. data/public/javascripts/tiny_mce/themes/advanced/images/redo.gif +0 -0
  129. data/public/javascripts/tiny_mce/themes/advanced/images/removeformat.gif +0 -0
  130. data/public/javascripts/tiny_mce/themes/advanced/images/separator.gif +0 -0
  131. data/public/javascripts/tiny_mce/themes/advanced/images/spacer.gif +0 -0
  132. data/public/javascripts/tiny_mce/themes/advanced/images/statusbar_resize.gif +0 -0
  133. data/public/javascripts/tiny_mce/themes/advanced/images/strikethrough.gif +0 -0
  134. data/public/javascripts/tiny_mce/themes/advanced/images/sub.gif +0 -0
  135. data/public/javascripts/tiny_mce/themes/advanced/images/sup.gif +0 -0
  136. data/public/javascripts/tiny_mce/themes/advanced/images/underline.gif +0 -0
  137. data/public/javascripts/tiny_mce/themes/advanced/images/underline_es.gif +0 -0
  138. data/public/javascripts/tiny_mce/themes/advanced/images/underline_fr.gif +0 -0
  139. data/public/javascripts/tiny_mce/themes/advanced/images/underline_ru.gif +0 -0
  140. data/public/javascripts/tiny_mce/themes/advanced/images/underline_tw.gif +0 -0
  141. data/public/javascripts/tiny_mce/themes/advanced/images/undo.gif +0 -0
  142. data/public/javascripts/tiny_mce/themes/advanced/images/unlink.gif +0 -0
  143. data/public/javascripts/tiny_mce/themes/advanced/images/visualaid.gif +0 -0
  144. data/public/javascripts/tiny_mce/themes/advanced/images/xp/tab_bg.gif +0 -0
  145. data/public/javascripts/tiny_mce/themes/advanced/images/xp/tab_end.gif +0 -0
  146. data/public/javascripts/tiny_mce/themes/advanced/images/xp/tab_sel_bg.gif +0 -0
  147. data/public/javascripts/tiny_mce/themes/advanced/images/xp/tab_sel_end.gif +0 -0
  148. data/public/javascripts/tiny_mce/themes/advanced/images/xp/tabs_bg.gif +0 -0
  149. data/public/javascripts/tiny_mce/themes/advanced/jscripts/about.js +75 -0
  150. data/public/javascripts/tiny_mce/themes/advanced/jscripts/anchor.js +74 -0
  151. data/public/javascripts/tiny_mce/themes/advanced/jscripts/charmap.js +326 -0
  152. data/public/javascripts/tiny_mce/themes/advanced/jscripts/color_picker.js +108 -0
  153. data/public/javascripts/tiny_mce/themes/advanced/jscripts/image.js +81 -0
  154. data/public/javascripts/tiny_mce/themes/advanced/jscripts/link.js +70 -0
  155. data/public/javascripts/tiny_mce/themes/advanced/jscripts/source_editor.js +60 -0
  156. data/public/javascripts/tiny_mce/themes/advanced/langs/en.js +82 -0
  157. data/public/javascripts/tiny_mce/themes/advanced/link.htm +100 -0
  158. data/public/javascripts/tiny_mce/themes/advanced/source_editor.htm +32 -0
  159. data/public/javascripts/tiny_mce/tiny_mce.js +1 -0
  160. data/public/javascripts/tiny_mce/tiny_mce_popup.js +288 -0
  161. data/public/javascripts/tiny_mce/tiny_mce_src.js +7284 -0
  162. data/public/javascripts/tiny_mce/utils/editable_selects.js +61 -0
  163. data/public/javascripts/tiny_mce/utils/form_utils.js +210 -0
  164. data/public/javascripts/tiny_mce/utils/mclayer.js +210 -0
  165. data/public/javascripts/tiny_mce/utils/mctabs.js +74 -0
  166. data/public/javascripts/tiny_mce/utils/validate.js +219 -0
  167. data/public/stylesheets/administration.css +5 -1
  168. data/public/stylesheets/minimal.css +1 -0
  169. data/test/functional/admin/categories_controller_test.rb +2 -2
  170. data/test/functional/xml_controller_test.rb +72 -40
  171. data/test/test_helper.rb +1 -17
  172. data/test/unit/article_test.rb +1 -1
  173. data/test/unit/trigger_test.rb +1 -1
  174. data/themes/scribbish/views/articles/_comment.rhtml +13 -17
  175. data/themes/scribbish/views/articles/_comment_form.rhtml +7 -5
  176. data/themes/scribbish/views/articles/_comment_list.rhtml +7 -0
  177. data/themes/scribbish/views/articles/read.rhtml +1 -1
  178. data/vendor/plugins/aimpresence_sidebar/views/content.rhtml +1 -1
  179. data/vendor/plugins/archives_sidebar/views/content.rhtml +1 -1
  180. data/vendor/plugins/audioscrobbler_sidebar/MAINTAINERS +26 -0
  181. data/vendor/plugins/audioscrobbler_sidebar/MIT-LICENSE +21 -0
  182. data/vendor/plugins/audioscrobbler_sidebar/README +27 -0
  183. data/vendor/plugins/backpack_sidebar/MAINTAINERS +26 -0
  184. data/vendor/plugins/backpack_sidebar/MIT-LICENSE +21 -0
  185. data/vendor/plugins/backpack_sidebar/README +27 -0
  186. data/vendor/plugins/category_sidebar/views/content.rhtml +1 -1
  187. data/vendor/plugins/sitealizer/CHANGELOG +6 -0
  188. data/vendor/plugins/sitealizer/LICENSE +22 -0
  189. data/vendor/plugins/sitealizer/README +82 -0
  190. data/vendor/plugins/sitealizer/Rakefile +22 -0
  191. data/vendor/plugins/sitealizer/init.rb +24 -0
  192. data/vendor/plugins/sitealizer/install.rb +22 -0
  193. data/vendor/plugins/sitealizer/lib/app/assets/images/bar.gif +0 -0
  194. data/vendor/plugins/sitealizer/lib/app/assets/images/uv.png +0 -0
  195. data/vendor/plugins/sitealizer/lib/app/assets/images/vh.png +0 -0
  196. data/vendor/plugins/sitealizer/lib/app/controllers/sitealizer_controller.rb +118 -0
  197. data/vendor/plugins/sitealizer/lib/app/models/site_tracker.rb +145 -0
  198. data/vendor/plugins/sitealizer/lib/app/views/layouts/sitealizer.rhtml +66 -0
  199. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_browsers.rhtml +23 -0
  200. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_daily_stats.rhtml +67 -0
  201. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_hits_summary.rhtml +0 -0
  202. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_hosts.rhtml +21 -0
  203. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_keywords.rhtml +19 -0
  204. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_languages.rhtml +21 -0
  205. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_main_frame.rhtml +84 -0
  206. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_monthly_hits.rhtml +67 -0
  207. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_page_urls.rhtml +20 -0
  208. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_platforms.rhtml +21 -0
  209. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_referers.rhtml +22 -0
  210. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_robots.rhtml +19 -0
  211. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_search_engines.rhtml +19 -0
  212. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/hourly_stats.rhtml +39 -0
  213. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/index.rhtml +8 -0
  214. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/login.rhtml +20 -0
  215. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/menu.rhtml +74 -0
  216. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/referrer_stats.rhtml +20 -0
  217. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/search_stats.rhtml +25 -0
  218. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/summary.rhtml +22 -0
  219. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/visitor_info.rhtml +30 -0
  220. data/vendor/plugins/sitealizer/lib/config.yml +18 -0
  221. data/vendor/plugins/sitealizer/lib/sitealizer/parser.rb +347 -0
  222. data/vendor/plugins/sitealizer/lib/sitealizer.rb +78 -0
  223. data/vendor/plugins/sitealizer/lib/tasks/sitealizer.rake +36 -0
  224. data/vendor/plugins/sitealizer/test/fixtures/sitealizer.yml +89 -0
  225. data/vendor/plugins/sitealizer/test/sitealizer_controller_test.rb +208 -0
  226. data/vendor/plugins/sitealizer/test/sitealizer_parser_test.rb +169 -0
  227. data/vendor/plugins/sitealizer/test/test_helper.rb +7 -0
  228. data/vendor/plugins/tada_sidebar/MAINTAINERS +26 -0
  229. data/vendor/plugins/tada_sidebar/MIT-LICENSE +21 -0
  230. data/vendor/plugins/tada_sidebar/README +27 -0
  231. data/vendor/plugins/tag_sidebar/views/content.rhtml +1 -1
  232. data/vendor/plugins/tiny_mce/README +10 -0
  233. data/vendor/plugins/tiny_mce/Rakefile +22 -0
  234. data/vendor/plugins/tiny_mce/TODO +2 -0
  235. data/vendor/plugins/tiny_mce/changelog +1017 -0
  236. data/vendor/plugins/tiny_mce/init.rb +3 -0
  237. data/vendor/plugins/tiny_mce/install.rb +1 -0
  238. data/vendor/plugins/tiny_mce/lib/tiny_mce.rb +36 -0
  239. data/vendor/plugins/tiny_mce/lib/tiny_mce_helper.rb +48 -0
  240. data/vendor/plugins/tiny_mce/tasks/tiny_mce.rake +40 -0
  241. data/vendor/plugins/tiny_mce/test/helper_testcase.rb +38 -0
  242. data/vendor/plugins/tiny_mce/test/tiny_mce_helper_test.rb +67 -0
  243. data/vendor/plugins/tiny_mce/test/tiny_mce_test.rb +85 -0
  244. data/vendor/plugins/tiny_mce/tiny_mce_options.yml +121 -0
  245. data/vendor/plugins/xbox_sidebar/MAINTAINERS +26 -0
  246. data/vendor/plugins/xbox_sidebar/MIT-LICENSE +21 -0
  247. data/vendor/plugins/xbox_sidebar/README +27 -0
  248. data/vendor/plugins/xml_sidebar/lib/xml_sidebar.rb +1 -1
  249. data/vendor/plugins/xml_sidebar/views/content.rhtml +4 -4
  250. metadata +220 -4
  251. data/TODO-4.1 +0 -16
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
2
+
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
6
+ <meta http-equiv="description" content="Sitealizer Web Stats">
7
+ <title>Sitealizer Web Stats for <%=request.host%></title>
8
+
9
+ <style type="text/css">
10
+ <!--
11
+ body {font: 12px helvetica, verdana, arial, sans-serif; background-color: #FFFFFF; margin-top: 0; margin-bottom: 0;}
12
+ #border{border: 2px #004EC1 solid; padding: 10px;}
13
+ #title{
14
+ font-family: Georgia;
15
+ font-size:150%;
16
+ font-weight: bold;
17
+ background-color: #e4effc;
18
+ padding:5px;
19
+ color: #000;
20
+ border:1px #004EC1 solid;
21
+ }
22
+ #sub_title{
23
+ font-family: Georgia;
24
+ font-size:130%;
25
+ font-weight: bold;
26
+ padding:5px;
27
+ color: #000;
28
+ border-bottom:1px #000 solid;
29
+ }
30
+ th {
31
+ border-color: #ECECEC;
32
+ border-left-width: 0px;
33
+ border-right-width: 1px;
34
+ border-top-width: 0px;
35
+ border-bottom-width: 1px;
36
+ padding: 3px;
37
+ font-family: Georgia;
38
+ font-weight: bold;
39
+ font-size:90%;
40
+ color: #000;
41
+ background-color:#ededdc;
42
+ }
43
+ td {
44
+ border-color: #ECECEC;
45
+ border-left-width: 0px;
46
+ border-right-width: 1px;
47
+ border-top-width: 0px;
48
+ border-bottom-width: 1px;
49
+ font: 11px verdana, arial, helvetica, sans-serif;
50
+ color: #000000;
51
+ }
52
+ b { font-weight: bold; }
53
+ a { font: 11px verdana, arial, helvetica, sans-serif; }
54
+ a:link { color: #0011BB; text-decoration: none; }
55
+ a:visited { color: #0011BB; text-decoration: none; }
56
+ a:hover { color: #605040; text-decoration: underline; }
57
+ #menu { padding:5px; font-size:100%; display:block; background-color:#ededdc;}
58
+ #menu_border{border: 1px #004EC1 solid; padding: 5px;}
59
+ //-->
60
+ </style>
61
+ </head>
62
+ <%=yield%>
63
+ <p align=center style="color:#999; font-size:10px">
64
+ Created with <%=link_to 'Sitealizer', 'http://sitealizer.rubyforge.org', :target => '_blank'%>
65
+ </p>
66
+ </html>
@@ -0,0 +1,23 @@
1
+ <% max_total = @browsers.inject(0) {|m,a| a[:total].to_i > m ? a[:total].to_i : m }%>
2
+ <br><br>
3
+
4
+ <table align=center width=90% border=1 cellpadding=3>
5
+ <tr nowrap>
6
+ <th width=1>#</th>
7
+ <th width=10>Hits</th>
8
+ <th>Browser</th>
9
+ <th width=70>Version</th>
10
+ <th width=10>Percentage</th>
11
+ <th width=200></th>
12
+ </tr>
13
+ <% i=1; @browsers.each do |browser| width=((browser[:total].to_f/max_total)*200).round; width = 1 if width < 1 %>
14
+ <tr nowrap>
15
+ <td align=center><%= i %></td>
16
+ <td align=center><%= browser[:total] %></td>
17
+ <td><%= browser[:browser][:type] %></td>
18
+ <td align=left><%= browser[:browser][:version] ? browser[:browser][:version] : 'Unknown' %>&nbsp;</td>
19
+ <td align=center><%= sprintf("%000.2f",(browser[:total].to_f/@total_hits)*100) %>%</td>
20
+ <td align=left><%=image_tag 'sitealizer/bar.gif', :width => width, :height => 3%></td>
21
+ </tr>
22
+ <%i+=1; end %>
23
+ </table>
@@ -0,0 +1,67 @@
1
+ <br>
2
+ <%
3
+ unique_max_total = @daily_hits.inject(0) {|m,a| a[1].to_i > m ? a[1].to_i : m }
4
+ hits_max_total = @daily_hits.inject(0) {|m,a| a[2].to_i > m ? a[2].to_i : m }
5
+ %>
6
+ <table cellpadding=0 cellspacing=0 align=center width=98%>
7
+ <tr valign=bottom>
8
+ <td valign=top align=left width=60 nowrap>
9
+ <img align="bottom" src="/images/sitealizer/uv.png" height="10" width="4"/> Unique<br>
10
+ <img align="bottom" src="/images/sitealizer/vh.png" height="10" width="4"/> Hits
11
+ </td>
12
+ <%
13
+ @daily_hits.each do |daily_hits|
14
+ unique_height = 0
15
+ hits_height = 0
16
+ if unique_max_total > 0
17
+ unique_height = ((daily_hits[1].to_f/unique_max_total)*100).round
18
+ unique_height = 1 if unique_height < 1
19
+ end
20
+ if hits_max_total > 0
21
+ hits_height = ((daily_hits[2].to_f/hits_max_total)*100).round
22
+ hits_height = 1 if hits_height < 1
23
+ end
24
+ %>
25
+ <td>
26
+ <table>
27
+ <tr valign=bottom nowrap>
28
+ <td nowrap>
29
+ <img align="bottom" src="/images/sitealizer/uv.png" height="<%=unique_height%>" width="4"/>
30
+ <img align="bottom" src="/images/sitealizer/vh.png" height="<%=hits_height%>" width="4"/>
31
+ </td>
32
+ </tr>
33
+ <tr valign=bottom nowrap>
34
+ <td>
35
+ <%=daily_hits[0]%>
36
+ </td>
37
+ </tr>
38
+ </table>
39
+ </td>
40
+ <%end%>
41
+ </tr>
42
+ </table>
43
+
44
+ <br><br>
45
+
46
+ <table align=center width=70% border=1 cellpadding=3>
47
+ <tr align=center nowrap>
48
+ <th align=center>Day</th>
49
+ <th align=center>Hits</th>
50
+ <th align=center>Percentage</th>
51
+ <th align=center>Unique Visits</th>
52
+ </tr>
53
+ <%i=1; @daily_hits.each do |daily_hits| %>
54
+ <tr nowrap>
55
+ <td align=center><%= daily_hits[3] %></td>
56
+ <td align=center><%= daily_hits[2] %></td>
57
+ <td align=center><%= sprintf("%000.2f",(daily_hits[2].to_f/@total_hits)*100) %>%</td>
58
+ <td align=center><%= daily_hits[1] %></td>
59
+ </tr>
60
+ <% i+=1; end %>
61
+ <tr align=center nowrap bgcolor="#DDDDDD">
62
+ <td align=left><b>Totals:</td>
63
+ <td align=center><b><%=@total_hits%></b></td>
64
+ <td></td>
65
+ <td align=center><b><%=@unique_hits%></b></td>
66
+ </tr>
67
+ </table>
@@ -0,0 +1,21 @@
1
+ <% max_total = @hosts.inject(0) {|m,a| a['total'].to_i > m ? a['total'].to_i : m }%>
2
+ <br><br>
3
+
4
+ <table align=center width=90% border=1 cellpadding=3>
5
+ <tr nowrap>
6
+ <th width=1>#</th>
7
+ <th width=10>Hits</th>
8
+ <th>Hostname</th>
9
+ <th width=10>Percentage</th>
10
+ <th width=200></th>
11
+ </tr>
12
+ <% i=1; @hosts.each do |host|width=((host.total.to_f/max_total)*200).round; width = 1 if width < 1 %>
13
+ <tr nowrap>
14
+ <td><%= i %></td>
15
+ <td align=center><%= host.total %></td>
16
+ <td align=left><%= link_to host.ip, "http://cqcounter.com/whois/?query=#{host.ip}", :target=>'_blank' %></td>
17
+ <td align=center><%= sprintf("%000.2f",(host.total.to_f/@total_hits)*100) %>%</td>
18
+ <td align=left><%=image_tag 'sitealizer/bar.gif', :width => width, :height => 3%></td>
19
+ </tr>
20
+ <% i+=1; end %>
21
+ </table>
@@ -0,0 +1,19 @@
1
+ <% max_total = @keywords.inject(0) {|m,a| a[:total].to_i > m ? a[:total].to_i : m }%>
2
+ <br><br>
3
+
4
+ <table align=center width=90% border=1 cellpadding=3>
5
+ <tr nowrap>
6
+ <th width=1>#</th>
7
+ <th width=10>Hits</th>
8
+ <th>Search String</th>
9
+ <th width=175></th>
10
+ </tr>
11
+ <% i=1; @keywords.each do |keyword| width=((keyword[:total].to_f/max_total)*175).round; width = 1 if width < 1 %>
12
+ <tr nowrap>
13
+ <td align=center><%= i %></td>
14
+ <td align=center><%= keyword[:total] %></td>
15
+ <td align=left ><%= keyword[:query] %></td>
16
+ <td align=left><%=image_tag 'sitealizer/bar.gif', :width => width, :height => 3%></td>
17
+ </tr>
18
+ <% i+=1; end %>
19
+ </table>
@@ -0,0 +1,21 @@
1
+ <% max_total = @languages.inject(0) {|m,a| a['total'].to_i > m ? a['total'].to_i : m }%>
2
+ <br><br>
3
+
4
+ <table align=center width=90% border=1 cellpadding=3>
5
+ <tr nowrap>
6
+ <th width=1>#</th>
7
+ <th width=10>Hits</th>
8
+ <th>Language</th>
9
+ <th width=10>Percentage</th>
10
+ <th width=200></th>
11
+ </tr>
12
+ <% i=1; @languages.each do |lang|width=((lang.total.to_f/max_total)*200).round; width = 1 if width < 1 %>
13
+ <tr nowrap>
14
+ <td align=center><%= i %></td>
15
+ <td align=center><%= lang.total %></td>
16
+ <td align=left><%= lang.language.nil? ? 'Unknown' : Sitealizer::Parser::Language.get_name(lang.language.downcase) %></td>
17
+ <td align=center><%= sprintf("%000.2f",(lang.total.to_f/@total_hits)*100) %>%</td>
18
+ <td align=left><%=image_tag 'sitealizer/bar.gif', :width => width, :height => 3%></td>
19
+ </tr>
20
+ <% i+=1; end %>
21
+ </table>
@@ -0,0 +1,84 @@
1
+ <h1>Welcome</h1>
2
+ <a href='/sitealizer/logout' target='_top'>logout</a>
3
+
4
+ <br><br>
5
+
6
+ <%
7
+ uv_max_m = @monthly_history[:dataset].inject(0) {|m,a| a[1] > m ? a[1] : m }
8
+ hi_max_m = @monthly_history[:dataset].inject(0) {|m,a| a[2] > m ? a[2] : m }
9
+ %>
10
+ <h3>Monthly History</h3>
11
+ <table>
12
+ <tr>
13
+ <%@monthly_history[:dataset].each do |data| uv_height_m=((data[1].to_f/uv_max_m)*100).round; hi_height_m=((data[2].to_f/hi_max_m)*100).round%>
14
+ <td>
15
+ <table>
16
+ <tr>
17
+ <td>
18
+ <img align="bottom" src="/images/sitealizer/uv.png" height="<%=uv_height_m%>" width="6"/>
19
+ <img align="bottom" src="/images/sitealizer/vh.png" height="<%=hi_height_m%>" width="6"/>
20
+ </td>
21
+ </tr>
22
+ <tr>
23
+ <td>
24
+ <%=data[0]%>
25
+ </td>
26
+ </tr>
27
+ </table>
28
+ </td>
29
+ <%end%>
30
+ </tr>
31
+ </table>
32
+ <table width=500>
33
+ <tr valign=middle height=25>
34
+ <td align=center><b>Month</b></td>
35
+ <td align=center><b>Unique Visitors</b></td>
36
+ <td align=center><b>Visits</b></td>
37
+ <td align=center><b>Pages</b></td>
38
+ <td align=center><b>Hits</b></td>
39
+ </tr>
40
+ <%=@monthly_history[:html]%>
41
+ </table>
42
+
43
+
44
+ <br><br>
45
+
46
+ <%=uv_max_d = @daily_history[:dataset].inject(0) {|m,a| a[1] > m ? a[1] : m }%>
47
+ <%=hi_max_d = @daily_history[:dataset].inject(0) {|m,a| a[2] > m ? a[2] : m }%>
48
+ <h3>Daily History</h3>
49
+ <table cellpadding=2 cellspacing=1>
50
+ <tr valign=bottom>
51
+ <%@daily_history[:dataset].each do |data|%>
52
+ <%uv_height_d=((data[1].to_f/uv_max_d)*100).round%>
53
+ <%hi_height_d=((data[2].to_f/hi_max_d)*100).round%>
54
+
55
+ <td nowrap>
56
+ <table cellpadding=0 cellspacing=0 width=100%>
57
+ <tr valign=bottom>
58
+ <td nowrap>
59
+ <img align="bottom" src="/images/sitealizer/uv.png" height="<%=uv_height_d > 0 ? uv_height_d : 1%>" width="2"/>
60
+ <img align="bottom" src="/images/sitealizer/vh.png" height="<%=hi_height_d > 0 ? hi_height_d : 1%>" width="2"/>
61
+ </td>
62
+ </tr>
63
+ <tr valign=bottom>
64
+ <td>
65
+ <%=data[0]%>
66
+ </td>
67
+ </tr>
68
+ </table>
69
+ </td>
70
+ <%end%>
71
+ </tr>
72
+ </table>
73
+ <table width=500>
74
+ <tr valign=middle height=25>
75
+ <td align=center><b>Month</b></td>
76
+ <td align=center><b>Unique Visitors</b></td>
77
+ <td align=center><b>Visits</b></td>
78
+ <td align=center><b>Pages</b></td>
79
+ <td align=center><b>Hits</b></td>
80
+ </tr>
81
+ <%=@daily_history[:html]%>
82
+ </table>
83
+
84
+ <%=render :partial => 'test'%>
@@ -0,0 +1,67 @@
1
+ <br>
2
+ <%
3
+ unique_max_total = @month_hits.inject(0) {|m,a| a[1].to_i > m ? a[1].to_i : m }
4
+ hits_max_total = @month_hits.inject(0) {|m,a| a[2].to_i > m ? a[2].to_i : m }
5
+ %>
6
+ <table cellpadding=0 cellspacing=0 align=center width=65%>
7
+ <tr valign=bottom>
8
+ <td valign=top align=left width=60 nowrap>
9
+ <img align="bottom" src="/images/sitealizer/uv.png" height="10" width="4"/> Unique<br>
10
+ <img align="bottom" src="/images/sitealizer/vh.png" height="10" width="4"/> Hits
11
+ </td>
12
+ <%
13
+ @month_hits.each do |month_hits|
14
+ unique_height = 0
15
+ hits_height = 0
16
+ if unique_max_total > 0
17
+ unique_height = ((month_hits[1].to_f/unique_max_total)*100).round
18
+ unique_height = 1 if unique_height < 1
19
+ end
20
+ if hits_max_total > 0
21
+ hits_height = ((month_hits[2].to_f/hits_max_total)*100).round
22
+ hits_height = 1 if hits_height < 1
23
+ end
24
+ %>
25
+ <td>
26
+ <table>
27
+ <tr valign=bottom nowrap align=center>
28
+ <td>
29
+ <img align="bottom" src="/images/sitealizer/uv.png" height="<%=unique_height%>" width="4"/>
30
+ <img align="bottom" src="/images/sitealizer/vh.png" height="<%=hits_height%>" width="4"/>
31
+ </td>
32
+ </tr>
33
+ <tr valign=bottom nowrap align=center>
34
+ <td>
35
+ <span style="font-size:10px"><%=month_hits[0]%></span>
36
+ </td>
37
+ </tr>
38
+ </table>
39
+ </td>
40
+ <%end%>
41
+ </tr>
42
+ </table>
43
+
44
+ <br><br>
45
+
46
+ <table align=center width=70% border=1 cellpadding=3>
47
+ <tr align=center nowrap>
48
+ <th align=center>Month</th>
49
+ <th align=center>Hits</th>
50
+ <th align=center>Percentage</th>
51
+ <th align=center>Unique Visits</th>
52
+ </tr>
53
+ <%i=1; @month_hits.each do |month_hits| %>
54
+ <tr nowrap>
55
+ <td align=left><%= month_hits[0] %></td>
56
+ <td align=center><%= month_hits[2] %></td>
57
+ <td align=center><%= sprintf("%000.2f",(month_hits[2].to_f/@year_hits)*100) %>%</td>
58
+ <td align=center><%= month_hits[1] %></td>
59
+ </tr>
60
+ <% i+=1; end %>
61
+ <tr align=center nowrap bgcolor="#DDDDDD">
62
+ <td align=left><b>Totals:</td>
63
+ <td align=center><b><%=@year_hits%></b></td>
64
+ <td></td>
65
+ <td align=center><b><%=@year_uniq%></b></td>
66
+ </tr>
67
+ </table>
@@ -0,0 +1,20 @@
1
+ <% max_total = @page_urls.inject(0) {|m,a| a['total'].to_i > m ? a['total'].to_i : m }%>
2
+ <br><br>
3
+ <table align=center width=98% border=1 cellpadding=3>
4
+ <tr nowrap>
5
+ <th width=1>#</th>
6
+ <th width=30>Hits</th>
7
+ <th>Page URL</th>
8
+ <th width=30>Percentage</th>
9
+ <th width=100></th>
10
+ </tr>
11
+ <% i=1; @page_urls.each do |url| width=((url.total.to_f/max_total)*100).round; width = 1 if width < 1 %>
12
+ <tr nowrap>
13
+ <td align=center><%= i %></td>
14
+ <td align=center><%= url.total %></td>
15
+ <td align=left nowrap><%= link_to truncate(url.path, 73), url.path, {:target=>'_blank'} %></td>
16
+ <td align=center><%= sprintf("%000.2f",(url.total.to_f/@total_hits)*100) %>%</td>
17
+ <td align=left><%=image_tag 'sitealizer/bar.gif', :width => width, :height => 3%></td>
18
+ </tr>
19
+ <% i+=1; end %>
20
+ </table>
@@ -0,0 +1,21 @@
1
+ <% max_total = @platforms.inject(0) {|m,a| a[:total].to_i > m ? a[:total].to_i : m }%>
2
+ <br><br>
3
+
4
+ <table align=center width=90% border=1 cellpadding=3>
5
+ <tr nowrap>
6
+ <th width=1>#</th>
7
+ <th width=10>Hits</th>
8
+ <th>Operating System</th>
9
+ <th width=10>Percentage</th>
10
+ <th width=200></th>
11
+ </tr>
12
+ <% i=1; @platforms.each do |platform| width=((platform[:total].to_f/max_total)*200).round; width = 1 if width < 1 %>
13
+ <tr nowrap>
14
+ <td align=center><%= i %></td>
15
+ <td align=center><%= platform[:total] %></td>
16
+ <td align=left><%= platform[:name] %></td>
17
+ <td align=center><%= sprintf("%000.2f",(platform[:total].to_f/@total_hits)*100) %>%</td>
18
+ <td align=left><%=image_tag 'sitealizer/bar.gif', :width => width, :height => 3%></td>
19
+ </tr>
20
+ <% i+=1; end %>
21
+ </table>
@@ -0,0 +1,22 @@
1
+ <% max_total = @referers.inject(0) {|m,a| a['total'].to_i > m ? a['total'].to_i : m }%>
2
+ <br><br>
3
+
4
+ <table align=center width=98% border=1 cellpadding=3>
5
+ <tr nowrap>
6
+ <th width=1>#</th>
7
+ <th width=10>Hits</th>
8
+ <th>Referer</th>
9
+ <th width=10>Percentage</th>
10
+ <th width=100></th>
11
+ </tr>
12
+ <% i=1; @referers.each do |referer| width=((referer.total.to_f/max_total)*100).round; width = 1 if width <= 1 %>
13
+ <tr nowrap>
14
+ <td align=center><%= i %></td>
15
+ <td align=center><%= referer.total %></td>
16
+ <td align=left >
17
+ <%= referer.referer.nil? ? "Direct Request / Bookmarks" : link_to(truncate(referer.referer, 73), referer.referer, {:target=>'_blank'}) %></td>
18
+ <td align=center><%= sprintf("%000.2f",(referer.total.to_f/@total_hits)*100) %>%</td>
19
+ <td align=left><%=image_tag 'sitealizer/bar.gif', :width => width, :height => 3%></td>
20
+ </tr>
21
+ <% i+=1; end %>
22
+ </table>
@@ -0,0 +1,19 @@
1
+ <% max_total = @robots.inject(0) {|m,a| a[:total].to_i > m ? a[:total].to_i : m }%>
2
+ <br><br>
3
+
4
+ <table align=center width=90% border=1 cellpadding=3>
5
+ <tr nowrap>
6
+ <th width=1>#</th>
7
+ <th width=10>Hits</th>
8
+ <th>Robot/Crawler</th>
9
+ <th width=175></th>
10
+ </tr>
11
+ <% i=1; @robots.each do |robot| width=((robot[:total].to_f/max_total)*175).round; width = 1 if width < 1 %>
12
+ <tr nowrap>
13
+ <td><%= i %></td>
14
+ <td align=center><%= robot[:total] %></td>
15
+ <td align=left><%= robot[:name] %></td>
16
+ <td align=left><%=image_tag 'sitealizer/bar.gif', :width => width, :height => 3%></td>
17
+ </tr>
18
+ <% i+=1; end %>
19
+ </table>
@@ -0,0 +1,19 @@
1
+ <% max_total = @engines.inject(0) {|m,a| a[:total].to_i > m ? a[:total].to_i : m }%>
2
+ <br><br>
3
+
4
+ <table align=center width=90% border=1 cellpadding=3>
5
+ <tr align=left nowrap>
6
+ <th width=1>#</th>
7
+ <th width=10>Hits</th>
8
+ <th align=center>Domain</th>
9
+ <th width=175></th>
10
+ </tr>
11
+ <% i=1; @engines.each do |engine| width=((engine[:total].to_f/max_total)*175).round; width = 1 if width < 1 %>
12
+ <tr nowrap>
13
+ <td align=center><%= i %></td>
14
+ <td align=center><%= engine[:total] %></td>
15
+ <td align=left><%= engine[:domain] %></td>
16
+ <td align=left><%=image_tag 'sitealizer/bar.gif', :width => width, :height => 3%></td>
17
+ </tr>
18
+ <% i+=1; end %>
19
+ </table>
@@ -0,0 +1,39 @@
1
+ <div style="margin-top:12px">
2
+ <table align=center width=95% cellpadding=0>
3
+ </tr>
4
+ <td>
5
+ <div id='border'>
6
+ <div id='title'>Hourly Statistics - <%=params[:month]%>-<%=params[:year]%></div>
7
+
8
+ <% hits_max_total = @hourly_hits.inject(0) {|m,a| a[2].to_i > m ? a[2].to_i : m } %>
9
+ <br><br>
10
+ <table align=center border=1 width=70% cellpadding=3>
11
+ <tr>
12
+ <th>Hour</th>
13
+ <th>Hits</th>
14
+ <th>Percentage</th>
15
+
16
+ <th></th>
17
+ </tr>
18
+ <%
19
+ @hourly_hits.each do |hourly_hits|
20
+ width = 0
21
+ if hits_max_total > 0
22
+ width = ((hourly_hits[2].to_f/hits_max_total)*200).round
23
+ width = 1 if width < 1
24
+ end
25
+ %>
26
+ <tr>
27
+ <td align=center><%= hourly_hits[0] %></td>
28
+ <td align=center><%= hourly_hits[2] %></td>
29
+ <td align=center><%= sprintf("%000.2f",(hourly_hits[2].to_f/@total_hits)*100) %>%</td>
30
+
31
+ <td align=left><%=image_tag 'sitealizer/bar.gif', :width => width, :height => 3%></td>
32
+ </tr>
33
+ <% end %>
34
+ </table>
35
+ </div>
36
+ </td>
37
+ </tr>
38
+ </table>
39
+ </div>
@@ -0,0 +1,8 @@
1
+ <frameset cols="250,*">
2
+ <frame name="left" src="/stats/menu<%="?month=#{params[:month]}&year=#{params[:year]}" if params[:month] && params[:year]%>" noresize="noresize" frameborder="0" />
3
+ <frame name="main" src="/stats/summary<%="?month=#{params[:month]}&year=#{params[:year]}" if params[:month] && params[:year]%>" noresize="noresize" scrolling="auto" frameborder="0" />
4
+ <noframes>
5
+ <body>Your browser does not support frames.<br><br>
6
+ </body>
7
+ </noframes>
8
+ </frameset>
@@ -0,0 +1,20 @@
1
+ <div style="margin-top:20px">
2
+ <table width=300 align=center cellpadding=0 id='menu_border'>
3
+ <tr align=center>
4
+ <td>
5
+ <div id='sub_title' style="color:#004EC1">Sitealizer Login</div>
6
+
7
+ <%="<p>#{flash[:notice]}</p>" if flash[:notice]%>
8
+
9
+ <form action='/sitealizer/login' method='post'>
10
+ <p style="color:#004EC1; font-weight:bold">
11
+ Username: <%= text_field_tag :username%>
12
+ </p>
13
+ <p style="color:#004EC1; font-weight:bold">
14
+ Password: <%= password_field_tag :password%>
15
+ </p>
16
+ <%=submit_tag 'Login'%>
17
+ </form>
18
+ </td>
19
+ </tr>
20
+ </table>
@@ -0,0 +1,74 @@
1
+ <div style="margin-top:12px">
2
+ <table width=95% align=center cellpadding=0 id='menu_border'>
3
+ <tr valign=top height=50><td><div id='menu_border'>Statistics for:<br><b><%=request.host%></b></div></td></tr>
4
+ <tr>
5
+ <td>
6
+ <form action='/stats' target='_top'>
7
+ Period: <%=select_tag :month, @months%> <%=select_tag :year, @years%>
8
+ <%=submit_tag 'OK'%>
9
+ </form>
10
+ </td>
11
+ </tr>
12
+ <tr>
13
+ <td>
14
+ <span id='menu'>
15
+ <%if params[:year] && params[:month]%>
16
+ <%= link_to "[Summary]",
17
+ "/stats/summary?month=#{params[:month]}&year=#{params[:year]}",
18
+ :target => 'main'%>
19
+ <%else%>
20
+ <%= link_to "[Summary]", "/stats/summary", :target => 'main'%>
21
+ <%end%>
22
+ </span><br>
23
+
24
+ <span id='menu'>
25
+ <%if params[:year] && params[:month]%>
26
+ <%= link_to "[Hourly Stats]",
27
+ "/stats/hourly_stats?month=#{params[:month]}&year=#{params[:year]}",
28
+ :target => 'main'%>
29
+ <%else%>
30
+ <%= link_to "[Hourly Stats]", "/stats/hourly_stats", :target => 'main'%>
31
+ <%end%>
32
+ </span><br>
33
+
34
+ <span id='menu'>
35
+ <%if params[:year] && params[:month]%>
36
+ <%= link_to "[Referrer Stats]",
37
+ "/stats/referrer_stats?month=#{params[:month]}&year=#{params[:year]}",
38
+ :target => 'main'%>
39
+ <%else%>
40
+ <%= link_to "[Referrer Stats]", "/stats/referrer_stats", :target => 'main'%>
41
+ <%end%>
42
+ </span><br>
43
+
44
+ <span id='menu'>
45
+ <%if params[:year] && params[:month]%>
46
+ <%= link_to "[Search Stats]",
47
+ "/stats/search_stats?month=#{params[:month]}&year=#{params[:year]}",
48
+ :target => 'main'%>
49
+ <%else%>
50
+ <%= link_to "[Search Stats]", "/stats/search_stats", :target => 'main'%>
51
+ <%end%>
52
+ </span><br>
53
+
54
+ <span id='menu'>
55
+ <%if params[:year] && params[:month]%>
56
+ <%= link_to "[Visitor Info]",
57
+ "/stats/visitor_info?month=#{params[:month]}&year=#{params[:year]}",
58
+ :target => 'main'%>
59
+ <%else%>
60
+ <%= link_to "[Visitor Info]", "/stats/visitor_info", :target => 'main'%>
61
+ <%end%>
62
+ </span>
63
+
64
+ <%if @cookie%>
65
+ <br>
66
+ <span id='menu'>
67
+ <%= link_to "[Logout]", "/stats/logout", :target => '_top'%>
68
+ </span>
69
+ <%end%>
70
+
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </div>
@@ -0,0 +1,20 @@
1
+ <div style="margin-top:12px">
2
+ <table align=center width=95% cellpadding=0>
3
+ </tr>
4
+ <td>
5
+ <div id='border'>
6
+ <div id='title'>Referrer Statistics</div>
7
+ <p>
8
+ <div id='sub_title'>Page URLs - Top 30</div>
9
+ <div><%=render :partial => 'page_urls'%></div>
10
+ </p>
11
+ <br>
12
+ <p>
13
+ <div id='sub_title'>Referrers - Top 30</div>
14
+ <div><%=render :partial => 'referers'%></div>
15
+ </p>
16
+ </div>
17
+ </td>
18
+ </tr>
19
+ </table>
20
+ </div>