ckeditor-rails 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (347) hide show
  1. data/README.md +10 -4
  2. data/ckeditor-rails.gemspec +1 -1
  3. data/lib/ckeditor-rails/version.rb +1 -1
  4. data/vendor/assets/ckeditor/ckeditor/INSTALL.html +92 -92
  5. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/application.xml +32 -32
  6. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/run.bat +9 -9
  7. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/sample.html +45 -45
  8. data/vendor/assets/ckeditor/ckeditor/_samples/ajax.html +98 -98
  9. data/vendor/assets/ckeditor/ckeditor/_samples/api.html +192 -192
  10. data/vendor/assets/ckeditor/ckeditor/_samples/api_dialog.html +198 -198
  11. data/vendor/assets/ckeditor/ckeditor/_samples/api_dialog/my_dialog.js +28 -28
  12. data/vendor/assets/ckeditor/ckeditor/_samples/asp/advanced.asp +105 -105
  13. data/vendor/assets/ckeditor/ckeditor/_samples/asp/events.asp +136 -136
  14. data/vendor/assets/ckeditor/ckeditor/_samples/asp/index.html +103 -103
  15. data/vendor/assets/ckeditor/ckeditor/_samples/asp/replace.asp +72 -72
  16. data/vendor/assets/ckeditor/ckeditor/_samples/asp/replaceall.asp +77 -77
  17. data/vendor/assets/ckeditor/ckeditor/_samples/asp/sample_posteddata.asp +46 -46
  18. data/vendor/assets/ckeditor/ckeditor/_samples/asp/standalone.asp +72 -72
  19. data/vendor/assets/ckeditor/ckeditor/_samples/assets/_posteddata.php +59 -59
  20. data/vendor/assets/ckeditor/ckeditor/_samples/assets/output_xhtml.css +204 -204
  21. data/vendor/assets/ckeditor/ckeditor/_samples/assets/parsesample.css +70 -70
  22. data/vendor/assets/ckeditor/ckeditor/_samples/assets/swfobject.js +18 -18
  23. data/vendor/assets/ckeditor/ckeditor/_samples/autogrow.html +107 -107
  24. data/vendor/assets/ckeditor/ckeditor/_samples/bbcode.html +125 -125
  25. data/vendor/assets/ckeditor/ckeditor/_samples/devtools.html +94 -94
  26. data/vendor/assets/ckeditor/ckeditor/_samples/divreplace.html +154 -154
  27. data/vendor/assets/ckeditor/ckeditor/_samples/enterkey.html +115 -115
  28. data/vendor/assets/ckeditor/ckeditor/_samples/fullpage.html +82 -82
  29. data/vendor/assets/ckeditor/ckeditor/_samples/index.html +116 -116
  30. data/vendor/assets/ckeditor/ckeditor/_samples/jqueryadapter.html +99 -99
  31. data/vendor/assets/ckeditor/ckeditor/_samples/output_for_flash.html +275 -275
  32. data/vendor/assets/ckeditor/ckeditor/_samples/output_html.html +285 -285
  33. data/vendor/assets/ckeditor/ckeditor/_samples/output_xhtml.html +177 -177
  34. data/vendor/assets/ckeditor/ckeditor/_samples/php/advanced.php +120 -120
  35. data/vendor/assets/ckeditor/ckeditor/_samples/php/events.php +153 -153
  36. data/vendor/assets/ckeditor/ckeditor/_samples/php/index.html +47 -47
  37. data/vendor/assets/ckeditor/ckeditor/_samples/php/replace.php +87 -87
  38. data/vendor/assets/ckeditor/ckeditor/_samples/php/replaceall.php +88 -88
  39. data/vendor/assets/ckeditor/ckeditor/_samples/php/standalone.php +83 -83
  40. data/vendor/assets/ckeditor/ckeditor/_samples/placeholder.html +81 -81
  41. data/vendor/assets/ckeditor/ckeditor/_samples/readonly.html +91 -91
  42. data/vendor/assets/ckeditor/ckeditor/_samples/replacebyclass.html +64 -64
  43. data/vendor/assets/ckeditor/ckeditor/_samples/replacebycode.html +97 -97
  44. data/vendor/assets/ckeditor/ckeditor/_samples/sample.css +163 -163
  45. data/vendor/assets/ckeditor/ckeditor/_samples/sample.js +65 -65
  46. data/vendor/assets/ckeditor/ckeditor/_samples/sample_posteddata.php +21 -21
  47. data/vendor/assets/ckeditor/ckeditor/_samples/sharedspaces.html +153 -153
  48. data/vendor/assets/ckeditor/ckeditor/_samples/skins.html +110 -110
  49. data/vendor/assets/ckeditor/ckeditor/_samples/stylesheetparser.html +93 -93
  50. data/vendor/assets/ckeditor/ckeditor/_samples/tableresize.html +115 -115
  51. data/vendor/assets/ckeditor/ckeditor/_samples/ui_color.html +129 -129
  52. data/vendor/assets/ckeditor/ckeditor/_samples/ui_languages.html +134 -134
  53. data/vendor/assets/ckeditor/ckeditor/_source/adapters/jquery.js +306 -306
  54. data/vendor/assets/ckeditor/ckeditor/_source/core/_bootstrap.js +87 -87
  55. data/vendor/assets/ckeditor/ckeditor/_source/core/ckeditor.js +141 -141
  56. data/vendor/assets/ckeditor/ckeditor/_source/core/ckeditor_base.js +227 -227
  57. data/vendor/assets/ckeditor/ckeditor/_source/core/ckeditor_basic.js +238 -238
  58. data/vendor/assets/ckeditor/ckeditor/_source/core/command.js +209 -209
  59. data/vendor/assets/ckeditor/ckeditor/_source/core/commanddefinition.js +129 -129
  60. data/vendor/assets/ckeditor/ckeditor/_source/core/config.js +431 -431
  61. data/vendor/assets/ckeditor/ckeditor/_source/core/dataprocessor.js +65 -65
  62. data/vendor/assets/ckeditor/ckeditor/_source/core/dom.js +20 -20
  63. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/comment.js +32 -32
  64. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/document.js +251 -251
  65. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/documentfragment.js +49 -49
  66. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/domobject.js +258 -258
  67. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/element.js +1681 -1681
  68. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/elementpath.js +119 -119
  69. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/event.js +145 -145
  70. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/node.js +695 -695
  71. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/nodelist.js +26 -26
  72. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/range.js +2032 -2032
  73. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/rangelist.js +213 -213
  74. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/text.js +128 -128
  75. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/walker.js +462 -462
  76. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/window.js +96 -96
  77. data/vendor/assets/ckeditor/ckeditor/_source/core/dtd.js +266 -266
  78. data/vendor/assets/ckeditor/ckeditor/_source/core/editor.js +1059 -1059
  79. data/vendor/assets/ckeditor/ckeditor/_source/core/editor_basic.js +186 -186
  80. data/vendor/assets/ckeditor/ckeditor/_source/core/env.js +291 -291
  81. data/vendor/assets/ckeditor/ckeditor/_source/core/event.js +342 -342
  82. data/vendor/assets/ckeditor/ckeditor/_source/core/eventInfo.js +120 -120
  83. data/vendor/assets/ckeditor/ckeditor/_source/core/focusmanager.js +152 -152
  84. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser.js +224 -224
  85. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/basicwriter.js +145 -145
  86. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/cdata.js +43 -43
  87. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/comment.js +60 -60
  88. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/element.js +308 -308
  89. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/filter.js +288 -288
  90. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/fragment.js +497 -497
  91. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/text.js +55 -55
  92. data/vendor/assets/ckeditor/ckeditor/_source/core/lang.js +157 -157
  93. data/vendor/assets/ckeditor/ckeditor/_source/core/loader.js +240 -240
  94. data/vendor/assets/ckeditor/ckeditor/_source/core/plugindefinition.js +83 -83
  95. data/vendor/assets/ckeditor/ckeditor/_source/core/plugins.js +103 -103
  96. data/vendor/assets/ckeditor/ckeditor/_source/core/resourcemanager.js +238 -238
  97. data/vendor/assets/ckeditor/ckeditor/_source/core/scriptloader.js +180 -180
  98. data/vendor/assets/ckeditor/ckeditor/_source/core/skins.js +184 -184
  99. data/vendor/assets/ckeditor/ckeditor/_source/core/themes.js +19 -19
  100. data/vendor/assets/ckeditor/ckeditor/_source/core/tools.js +763 -763
  101. data/vendor/assets/ckeditor/ckeditor/_source/core/ui.js +128 -128
  102. data/vendor/assets/ckeditor/ckeditor/_source/lang/_languages.js +84 -84
  103. data/vendor/assets/ckeditor/ckeditor/_source/lang/_translationstatus.txt +61 -61
  104. data/vendor/assets/ckeditor/ckeditor/_source/lang/af.js +812 -812
  105. data/vendor/assets/ckeditor/ckeditor/_source/lang/ar.js +812 -812
  106. data/vendor/assets/ckeditor/ckeditor/_source/lang/bg.js +812 -812
  107. data/vendor/assets/ckeditor/ckeditor/_source/lang/bn.js +812 -812
  108. data/vendor/assets/ckeditor/ckeditor/_source/lang/bs.js +812 -812
  109. data/vendor/assets/ckeditor/ckeditor/_source/lang/ca.js +812 -812
  110. data/vendor/assets/ckeditor/ckeditor/_source/lang/cs.js +812 -812
  111. data/vendor/assets/ckeditor/ckeditor/_source/lang/cy.js +812 -812
  112. data/vendor/assets/ckeditor/ckeditor/_source/lang/da.js +812 -812
  113. data/vendor/assets/ckeditor/ckeditor/_source/lang/de.js +812 -812
  114. data/vendor/assets/ckeditor/ckeditor/_source/lang/el.js +812 -812
  115. data/vendor/assets/ckeditor/ckeditor/_source/lang/en-au.js +812 -812
  116. data/vendor/assets/ckeditor/ckeditor/_source/lang/en-ca.js +812 -812
  117. data/vendor/assets/ckeditor/ckeditor/_source/lang/en-gb.js +812 -812
  118. data/vendor/assets/ckeditor/ckeditor/_source/lang/en.js +812 -812
  119. data/vendor/assets/ckeditor/ckeditor/_source/lang/eo.js +812 -812
  120. data/vendor/assets/ckeditor/ckeditor/_source/lang/es.js +812 -812
  121. data/vendor/assets/ckeditor/ckeditor/_source/lang/et.js +812 -812
  122. data/vendor/assets/ckeditor/ckeditor/_source/lang/eu.js +812 -812
  123. data/vendor/assets/ckeditor/ckeditor/_source/lang/fa.js +812 -812
  124. data/vendor/assets/ckeditor/ckeditor/_source/lang/fi.js +812 -812
  125. data/vendor/assets/ckeditor/ckeditor/_source/lang/fo.js +812 -812
  126. data/vendor/assets/ckeditor/ckeditor/_source/lang/fr-ca.js +812 -812
  127. data/vendor/assets/ckeditor/ckeditor/_source/lang/fr.js +812 -812
  128. data/vendor/assets/ckeditor/ckeditor/_source/lang/gl.js +812 -812
  129. data/vendor/assets/ckeditor/ckeditor/_source/lang/gu.js +812 -812
  130. data/vendor/assets/ckeditor/ckeditor/_source/lang/he.js +812 -812
  131. data/vendor/assets/ckeditor/ckeditor/_source/lang/hi.js +812 -812
  132. data/vendor/assets/ckeditor/ckeditor/_source/lang/hr.js +812 -812
  133. data/vendor/assets/ckeditor/ckeditor/_source/lang/hu.js +812 -812
  134. data/vendor/assets/ckeditor/ckeditor/_source/lang/is.js +812 -812
  135. data/vendor/assets/ckeditor/ckeditor/_source/lang/it.js +812 -812
  136. data/vendor/assets/ckeditor/ckeditor/_source/lang/ja.js +812 -812
  137. data/vendor/assets/ckeditor/ckeditor/_source/lang/ka.js +812 -812
  138. data/vendor/assets/ckeditor/ckeditor/_source/lang/km.js +812 -812
  139. data/vendor/assets/ckeditor/ckeditor/_source/lang/ko.js +812 -812
  140. data/vendor/assets/ckeditor/ckeditor/_source/lang/lt.js +812 -812
  141. data/vendor/assets/ckeditor/ckeditor/_source/lang/lv.js +812 -812
  142. data/vendor/assets/ckeditor/ckeditor/_source/lang/mn.js +812 -812
  143. data/vendor/assets/ckeditor/ckeditor/_source/lang/ms.js +812 -812
  144. data/vendor/assets/ckeditor/ckeditor/_source/lang/nb.js +812 -812
  145. data/vendor/assets/ckeditor/ckeditor/_source/lang/nl.js +812 -812
  146. data/vendor/assets/ckeditor/ckeditor/_source/lang/no.js +812 -812
  147. data/vendor/assets/ckeditor/ckeditor/_source/lang/pl.js +812 -812
  148. data/vendor/assets/ckeditor/ckeditor/_source/lang/pt-br.js +811 -811
  149. data/vendor/assets/ckeditor/ckeditor/_source/lang/pt.js +812 -812
  150. data/vendor/assets/ckeditor/ckeditor/_source/lang/ro.js +812 -812
  151. data/vendor/assets/ckeditor/ckeditor/_source/lang/ru.js +812 -812
  152. data/vendor/assets/ckeditor/ckeditor/_source/lang/sk.js +812 -812
  153. data/vendor/assets/ckeditor/ckeditor/_source/lang/sl.js +812 -812
  154. data/vendor/assets/ckeditor/ckeditor/_source/lang/sr-latn.js +812 -812
  155. data/vendor/assets/ckeditor/ckeditor/_source/lang/sr.js +812 -812
  156. data/vendor/assets/ckeditor/ckeditor/_source/lang/sv.js +811 -811
  157. data/vendor/assets/ckeditor/ckeditor/_source/lang/th.js +812 -812
  158. data/vendor/assets/ckeditor/ckeditor/_source/lang/tr.js +811 -811
  159. data/vendor/assets/ckeditor/ckeditor/_source/lang/uk.js +812 -812
  160. data/vendor/assets/ckeditor/ckeditor/_source/lang/vi.js +812 -812
  161. data/vendor/assets/ckeditor/ckeditor/_source/lang/zh-cn.js +812 -812
  162. data/vendor/assets/ckeditor/ckeditor/_source/lang/zh.js +812 -812
  163. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js +222 -222
  164. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/en.js +108 -108
  165. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/he.js +216 -216
  166. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/plugin.js +47 -47
  167. data/vendor/assets/ckeditor/ckeditor/_source/plugins/about/dialogs/about.js +76 -76
  168. data/vendor/assets/ckeditor/ckeditor/_source/plugins/about/plugin.js +24 -24
  169. data/vendor/assets/ckeditor/ckeditor/_source/plugins/adobeair/plugin.js +228 -228
  170. data/vendor/assets/ckeditor/ckeditor/_source/plugins/ajax/plugin.js +152 -152
  171. data/vendor/assets/ckeditor/ckeditor/_source/plugins/autogrow/plugin.js +88 -88
  172. data/vendor/assets/ckeditor/ckeditor/_source/plugins/basicstyles/plugin.js +101 -101
  173. data/vendor/assets/ckeditor/ckeditor/_source/plugins/bbcode/plugin.js +931 -931
  174. data/vendor/assets/ckeditor/ckeditor/_source/plugins/bidi/plugin.js +334 -334
  175. data/vendor/assets/ckeditor/ckeditor/_source/plugins/blockquote/plugin.js +305 -305
  176. data/vendor/assets/ckeditor/ckeditor/_source/plugins/button/plugin.js +290 -290
  177. data/vendor/assets/ckeditor/ckeditor/_source/plugins/clipboard/dialogs/paste.js +223 -223
  178. data/vendor/assets/ckeditor/ckeditor/_source/plugins/clipboard/plugin.js +453 -453
  179. data/vendor/assets/ckeditor/ckeditor/_source/plugins/colorbutton/plugin.js +294 -294
  180. data/vendor/assets/ckeditor/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js +340 -340
  181. data/vendor/assets/ckeditor/ckeditor/_source/plugins/colordialog/plugin.js +15 -15
  182. data/vendor/assets/ckeditor/ckeditor/_source/plugins/contextmenu/plugin.js +177 -177
  183. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/en.js +16 -16
  184. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/plugin.js +173 -173
  185. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialog/dialogDefinition.js +1166 -1166
  186. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialog/plugin.js +3289 -3289
  187. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialogadvtab/plugin.js +207 -207
  188. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialogui/plugin.js +1541 -1541
  189. data/vendor/assets/ckeditor/ckeditor/_source/plugins/div/dialogs/div.js +535 -535
  190. data/vendor/assets/ckeditor/ckeditor/_source/plugins/div/plugin.js +121 -121
  191. data/vendor/assets/ckeditor/ckeditor/_source/plugins/docprops/dialogs/docprops.js +686 -686
  192. data/vendor/assets/ckeditor/ckeditor/_source/plugins/docprops/plugin.js +22 -22
  193. data/vendor/assets/ckeditor/ckeditor/_source/plugins/domiterator/plugin.js +361 -361
  194. data/vendor/assets/ckeditor/ckeditor/_source/plugins/editingblock/plugin.js +275 -275
  195. data/vendor/assets/ckeditor/ckeditor/_source/plugins/elementspath/plugin.js +218 -218
  196. data/vendor/assets/ckeditor/ckeditor/_source/plugins/enterkey/plugin.js +413 -413
  197. data/vendor/assets/ckeditor/ckeditor/_source/plugins/entities/plugin.js +250 -250
  198. data/vendor/assets/ckeditor/ckeditor/_source/plugins/fakeobjects/plugin.js +175 -175
  199. data/vendor/assets/ckeditor/ckeditor/_source/plugins/filebrowser/plugin.js +524 -524
  200. data/vendor/assets/ckeditor/ckeditor/_source/plugins/find/dialogs/find.js +903 -903
  201. data/vendor/assets/ckeditor/ckeditor/_source/plugins/find/plugin.js +47 -47
  202. data/vendor/assets/ckeditor/ckeditor/_source/plugins/flash/dialogs/flash.js +673 -673
  203. data/vendor/assets/ckeditor/ckeditor/_source/plugins/flash/plugin.js +154 -154
  204. data/vendor/assets/ckeditor/ckeditor/_source/plugins/floatpanel/plugin.js +428 -428
  205. data/vendor/assets/ckeditor/ckeditor/_source/plugins/font/plugin.js +234 -234
  206. data/vendor/assets/ckeditor/ckeditor/_source/plugins/format/plugin.js +197 -197
  207. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/button.js +118 -118
  208. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/checkbox.js +153 -153
  209. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/form.js +177 -177
  210. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/hiddenfield.js +100 -100
  211. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/radio.js +135 -135
  212. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/select.js +558 -558
  213. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/textarea.js +114 -114
  214. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/textfield.js +199 -199
  215. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/plugin.js +288 -288
  216. data/vendor/assets/ckeditor/ckeditor/_source/plugins/horizontalrule/plugin.js +48 -48
  217. data/vendor/assets/ckeditor/ckeditor/_source/plugins/htmldataprocessor/plugin.js +595 -595
  218. data/vendor/assets/ckeditor/ckeditor/_source/plugins/htmlwriter/plugin.js +319 -319
  219. data/vendor/assets/ckeditor/ckeditor/_source/plugins/iframe/dialogs/iframe.js +229 -229
  220. data/vendor/assets/ckeditor/ckeditor/_source/plugins/iframe/plugin.js +87 -87
  221. data/vendor/assets/ckeditor/ckeditor/_source/plugins/iframedialog/plugin.js +188 -188
  222. data/vendor/assets/ckeditor/ckeditor/_source/plugins/image/dialogs/image.js +1406 -1406
  223. data/vendor/assets/ckeditor/ckeditor/_source/plugins/image/plugin.js +81 -81
  224. data/vendor/assets/ckeditor/ckeditor/_source/plugins/indent/plugin.js +461 -461
  225. data/vendor/assets/ckeditor/ckeditor/_source/plugins/justify/plugin.js +253 -253
  226. data/vendor/assets/ckeditor/ckeditor/_source/plugins/keystrokes/plugin.js +225 -225
  227. data/vendor/assets/ckeditor/ckeditor/_source/plugins/link/dialogs/anchor.js +144 -144
  228. data/vendor/assets/ckeditor/ckeditor/_source/plugins/link/dialogs/link.js +1424 -1424
  229. data/vendor/assets/ckeditor/ckeditor/_source/plugins/link/plugin.js +374 -374
  230. data/vendor/assets/ckeditor/ckeditor/_source/plugins/list/plugin.js +734 -734
  231. data/vendor/assets/ckeditor/ckeditor/_source/plugins/listblock/plugin.js +268 -268
  232. data/vendor/assets/ckeditor/ckeditor/_source/plugins/liststyle/dialogs/liststyle.js +225 -225
  233. data/vendor/assets/ckeditor/ckeditor/_source/plugins/liststyle/plugin.js +66 -66
  234. data/vendor/assets/ckeditor/ckeditor/_source/plugins/maximize/plugin.js +352 -352
  235. data/vendor/assets/ckeditor/ckeditor/_source/plugins/menu/plugin.js +541 -541
  236. data/vendor/assets/ckeditor/ckeditor/_source/plugins/menubutton/plugin.js +98 -98
  237. data/vendor/assets/ckeditor/ckeditor/_source/plugins/newpage/plugin.js +54 -54
  238. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pagebreak/plugin.js +164 -164
  239. data/vendor/assets/ckeditor/ckeditor/_source/plugins/panel/plugin.js +403 -403
  240. data/vendor/assets/ckeditor/ckeditor/_source/plugins/panelbutton/plugin.js +144 -144
  241. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastefromword/filter/default.js +1367 -1367
  242. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastefromword/plugin.js +141 -141
  243. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastetext/dialogs/pastetext.js +67 -67
  244. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastetext/plugin.js +98 -98
  245. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/dialogs/placeholder.js +71 -71
  246. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/en.js +16 -16
  247. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/he.js +16 -16
  248. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/plugin.js +171 -171
  249. data/vendor/assets/ckeditor/ckeditor/_source/plugins/popup/plugin.js +64 -64
  250. data/vendor/assets/ckeditor/ckeditor/_source/plugins/preview/plugin.js +109 -109
  251. data/vendor/assets/ckeditor/ckeditor/_source/plugins/print/plugin.js +42 -42
  252. data/vendor/assets/ckeditor/ckeditor/_source/plugins/removeformat/plugin.js +185 -185
  253. data/vendor/assets/ckeditor/ckeditor/_source/plugins/resize/plugin.js +168 -168
  254. data/vendor/assets/ckeditor/ckeditor/_source/plugins/richcombo/plugin.js +381 -381
  255. data/vendor/assets/ckeditor/ckeditor/_source/plugins/save/plugin.js +56 -56
  256. data/vendor/assets/ckeditor/ckeditor/_source/plugins/scayt/dialogs/options.js +537 -537
  257. data/vendor/assets/ckeditor/ckeditor/_source/plugins/scayt/dialogs/toolbar.css +71 -71
  258. data/vendor/assets/ckeditor/ckeditor/_source/plugins/scayt/plugin.js +964 -964
  259. data/vendor/assets/ckeditor/ckeditor/_source/plugins/selection/plugin.js +1601 -1601
  260. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showblocks/plugin.js +160 -160
  261. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showborders/plugin.js +207 -207
  262. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/dialogs/smiley.js +224 -224
  263. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/plugin.js +94 -94
  264. data/vendor/assets/ckeditor/ckeditor/_source/plugins/sourcearea/plugin.js +209 -209
  265. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/specialchar.js +350 -350
  266. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/en.js +89 -89
  267. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/plugin.js +70 -70
  268. data/vendor/assets/ckeditor/ckeditor/_source/plugins/styles/plugin.js +1696 -1696
  269. data/vendor/assets/ckeditor/ckeditor/_source/plugins/styles/styles/default.js +88 -88
  270. data/vendor/assets/ckeditor/ckeditor/_source/plugins/stylescombo/plugin.js +218 -218
  271. data/vendor/assets/ckeditor/ckeditor/_source/plugins/stylesheetparser/plugin.js +148 -148
  272. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tab/plugin.js +367 -367
  273. data/vendor/assets/ckeditor/ckeditor/_source/plugins/table/dialogs/table.js +602 -602
  274. data/vendor/assets/ckeditor/ckeditor/_source/plugins/table/plugin.js +78 -78
  275. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tableresize/plugin.js +443 -443
  276. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tabletools/dialogs/tableCell.js +525 -525
  277. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tabletools/plugin.js +1194 -1194
  278. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/dialogs/templates.js +234 -234
  279. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/plugin.js +99 -99
  280. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/templates/default.js +94 -94
  281. data/vendor/assets/ckeditor/ckeditor/_source/plugins/toolbar/plugin.js +545 -545
  282. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/dialogs/uicolor.js +205 -205
  283. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/en.js +15 -15
  284. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/he.js +15 -15
  285. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/plugin.js +37 -37
  286. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/yui/assets/yui.css +15 -15
  287. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/yui/yui.js +71 -71
  288. data/vendor/assets/ckeditor/ckeditor/_source/plugins/undo/plugin.js +580 -580
  289. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/ciframe.html +49 -49
  290. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html +52 -52
  291. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc.css +82 -82
  292. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc.js +192 -192
  293. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/plugin.js +33 -33
  294. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wysiwygarea/plugin.js +1351 -1351
  295. data/vendor/assets/ckeditor/ckeditor/_source/plugins/xml/plugin.js +170 -170
  296. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/dialog.css +943 -943
  297. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/editor.css +25 -25
  298. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/elementspath.css +73 -73
  299. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/icons.css +366 -366
  300. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/mainui.css +203 -203
  301. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/menu.css +232 -232
  302. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/panel.css +217 -217
  303. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/presets.css +49 -49
  304. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/reset.css +84 -84
  305. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/richcombo.css +287 -287
  306. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/skin.js +236 -236
  307. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/templates.css +88 -88
  308. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/toolbar.css +407 -407
  309. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/dialog.css +844 -844
  310. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/editor.css +25 -25
  311. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/elementspath.css +74 -74
  312. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/icons.css +363 -363
  313. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/mainui.css +153 -153
  314. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/menu.css +229 -229
  315. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/panel.css +212 -212
  316. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/presets.css +49 -49
  317. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/reset.css +84 -84
  318. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/richcombo.css +309 -309
  319. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/skin.js +74 -74
  320. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/templates.css +87 -87
  321. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/toolbar.css +522 -522
  322. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/dialog.css +861 -861
  323. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/editor.css +25 -25
  324. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/elementspath.css +74 -74
  325. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/icons.css +363 -363
  326. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/mainui.css +162 -162
  327. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/menu.css +232 -232
  328. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/panel.css +212 -212
  329. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/presets.css +50 -50
  330. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/reset.css +84 -84
  331. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/richcombo.css +302 -302
  332. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/skin.js +70 -70
  333. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/templates.css +87 -87
  334. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/toolbar.css +465 -465
  335. data/vendor/assets/ckeditor/ckeditor/_source/themes/default/theme.js +395 -395
  336. data/vendor/assets/ckeditor/ckeditor/adapters/jquery.js +6 -6
  337. data/vendor/assets/ckeditor/ckeditor/ckeditor.asp +955 -955
  338. data/vendor/assets/ckeditor/ckeditor/ckeditor.pack +211 -211
  339. data/vendor/assets/ckeditor/ckeditor/ckeditor.php +29 -29
  340. data/vendor/assets/ckeditor/ckeditor/ckeditor_basic.js +8 -8
  341. data/vendor/assets/ckeditor/ckeditor/ckeditor_basic_source.js +20 -20
  342. data/vendor/assets/ckeditor/ckeditor/ckeditor_php4.php +566 -566
  343. data/vendor/assets/ckeditor/ckeditor/ckeditor_php5.php +556 -556
  344. data/vendor/assets/ckeditor/ckeditor/config.js +11 -11
  345. data/vendor/assets/ckeditor/ckeditor/contents.css +25 -25
  346. data/vendor/assets/ckeditor/ckeditor/themes/default/theme.js +8 -8
  347. metadata +7 -9
@@ -1,8 +1,8 @@
1
- /*
2
- Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
- For licensing, see LICENSE.html or http://ckeditor.com/license
4
- */
5
-
6
- (function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'B5GJ5GG',version:'3.6.1',revision:'7072',_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f<e.length;f++){var g=e[f].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(g){d=g[1];break;}}}if(d.indexOf(':/')==-1)if(d.indexOf('/')===0)d=location.href.match(/^.*?:\/\/[^\/]*/)[0]+d;else d=location.href.match(/^[^\?]*\/(?:)/)[0]+d;if(!d)throw 'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return d;})(),getUrl:function(d){if(d.indexOf(':/')==-1&&d.indexOf('/')!==0)d=this.basePath+d;if(this.timestamp&&d.charAt(d.length-1)!='/'&&!/[&?]t=/.test(d))d+=(d.indexOf('?')>=0?'&':'?')+'t='+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})();var a=CKEDITOR;if(!a.event){a.event=function(){};a.event.implementOn=function(b){var c=a.event.prototype;for(var d in c){if(b[d]==undefined)b[d]=c[d];}};a.event.prototype=(function(){var b=function(d){var e=d.getPrivate&&d.getPrivate()||d._||(d._={});return e.events||(e.events={});},c=function(d){this.name=d;this.listeners=[];};c.prototype={getListenerIndex:function(d){for(var e=0,f=this.listeners;e<f.length;e++){if(f[e].fn==d)return e;}return-1;}};return{on:function(d,e,f,g,h){var i=b(this),j=i[d]||(i[d]=new c(d));if(j.getListenerIndex(e)<0){var k=j.listeners;if(!f)f=this;if(isNaN(h))h=10;var l=this,m=function(o,p,q,r){var s={name:d,sender:this,editor:o,data:p,listenerData:g,stop:q,cancel:r,removeListener:function(){l.removeListener(d,e);}};e.call(f,s);return s.data;};m.fn=e;m.priority=h;for(var n=k.length-1;n>=0;n--){if(k[n].priority<=h){k.splice(n+1,0,m);return;}}k.unshift(m);}},fire:(function(){var d=false,e=function(){d=true;},f=false,g=function(){f=true;};return function(h,i,j){var k=b(this)[h],l=d,m=f;d=f=false;if(k){var n=k.listeners;if(n.length){n=n.slice(0);for(var o=0;o<n.length;o++){var p=n[o].call(this,j,i,e,g);if(typeof p!='undefined')i=p;if(d||f)break;}}}var q=f||(typeof i=='undefined'?false:i);d=l;f=m;return q;};})(),fireOnce:function(d,e,f){var g=this.fire(d,e,f);delete b(this)[d];return g;},removeListener:function(d,e){var f=b(this)[d];if(f){var g=f.getListenerIndex(e);if(g>=0)f.listeners.splice(g,1);
7
- }},hasListeners:function(d){var e=b(this)[d];return e&&e.listeners.length>0;}};})();}if(!a.editor){a.ELEMENT_MODE_NONE=0;a.ELEMENT_MODE_REPLACE=1;a.ELEMENT_MODE_APPENDTO=2;a.editor=function(b,c,d,e){var f=this;f._={instanceConfig:b,element:c,data:e};f.elementMode=d||0;a.event.call(f);f._init();};a.editor.replace=function(b,c){var d=b;if(typeof d!='object'){d=document.getElementById(b);if(d&&d.tagName.toLowerCase() in {style:1,script:1,base:1,link:1,meta:1,title:1})d=null;if(!d){var e=0,f=document.getElementsByName(b);while((d=f[e++])&&d.tagName.toLowerCase()!='textarea'){}}if(!d)throw '[CKEDITOR.editor.replace] The element with id or name "'+b+'" was not found.';}d.style.visibility='hidden';return new a.editor(c,d,1);};a.editor.appendTo=function(b,c,d){var e=b;if(typeof e!='object'){e=document.getElementById(b);if(!e)throw '[CKEDITOR.editor.appendTo] The element with id "'+b+'" was not found.';}return new a.editor(c,e,2,d);};a.editor.prototype={_init:function(){var b=a.editor._pending||(a.editor._pending=[]);b.push(this);},fire:function(b,c){return a.event.prototype.fire.call(this,b,c,this);},fireOnce:function(b,c){return a.event.prototype.fireOnce.call(this,b,c,this);}};a.event.implementOn(a.editor.prototype,true);}if(!a.env)a.env=(function(){var b=navigator.userAgent.toLowerCase(),c=window.opera,d={ie:/*@cc_on!@*/false,opera:!!c&&c.version,webkit:b.indexOf(' applewebkit/')>-1,air:b.indexOf(' adobeair/')>-1,mac:b.indexOf('macintosh')>-1,quirks:document.compatMode=='BackCompat',mobile:b.indexOf('mobile')>-1,isCustomDomain:function(){if(!this.ie)return false;var g=document.domain,h=window.location.hostname;return g!=h&&g!='['+h+']';},secure:location.protocol=='https:'};d.gecko=navigator.product=='Gecko'&&!d.webkit&&!d.opera;var e=0;if(d.ie){e=parseFloat(b.match(/msie (\d+)/)[1]);d.ie8=!!document.documentMode;d.ie8Compat=document.documentMode==8;d.ie9Compat=document.documentMode==9;d.ie7Compat=e==7&&!document.documentMode||document.documentMode==7;d.ie6Compat=e<7||d.quirks;}if(d.gecko){var f=b.match(/rv:([\d\.]+)/);if(f){f=f[1].split('.');e=f[0]*10000+(f[1]||0)*100+ +(f[2]||0);}}if(d.opera)e=parseFloat(c.version());if(d.air)e=parseFloat(b.match(/ adobeair\/(\d+)/)[1]);if(d.webkit)e=parseFloat(b.match(/ applewebkit\/(\d+)/)[1]);d.version=e;d.isCompatible=!d.mobile&&(d.ie&&e>=6||d.gecko&&e>=10801||d.opera&&e>=9.5||d.air&&e>=1||d.webkit&&e>=522||false);d.cssClass='cke_browser_'+(d.ie?'ie':d.gecko?'gecko':d.opera?'opera':d.webkit?'webkit':'unknown');
8
- if(d.quirks)d.cssClass+=' cke_browser_quirks';if(d.ie){d.cssClass+=' cke_browser_ie'+(d.version<7?'6':d.version>=8?document.documentMode:'7');if(d.quirks)d.cssClass+=' cke_browser_iequirks';}if(d.gecko&&e<10900)d.cssClass+=' cke_browser_gecko18';if(d.air)d.cssClass+=' cke_browser_air';return d;})();var b=a.env;var c=b.ie;if(a.status=='unloaded')(function(){a.event.implementOn(a);a.loadFullCore=function(){if(a.status!='basic_ready'){a.loadFullCore._load=1;return;}delete a.loadFullCore;var e=document.createElement('script');e.type='text/javascript';e.src=a.basePath+'ckeditor.js';document.getElementsByTagName('head')[0].appendChild(e);};a.loadFullCoreTimeout=0;a.replaceClass='ckeditor';a.replaceByClassEnabled=1;var d=function(e,f,g,h){if(b.isCompatible){if(a.loadFullCore)a.loadFullCore();var i=g(e,f,h);a.add(i);return i;}return null;};a.replace=function(e,f){return d(e,f,a.editor.replace);};a.appendTo=function(e,f,g){return d(e,f,a.editor.appendTo,g);};a.add=function(e){var f=this._.pending||(this._.pending=[]);f.push(e);};a.replaceAll=function(){var e=document.getElementsByTagName('textarea');for(var f=0;f<e.length;f++){var g=null,h=e[f];if(!h.name&&!h.id)continue;if(typeof arguments[0]=='string'){var i=new RegExp('(?:^|\\s)'+arguments[0]+'(?:$|\\s)');if(!i.test(h.className))continue;}else if(typeof arguments[0]=='function'){g={};if(arguments[0](h,g)===false)continue;}this.replace(h,g);}};(function(){var e=function(){var f=a.loadFullCore,g=a.loadFullCoreTimeout;if(a.replaceByClassEnabled)a.replaceAll(a.replaceClass);a.status='basic_ready';if(f&&f._load)f();else if(g)setTimeout(function(){if(a.loadFullCore)a.loadFullCore();},g*1000);};if(window.addEventListener)window.addEventListener('load',e,false);else if(window.attachEvent)window.attachEvent('onload',e);})();a.status='basic_loaded';})();})();
1
+ /*
2
+ Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ (function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'B5GJ5GG',version:'3.6.1',revision:'7072',_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f<e.length;f++){var g=e[f].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(g){d=g[1];break;}}}if(d.indexOf(':/')==-1)if(d.indexOf('/')===0)d=location.href.match(/^.*?:\/\/[^\/]*/)[0]+d;else d=location.href.match(/^[^\?]*\/(?:)/)[0]+d;if(!d)throw 'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return d;})(),getUrl:function(d){if(d.indexOf(':/')==-1&&d.indexOf('/')!==0)d=this.basePath+d;if(this.timestamp&&d.charAt(d.length-1)!='/'&&!/[&?]t=/.test(d))d+=(d.indexOf('?')>=0?'&':'?')+'t='+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})();var a=CKEDITOR;if(!a.event){a.event=function(){};a.event.implementOn=function(b){var c=a.event.prototype;for(var d in c){if(b[d]==undefined)b[d]=c[d];}};a.event.prototype=(function(){var b=function(d){var e=d.getPrivate&&d.getPrivate()||d._||(d._={});return e.events||(e.events={});},c=function(d){this.name=d;this.listeners=[];};c.prototype={getListenerIndex:function(d){for(var e=0,f=this.listeners;e<f.length;e++){if(f[e].fn==d)return e;}return-1;}};return{on:function(d,e,f,g,h){var i=b(this),j=i[d]||(i[d]=new c(d));if(j.getListenerIndex(e)<0){var k=j.listeners;if(!f)f=this;if(isNaN(h))h=10;var l=this,m=function(o,p,q,r){var s={name:d,sender:this,editor:o,data:p,listenerData:g,stop:q,cancel:r,removeListener:function(){l.removeListener(d,e);}};e.call(f,s);return s.data;};m.fn=e;m.priority=h;for(var n=k.length-1;n>=0;n--){if(k[n].priority<=h){k.splice(n+1,0,m);return;}}k.unshift(m);}},fire:(function(){var d=false,e=function(){d=true;},f=false,g=function(){f=true;};return function(h,i,j){var k=b(this)[h],l=d,m=f;d=f=false;if(k){var n=k.listeners;if(n.length){n=n.slice(0);for(var o=0;o<n.length;o++){var p=n[o].call(this,j,i,e,g);if(typeof p!='undefined')i=p;if(d||f)break;}}}var q=f||(typeof i=='undefined'?false:i);d=l;f=m;return q;};})(),fireOnce:function(d,e,f){var g=this.fire(d,e,f);delete b(this)[d];return g;},removeListener:function(d,e){var f=b(this)[d];if(f){var g=f.getListenerIndex(e);if(g>=0)f.listeners.splice(g,1);
7
+ }},hasListeners:function(d){var e=b(this)[d];return e&&e.listeners.length>0;}};})();}if(!a.editor){a.ELEMENT_MODE_NONE=0;a.ELEMENT_MODE_REPLACE=1;a.ELEMENT_MODE_APPENDTO=2;a.editor=function(b,c,d,e){var f=this;f._={instanceConfig:b,element:c,data:e};f.elementMode=d||0;a.event.call(f);f._init();};a.editor.replace=function(b,c){var d=b;if(typeof d!='object'){d=document.getElementById(b);if(d&&d.tagName.toLowerCase() in {style:1,script:1,base:1,link:1,meta:1,title:1})d=null;if(!d){var e=0,f=document.getElementsByName(b);while((d=f[e++])&&d.tagName.toLowerCase()!='textarea'){}}if(!d)throw '[CKEDITOR.editor.replace] The element with id or name "'+b+'" was not found.';}d.style.visibility='hidden';return new a.editor(c,d,1);};a.editor.appendTo=function(b,c,d){var e=b;if(typeof e!='object'){e=document.getElementById(b);if(!e)throw '[CKEDITOR.editor.appendTo] The element with id "'+b+'" was not found.';}return new a.editor(c,e,2,d);};a.editor.prototype={_init:function(){var b=a.editor._pending||(a.editor._pending=[]);b.push(this);},fire:function(b,c){return a.event.prototype.fire.call(this,b,c,this);},fireOnce:function(b,c){return a.event.prototype.fireOnce.call(this,b,c,this);}};a.event.implementOn(a.editor.prototype,true);}if(!a.env)a.env=(function(){var b=navigator.userAgent.toLowerCase(),c=window.opera,d={ie:/*@cc_on!@*/false,opera:!!c&&c.version,webkit:b.indexOf(' applewebkit/')>-1,air:b.indexOf(' adobeair/')>-1,mac:b.indexOf('macintosh')>-1,quirks:document.compatMode=='BackCompat',mobile:b.indexOf('mobile')>-1,isCustomDomain:function(){if(!this.ie)return false;var g=document.domain,h=window.location.hostname;return g!=h&&g!='['+h+']';},secure:location.protocol=='https:'};d.gecko=navigator.product=='Gecko'&&!d.webkit&&!d.opera;var e=0;if(d.ie){e=parseFloat(b.match(/msie (\d+)/)[1]);d.ie8=!!document.documentMode;d.ie8Compat=document.documentMode==8;d.ie9Compat=document.documentMode==9;d.ie7Compat=e==7&&!document.documentMode||document.documentMode==7;d.ie6Compat=e<7||d.quirks;}if(d.gecko){var f=b.match(/rv:([\d\.]+)/);if(f){f=f[1].split('.');e=f[0]*10000+(f[1]||0)*100+ +(f[2]||0);}}if(d.opera)e=parseFloat(c.version());if(d.air)e=parseFloat(b.match(/ adobeair\/(\d+)/)[1]);if(d.webkit)e=parseFloat(b.match(/ applewebkit\/(\d+)/)[1]);d.version=e;d.isCompatible=!d.mobile&&(d.ie&&e>=6||d.gecko&&e>=10801||d.opera&&e>=9.5||d.air&&e>=1||d.webkit&&e>=522||false);d.cssClass='cke_browser_'+(d.ie?'ie':d.gecko?'gecko':d.opera?'opera':d.webkit?'webkit':'unknown');
8
+ if(d.quirks)d.cssClass+=' cke_browser_quirks';if(d.ie){d.cssClass+=' cke_browser_ie'+(d.version<7?'6':d.version>=8?document.documentMode:'7');if(d.quirks)d.cssClass+=' cke_browser_iequirks';}if(d.gecko&&e<10900)d.cssClass+=' cke_browser_gecko18';if(d.air)d.cssClass+=' cke_browser_air';return d;})();var b=a.env;var c=b.ie;if(a.status=='unloaded')(function(){a.event.implementOn(a);a.loadFullCore=function(){if(a.status!='basic_ready'){a.loadFullCore._load=1;return;}delete a.loadFullCore;var e=document.createElement('script');e.type='text/javascript';e.src=a.basePath+'ckeditor.js';document.getElementsByTagName('head')[0].appendChild(e);};a.loadFullCoreTimeout=0;a.replaceClass='ckeditor';a.replaceByClassEnabled=1;var d=function(e,f,g,h){if(b.isCompatible){if(a.loadFullCore)a.loadFullCore();var i=g(e,f,h);a.add(i);return i;}return null;};a.replace=function(e,f){return d(e,f,a.editor.replace);};a.appendTo=function(e,f,g){return d(e,f,a.editor.appendTo,g);};a.add=function(e){var f=this._.pending||(this._.pending=[]);f.push(e);};a.replaceAll=function(){var e=document.getElementsByTagName('textarea');for(var f=0;f<e.length;f++){var g=null,h=e[f];if(!h.name&&!h.id)continue;if(typeof arguments[0]=='string'){var i=new RegExp('(?:^|\\s)'+arguments[0]+'(?:$|\\s)');if(!i.test(h.className))continue;}else if(typeof arguments[0]=='function'){g={};if(arguments[0](h,g)===false)continue;}this.replace(h,g);}};(function(){var e=function(){var f=a.loadFullCore,g=a.loadFullCoreTimeout;if(a.replaceByClassEnabled)a.replaceAll(a.replaceClass);a.status='basic_ready';if(f&&f._load)f();else if(g)setTimeout(function(){if(a.loadFullCore)a.loadFullCore();},g*1000);};if(window.addEventListener)window.addEventListener('load',e,false);else if(window.attachEvent)window.attachEvent('onload',e);})();a.status='basic_loaded';})();})();
@@ -1,20 +1,20 @@
1
- /*
2
- Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
- For licensing, see LICENSE.html or http://ckeditor.com/license
4
- */
5
-
6
- // Compressed version of core/ckeditor_base.js. See original for instructions.
7
- /*jsl:ignore*/
8
- if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'',version:'3.6.1',revision:'7072',_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f<e.length;f++){var g=e[f].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(g){d=g[1];break;}}}if(d.indexOf(':/')==-1)if(d.indexOf('/')===0)d=location.href.match(/^.*?:\/\/[^\/]*/)[0]+d;else d=location.href.match(/^[^\?]*\/(?:)/)[0]+d;return d;})(),getUrl:function(d){if(d.indexOf(':/')==-1&&d.indexOf('/')!==0)d=this.basePath+d;if(this.timestamp&&d.charAt(d.length-1)!='/')d+=(d.indexOf('?')>=0?'&':'?')+('t=')+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})();
9
- /*jsl:end*/
10
-
11
- // Uncomment the following line to have a new timestamp generated for each
12
- // request, having clear cache load of the editor code.
13
- // CKEDITOR.timestamp = ( new Date() ).valueOf();
14
-
15
- // Set the script name to be loaded by the loader.
16
- CKEDITOR._autoLoad = 'core/ckeditor_basic';
17
-
18
- // Include the loader script.
19
- document.write(
20
- '<script type="text/javascript" src="' + CKEDITOR.getUrl( '_source/core/loader.js' ) + '"></script>' );
1
+ /*
2
+ Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ // Compressed version of core/ckeditor_base.js. See original for instructions.
7
+ /*jsl:ignore*/
8
+ if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'',version:'3.6.1',revision:'7072',_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f<e.length;f++){var g=e[f].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(g){d=g[1];break;}}}if(d.indexOf(':/')==-1)if(d.indexOf('/')===0)d=location.href.match(/^.*?:\/\/[^\/]*/)[0]+d;else d=location.href.match(/^[^\?]*\/(?:)/)[0]+d;return d;})(),getUrl:function(d){if(d.indexOf(':/')==-1&&d.indexOf('/')!==0)d=this.basePath+d;if(this.timestamp&&d.charAt(d.length-1)!='/')d+=(d.indexOf('?')>=0?'&':'?')+('t=')+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})();
9
+ /*jsl:end*/
10
+
11
+ // Uncomment the following line to have a new timestamp generated for each
12
+ // request, having clear cache load of the editor code.
13
+ // CKEDITOR.timestamp = ( new Date() ).valueOf();
14
+
15
+ // Set the script name to be loaded by the loader.
16
+ CKEDITOR._autoLoad = 'core/ckeditor_basic';
17
+
18
+ // Include the loader script.
19
+ document.write(
20
+ '<script type="text/javascript" src="' + CKEDITOR.getUrl( '_source/core/loader.js' ) + '"></script>' );
@@ -1,566 +1,566 @@
1
- <?php
2
- /*
3
- * Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
4
- * For licensing, see LICENSE.html or http://ckeditor.com/license
5
- */
6
-
7
- /**
8
- * \brief CKEditor class that can be used to create editor
9
- * instances in PHP pages on server side.
10
- * @see http://ckeditor.com
11
- *
12
- * Sample usage:
13
- * @code
14
- * $CKEditor = new CKEditor();
15
- * $CKEditor->editor("editor1", "<p>Initial value.</p>");
16
- * @endcode
17
- */
18
- class CKEditor
19
- {
20
- /**
21
- * The version of %CKEditor.
22
- * \private
23
- */
24
- var $version = '3.6.1';
25
- /**
26
- * A constant string unique for each release of %CKEditor.
27
- * \private
28
- */
29
- var $_timestamp = 'B5GJ5GG';
30
-
31
- /**
32
- * URL to the %CKEditor installation directory (absolute or relative to document root).
33
- * If not set, CKEditor will try to guess it's path.
34
- *
35
- * Example usage:
36
- * @code
37
- * $CKEditor->basePath = '/ckeditor/';
38
- * @endcode
39
- */
40
- var $basePath;
41
- /**
42
- * An array that holds the global %CKEditor configuration.
43
- * For the list of available options, see http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html
44
- *
45
- * Example usage:
46
- * @code
47
- * $CKEditor->config['height'] = 400;
48
- * // Use @@ at the beggining of a string to ouput it without surrounding quotes.
49
- * $CKEditor->config['width'] = '@@screen.width * 0.8';
50
- * @endcode
51
- */
52
- var $config = array();
53
- /**
54
- * A boolean variable indicating whether CKEditor has been initialized.
55
- * Set it to true only if you have already included
56
- * &lt;script&gt; tag loading ckeditor.js in your website.
57
- */
58
- var $initialized = false;
59
- /**
60
- * Boolean variable indicating whether created code should be printed out or returned by a function.
61
- *
62
- * Example 1: get the code creating %CKEditor instance and print it on a page with the "echo" function.
63
- * @code
64
- * $CKEditor = new CKEditor();
65
- * $CKEditor->returnOutput = true;
66
- * $code = $CKEditor->editor("editor1", "<p>Initial value.</p>");
67
- * echo "<p>Editor 1:</p>";
68
- * echo $code;
69
- * @endcode
70
- */
71
- var $returnOutput = false;
72
- /**
73
- * An array with textarea attributes.
74
- *
75
- * When %CKEditor is created with the editor() method, a HTML &lt;textarea&gt; element is created,
76
- * it will be displayed to anyone with JavaScript disabled or with incompatible browser.
77
- */
78
- var $textareaAttributes = array( "rows" => 8, "cols" => 60 );
79
- /**
80
- * A string indicating the creation date of %CKEditor.
81
- * Do not change it unless you want to force browsers to not use previously cached version of %CKEditor.
82
- */
83
- var $timestamp = "B5GJ5GG";
84
- /**
85
- * An array that holds event listeners.
86
- * \private
87
- */
88
- var $_events = array();
89
- /**
90
- * An array that holds global event listeners.
91
- * \private
92
- */
93
- var $_globalEvents = array();
94
-
95
- /**
96
- * Main Constructor.
97
- *
98
- * @param $basePath (string) URL to the %CKEditor installation directory (optional).
99
- */
100
- function CKEditor($basePath = null) {
101
- if (!empty($basePath)) {
102
- $this->basePath = $basePath;
103
- }
104
- }
105
-
106
- /**
107
- * Creates a %CKEditor instance.
108
- * In incompatible browsers %CKEditor will downgrade to plain HTML &lt;textarea&gt; element.
109
- *
110
- * @param $name (string) Name of the %CKEditor instance (this will be also the "name" attribute of textarea element).
111
- * @param $value (string) Initial value (optional).
112
- * @param $config (array) The specific configurations to apply to this editor instance (optional).
113
- * @param $events (array) Event listeners for this editor instance (optional).
114
- *
115
- * Example usage:
116
- * @code
117
- * $CKEditor = new CKEditor();
118
- * $CKEditor->editor("field1", "<p>Initial value.</p>");
119
- * @endcode
120
- *
121
- * Advanced example:
122
- * @code
123
- * $CKEditor = new CKEditor();
124
- * $config = array();
125
- * $config['toolbar'] = array(
126
- * array( 'Source', '-', 'Bold', 'Italic', 'Underline', 'Strike' ),
127
- * array( 'Image', 'Link', 'Unlink', 'Anchor' )
128
- * );
129
- * $events['instanceReady'] = 'function (ev) {
130
- * alert("Loaded: " + ev.editor.name);
131
- * }';
132
- * $CKEditor->editor("field1", "<p>Initial value.</p>", $config, $events);
133
- * @endcode
134
- */
135
- function editor($name, $value = "", $config = array(), $events = array())
136
- {
137
- $attr = "";
138
- foreach ($this->textareaAttributes as $key => $val) {
139
- $attr.= " " . $key . '="' . str_replace('"', '&quot;', $val) . '"';
140
- }
141
- $out = "<textarea name=\"" . $name . "\"" . $attr . ">" . htmlspecialchars($value) . "</textarea>\n";
142
- if (!$this->initialized) {
143
- $out .= $this->init();
144
- }
145
-
146
- $_config = $this->configSettings($config, $events);
147
-
148
- $js = $this->returnGlobalEvents();
149
- if (!empty($_config))
150
- $js .= "CKEDITOR.replace('".$name."', ".$this->jsEncode($_config).");";
151
- else
152
- $js .= "CKEDITOR.replace('".$name."');";
153
-
154
- $out .= $this->script($js);
155
-
156
- if (!$this->returnOutput) {
157
- print $out;
158
- $out = "";
159
- }
160
-
161
- return $out;
162
- }
163
-
164
- /**
165
- * Replaces a &lt;textarea&gt; with a %CKEditor instance.
166
- *
167
- * @param $id (string) The id or name of textarea element.
168
- * @param $config (array) The specific configurations to apply to this editor instance (optional).
169
- * @param $events (array) Event listeners for this editor instance (optional).
170
- *
171
- * Example 1: adding %CKEditor to &lt;textarea name="article"&gt;&lt;/textarea&gt; element:
172
- * @code
173
- * $CKEditor = new CKEditor();
174
- * $CKEditor->replace("article");
175
- * @endcode
176
- */
177
- function replace($id, $config = array(), $events = array())
178
- {
179
- $out = "";
180
- if (!$this->initialized) {
181
- $out .= $this->init();
182
- }
183
-
184
- $_config = $this->configSettings($config, $events);
185
-
186
- $js = $this->returnGlobalEvents();
187
- if (!empty($_config)) {
188
- $js .= "CKEDITOR.replace('".$id."', ".$this->jsEncode($_config).");";
189
- }
190
- else {
191
- $js .= "CKEDITOR.replace('".$id."');";
192
- }
193
- $out .= $this->script($js);
194
-
195
- if (!$this->returnOutput) {
196
- print $out;
197
- $out = "";
198
- }
199
-
200
- return $out;
201
- }
202
-
203
- /**
204
- * Replace all &lt;textarea&gt; elements available in the document with editor instances.
205
- *
206
- * @param $className (string) If set, replace all textareas with class className in the page.
207
- *
208
- * Example 1: replace all &lt;textarea&gt; elements in the page.
209
- * @code
210
- * $CKEditor = new CKEditor();
211
- * $CKEditor->replaceAll();
212
- * @endcode
213
- *
214
- * Example 2: replace all &lt;textarea class="myClassName"&gt; elements in the page.
215
- * @code
216
- * $CKEditor = new CKEditor();
217
- * $CKEditor->replaceAll( 'myClassName' );
218
- * @endcode
219
- */
220
- function replaceAll($className = null)
221
- {
222
- $out = "";
223
- if (!$this->initialized) {
224
- $out .= $this->init();
225
- }
226
-
227
- $_config = $this->configSettings();
228
-
229
- $js = $this->returnGlobalEvents();
230
- if (empty($_config)) {
231
- if (empty($className)) {
232
- $js .= "CKEDITOR.replaceAll();";
233
- }
234
- else {
235
- $js .= "CKEDITOR.replaceAll('".$className."');";
236
- }
237
- }
238
- else {
239
- $classDetection = "";
240
- $js .= "CKEDITOR.replaceAll( function(textarea, config) {\n";
241
- if (!empty($className)) {
242
- $js .= " var classRegex = new RegExp('(?:^| )' + '". $className ."' + '(?:$| )');\n";
243
- $js .= " if (!classRegex.test(textarea.className))\n";
244
- $js .= " return false;\n";
245
- }
246
- $js .= " CKEDITOR.tools.extend(config, ". $this->jsEncode($_config) .", true);";
247
- $js .= "} );";
248
-
249
- }
250
-
251
- $out .= $this->script($js);
252
-
253
- if (!$this->returnOutput) {
254
- print $out;
255
- $out = "";
256
- }
257
-
258
- return $out;
259
- }
260
-
261
- /**
262
- * Adds event listener.
263
- * Events are fired by %CKEditor in various situations.
264
- *
265
- * @param $event (string) Event name.
266
- * @param $javascriptCode (string) Javascript anonymous function or function name.
267
- *
268
- * Example usage:
269
- * @code
270
- * $CKEditor->addEventHandler('instanceReady', 'function (ev) {
271
- * alert("Loaded: " + ev.editor.name);
272
- * }');
273
- * @endcode
274
- */
275
- function addEventHandler($event, $javascriptCode)
276
- {
277
- if (!isset($this->_events[$event])) {
278
- $this->_events[$event] = array();
279
- }
280
- // Avoid duplicates.
281
- if (!in_array($javascriptCode, $this->_events[$event])) {
282
- $this->_events[$event][] = $javascriptCode;
283
- }
284
- }
285
-
286
- /**
287
- * Clear registered event handlers.
288
- * Note: this function will have no effect on already created editor instances.
289
- *
290
- * @param $event (string) Event name, if not set all event handlers will be removed (optional).
291
- */
292
- function clearEventHandlers($event = null)
293
- {
294
- if (!empty($event)) {
295
- $this->_events[$event] = array();
296
- }
297
- else {
298
- $this->_events = array();
299
- }
300
- }
301
-
302
- /**
303
- * Adds global event listener.
304
- *
305
- * @param $event (string) Event name.
306
- * @param $javascriptCode (string) Javascript anonymous function or function name.
307
- *
308
- * Example usage:
309
- * @code
310
- * $CKEditor->addGlobalEventHandler('dialogDefinition', 'function (ev) {
311
- * alert("Loading dialog: " + ev.data.name);
312
- * }');
313
- * @endcode
314
- */
315
- function addGlobalEventHandler($event, $javascriptCode)
316
- {
317
- if (!isset($this->_globalEvents[$event])) {
318
- $this->_globalEvents[$event] = array();
319
- }
320
- // Avoid duplicates.
321
- if (!in_array($javascriptCode, $this->_globalEvents[$event])) {
322
- $this->_globalEvents[$event][] = $javascriptCode;
323
- }
324
- }
325
-
326
- /**
327
- * Clear registered global event handlers.
328
- * Note: this function will have no effect if the event handler has been already printed/returned.
329
- *
330
- * @param $event (string) Event name, if not set all event handlers will be removed (optional).
331
- */
332
- function clearGlobalEventHandlers($event = null)
333
- {
334
- if (!empty($event)) {
335
- $this->_globalEvents[$event] = array();
336
- }
337
- else {
338
- $this->_globalEvents = array();
339
- }
340
- }
341
-
342
- /**
343
- * Prints javascript code.
344
- * \private
345
- *
346
- * @param string $js
347
- */
348
- function script($js)
349
- {
350
- $out = "<script type=\"text/javascript\">";
351
- $out .= "//<![CDATA[\n";
352
- $out .= $js;
353
- $out .= "\n//]]>";
354
- $out .= "</script>\n";
355
-
356
- return $out;
357
- }
358
-
359
- /**
360
- * Returns the configuration array (global and instance specific settings are merged into one array).
361
- * \private
362
- *
363
- * @param $config (array) The specific configurations to apply to editor instance.
364
- * @param $events (array) Event listeners for editor instance.
365
- */
366
- function configSettings($config = array(), $events = array())
367
- {
368
- $_config = $this->config;
369
- $_events = $this->_events;
370
-
371
- if (is_array($config) && !empty($config)) {
372
- $_config = array_merge($_config, $config);
373
- }
374
-
375
- if (is_array($events) && !empty($events)) {
376
- foreach ($events as $eventName => $code) {
377
- if (!isset($_events[$eventName])) {
378
- $_events[$eventName] = array();
379
- }
380
- if (!in_array($code, $_events[$eventName])) {
381
- $_events[$eventName][] = $code;
382
- }
383
- }
384
- }
385
-
386
- if (!empty($_events)) {
387
- foreach($_events as $eventName => $handlers) {
388
- if (empty($handlers)) {
389
- continue;
390
- }
391
- else if (count($handlers) == 1) {
392
- $_config['on'][$eventName] = '@@'.$handlers[0];
393
- }
394
- else {
395
- $_config['on'][$eventName] = '@@function (ev){';
396
- foreach ($handlers as $handler => $code) {
397
- $_config['on'][$eventName] .= '('.$code.')(ev);';
398
- }
399
- $_config['on'][$eventName] .= '}';
400
- }
401
- }
402
- }
403
-
404
- return $_config;
405
- }
406
-
407
- /**
408
- * Return global event handlers.
409
- * \private
410
- */
411
- function returnGlobalEvents()
412
- {
413
- static $returnedEvents;
414
- $out = "";
415
-
416
- if (!isset($returnedEvents)) {
417
- $returnedEvents = array();
418
- }
419
-
420
- if (!empty($this->_globalEvents)) {
421
- foreach ($this->_globalEvents as $eventName => $handlers) {
422
- foreach ($handlers as $handler => $code) {
423
- if (!isset($returnedEvents[$eventName])) {
424
- $returnedEvents[$eventName] = array();
425
- }
426
- // Return only new events
427
- if (!in_array($code, $returnedEvents[$eventName])) {
428
- $out .= ($code ? "\n" : "") . "CKEDITOR.on('". $eventName ."', $code);";
429
- $returnedEvents[$eventName][] = $code;
430
- }
431
- }
432
- }
433
- }
434
-
435
- return $out;
436
- }
437
-
438
- /**
439
- * Initializes CKEditor (executed only once).
440
- * \private
441
- */
442
- function init()
443
- {
444
- static $initComplete;
445
- $out = "";
446
-
447
- if (!empty($initComplete)) {
448
- return "";
449
- }
450
-
451
- if ($this->initialized) {
452
- $initComplete = true;
453
- return "";
454
- }
455
-
456
- $args = "";
457
- $ckeditorPath = $this->ckeditorPath();
458
-
459
- if (!empty($this->timestamp) && $this->timestamp != "%"."TIMESTAMP%") {
460
- $args = '?t=' . $this->timestamp;
461
- }
462
-
463
- // Skip relative paths...
464
- if (strpos($ckeditorPath, '..') !== 0) {
465
- $out .= $this->script("window.CKEDITOR_BASEPATH='". $ckeditorPath ."';");
466
- }
467
-
468
- $out .= "<script type=\"text/javascript\" src=\"" . $ckeditorPath . 'ckeditor.js' . $args . "\"></script>\n";
469
-
470
- $extraCode = "";
471
- if ($this->timestamp != $this->_timestamp) {
472
- $extraCode .= ($extraCode ? "\n" : "") . "CKEDITOR.timestamp = '". $this->timestamp ."';";
473
- }
474
- if ($extraCode) {
475
- $out .= $this->script($extraCode);
476
- }
477
-
478
- $initComplete = $this->initialized = true;
479
-
480
- return $out;
481
- }
482
-
483
- /**
484
- * Return path to ckeditor.js.
485
- * \private
486
- */
487
- function ckeditorPath()
488
- {
489
- if (!empty($this->basePath)) {
490
- return $this->basePath;
491
- }
492
-
493
- /**
494
- * The absolute pathname of the currently executing script.
495
- * Note: If a script is executed with the CLI, as a relative path, such as file.php or ../file.php,
496
- * $_SERVER['SCRIPT_FILENAME'] will contain the relative path specified by the user.
497
- */
498
- if (isset($_SERVER['SCRIPT_FILENAME'])) {
499
- $realPath = dirname($_SERVER['SCRIPT_FILENAME']);
500
- }
501
- else {
502
- /**
503
- * realpath - Returns canonicalized absolute pathname
504
- */
505
- $realPath = realpath( './' ) ;
506
- }
507
-
508
- /**
509
- * The filename of the currently executing script, relative to the document root.
510
- * For instance, $_SERVER['PHP_SELF'] in a script at the address http://example.com/test.php/foo.bar
511
- * would be /test.php/foo.bar.
512
- */
513
- $selfPath = dirname($_SERVER['PHP_SELF']);
514
- $file = str_replace("\\", "/", __FILE__);
515
-
516
- if (!$selfPath || !$realPath || !$file) {
517
- return "/ckeditor/";
518
- }
519
-
520
- $documentRoot = substr($realPath, 0, strlen($realPath) - strlen($selfPath));
521
- $fileUrl = substr($file, strlen($documentRoot));
522
- $ckeditorUrl = str_replace("ckeditor_php4.php", "", $fileUrl);
523
-
524
- return $ckeditorUrl;
525
- }
526
-
527
- /**
528
- * This little function provides a basic JSON support.
529
- * \private
530
- *
531
- * @param mixed $val
532
- * @return string
533
- */
534
- function jsEncode($val)
535
- {
536
- if (is_null($val)) {
537
- return 'null';
538
- }
539
- if (is_bool($val)) {
540
- return $val ? 'true' : 'false';
541
- }
542
- if (is_int($val)) {
543
- return $val;
544
- }
545
- if (is_float($val)) {
546
- return str_replace(',', '.', $val);
547
- }
548
- if (is_array($val) || is_object($val)) {
549
- if (is_array($val) && (array_keys($val) === range(0,count($val)-1))) {
550
- return '[' . implode(',', array_map(array($this, 'jsEncode'), $val)) . ']';
551
- }
552
- $temp = array();
553
- foreach ($val as $k => $v){
554
- $temp[] = $this->jsEncode("{$k}") . ':' . $this->jsEncode($v);
555
- }
556
- return '{' . implode(',', $temp) . '}';
557
- }
558
- // String otherwise
559
- if (strpos($val, '@@') === 0)
560
- return substr($val, 2);
561
- if (strtoupper(substr($val, 0, 9)) == 'CKEDITOR.')
562
- return $val;
563
-
564
- return '"' . str_replace(array("\\", "/", "\n", "\t", "\r", "\x08", "\x0c", '"'), array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"'), $val) . '"';
565
- }
566
- }
1
+ <?php
2
+ /*
3
+ * Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
4
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
5
+ */
6
+
7
+ /**
8
+ * \brief CKEditor class that can be used to create editor
9
+ * instances in PHP pages on server side.
10
+ * @see http://ckeditor.com
11
+ *
12
+ * Sample usage:
13
+ * @code
14
+ * $CKEditor = new CKEditor();
15
+ * $CKEditor->editor("editor1", "<p>Initial value.</p>");
16
+ * @endcode
17
+ */
18
+ class CKEditor
19
+ {
20
+ /**
21
+ * The version of %CKEditor.
22
+ * \private
23
+ */
24
+ var $version = '3.6.1';
25
+ /**
26
+ * A constant string unique for each release of %CKEditor.
27
+ * \private
28
+ */
29
+ var $_timestamp = 'B5GJ5GG';
30
+
31
+ /**
32
+ * URL to the %CKEditor installation directory (absolute or relative to document root).
33
+ * If not set, CKEditor will try to guess it's path.
34
+ *
35
+ * Example usage:
36
+ * @code
37
+ * $CKEditor->basePath = '/ckeditor/';
38
+ * @endcode
39
+ */
40
+ var $basePath;
41
+ /**
42
+ * An array that holds the global %CKEditor configuration.
43
+ * For the list of available options, see http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html
44
+ *
45
+ * Example usage:
46
+ * @code
47
+ * $CKEditor->config['height'] = 400;
48
+ * // Use @@ at the beggining of a string to ouput it without surrounding quotes.
49
+ * $CKEditor->config['width'] = '@@screen.width * 0.8';
50
+ * @endcode
51
+ */
52
+ var $config = array();
53
+ /**
54
+ * A boolean variable indicating whether CKEditor has been initialized.
55
+ * Set it to true only if you have already included
56
+ * &lt;script&gt; tag loading ckeditor.js in your website.
57
+ */
58
+ var $initialized = false;
59
+ /**
60
+ * Boolean variable indicating whether created code should be printed out or returned by a function.
61
+ *
62
+ * Example 1: get the code creating %CKEditor instance and print it on a page with the "echo" function.
63
+ * @code
64
+ * $CKEditor = new CKEditor();
65
+ * $CKEditor->returnOutput = true;
66
+ * $code = $CKEditor->editor("editor1", "<p>Initial value.</p>");
67
+ * echo "<p>Editor 1:</p>";
68
+ * echo $code;
69
+ * @endcode
70
+ */
71
+ var $returnOutput = false;
72
+ /**
73
+ * An array with textarea attributes.
74
+ *
75
+ * When %CKEditor is created with the editor() method, a HTML &lt;textarea&gt; element is created,
76
+ * it will be displayed to anyone with JavaScript disabled or with incompatible browser.
77
+ */
78
+ var $textareaAttributes = array( "rows" => 8, "cols" => 60 );
79
+ /**
80
+ * A string indicating the creation date of %CKEditor.
81
+ * Do not change it unless you want to force browsers to not use previously cached version of %CKEditor.
82
+ */
83
+ var $timestamp = "B5GJ5GG";
84
+ /**
85
+ * An array that holds event listeners.
86
+ * \private
87
+ */
88
+ var $_events = array();
89
+ /**
90
+ * An array that holds global event listeners.
91
+ * \private
92
+ */
93
+ var $_globalEvents = array();
94
+
95
+ /**
96
+ * Main Constructor.
97
+ *
98
+ * @param $basePath (string) URL to the %CKEditor installation directory (optional).
99
+ */
100
+ function CKEditor($basePath = null) {
101
+ if (!empty($basePath)) {
102
+ $this->basePath = $basePath;
103
+ }
104
+ }
105
+
106
+ /**
107
+ * Creates a %CKEditor instance.
108
+ * In incompatible browsers %CKEditor will downgrade to plain HTML &lt;textarea&gt; element.
109
+ *
110
+ * @param $name (string) Name of the %CKEditor instance (this will be also the "name" attribute of textarea element).
111
+ * @param $value (string) Initial value (optional).
112
+ * @param $config (array) The specific configurations to apply to this editor instance (optional).
113
+ * @param $events (array) Event listeners for this editor instance (optional).
114
+ *
115
+ * Example usage:
116
+ * @code
117
+ * $CKEditor = new CKEditor();
118
+ * $CKEditor->editor("field1", "<p>Initial value.</p>");
119
+ * @endcode
120
+ *
121
+ * Advanced example:
122
+ * @code
123
+ * $CKEditor = new CKEditor();
124
+ * $config = array();
125
+ * $config['toolbar'] = array(
126
+ * array( 'Source', '-', 'Bold', 'Italic', 'Underline', 'Strike' ),
127
+ * array( 'Image', 'Link', 'Unlink', 'Anchor' )
128
+ * );
129
+ * $events['instanceReady'] = 'function (ev) {
130
+ * alert("Loaded: " + ev.editor.name);
131
+ * }';
132
+ * $CKEditor->editor("field1", "<p>Initial value.</p>", $config, $events);
133
+ * @endcode
134
+ */
135
+ function editor($name, $value = "", $config = array(), $events = array())
136
+ {
137
+ $attr = "";
138
+ foreach ($this->textareaAttributes as $key => $val) {
139
+ $attr.= " " . $key . '="' . str_replace('"', '&quot;', $val) . '"';
140
+ }
141
+ $out = "<textarea name=\"" . $name . "\"" . $attr . ">" . htmlspecialchars($value) . "</textarea>\n";
142
+ if (!$this->initialized) {
143
+ $out .= $this->init();
144
+ }
145
+
146
+ $_config = $this->configSettings($config, $events);
147
+
148
+ $js = $this->returnGlobalEvents();
149
+ if (!empty($_config))
150
+ $js .= "CKEDITOR.replace('".$name."', ".$this->jsEncode($_config).");";
151
+ else
152
+ $js .= "CKEDITOR.replace('".$name."');";
153
+
154
+ $out .= $this->script($js);
155
+
156
+ if (!$this->returnOutput) {
157
+ print $out;
158
+ $out = "";
159
+ }
160
+
161
+ return $out;
162
+ }
163
+
164
+ /**
165
+ * Replaces a &lt;textarea&gt; with a %CKEditor instance.
166
+ *
167
+ * @param $id (string) The id or name of textarea element.
168
+ * @param $config (array) The specific configurations to apply to this editor instance (optional).
169
+ * @param $events (array) Event listeners for this editor instance (optional).
170
+ *
171
+ * Example 1: adding %CKEditor to &lt;textarea name="article"&gt;&lt;/textarea&gt; element:
172
+ * @code
173
+ * $CKEditor = new CKEditor();
174
+ * $CKEditor->replace("article");
175
+ * @endcode
176
+ */
177
+ function replace($id, $config = array(), $events = array())
178
+ {
179
+ $out = "";
180
+ if (!$this->initialized) {
181
+ $out .= $this->init();
182
+ }
183
+
184
+ $_config = $this->configSettings($config, $events);
185
+
186
+ $js = $this->returnGlobalEvents();
187
+ if (!empty($_config)) {
188
+ $js .= "CKEDITOR.replace('".$id."', ".$this->jsEncode($_config).");";
189
+ }
190
+ else {
191
+ $js .= "CKEDITOR.replace('".$id."');";
192
+ }
193
+ $out .= $this->script($js);
194
+
195
+ if (!$this->returnOutput) {
196
+ print $out;
197
+ $out = "";
198
+ }
199
+
200
+ return $out;
201
+ }
202
+
203
+ /**
204
+ * Replace all &lt;textarea&gt; elements available in the document with editor instances.
205
+ *
206
+ * @param $className (string) If set, replace all textareas with class className in the page.
207
+ *
208
+ * Example 1: replace all &lt;textarea&gt; elements in the page.
209
+ * @code
210
+ * $CKEditor = new CKEditor();
211
+ * $CKEditor->replaceAll();
212
+ * @endcode
213
+ *
214
+ * Example 2: replace all &lt;textarea class="myClassName"&gt; elements in the page.
215
+ * @code
216
+ * $CKEditor = new CKEditor();
217
+ * $CKEditor->replaceAll( 'myClassName' );
218
+ * @endcode
219
+ */
220
+ function replaceAll($className = null)
221
+ {
222
+ $out = "";
223
+ if (!$this->initialized) {
224
+ $out .= $this->init();
225
+ }
226
+
227
+ $_config = $this->configSettings();
228
+
229
+ $js = $this->returnGlobalEvents();
230
+ if (empty($_config)) {
231
+ if (empty($className)) {
232
+ $js .= "CKEDITOR.replaceAll();";
233
+ }
234
+ else {
235
+ $js .= "CKEDITOR.replaceAll('".$className."');";
236
+ }
237
+ }
238
+ else {
239
+ $classDetection = "";
240
+ $js .= "CKEDITOR.replaceAll( function(textarea, config) {\n";
241
+ if (!empty($className)) {
242
+ $js .= " var classRegex = new RegExp('(?:^| )' + '". $className ."' + '(?:$| )');\n";
243
+ $js .= " if (!classRegex.test(textarea.className))\n";
244
+ $js .= " return false;\n";
245
+ }
246
+ $js .= " CKEDITOR.tools.extend(config, ". $this->jsEncode($_config) .", true);";
247
+ $js .= "} );";
248
+
249
+ }
250
+
251
+ $out .= $this->script($js);
252
+
253
+ if (!$this->returnOutput) {
254
+ print $out;
255
+ $out = "";
256
+ }
257
+
258
+ return $out;
259
+ }
260
+
261
+ /**
262
+ * Adds event listener.
263
+ * Events are fired by %CKEditor in various situations.
264
+ *
265
+ * @param $event (string) Event name.
266
+ * @param $javascriptCode (string) Javascript anonymous function or function name.
267
+ *
268
+ * Example usage:
269
+ * @code
270
+ * $CKEditor->addEventHandler('instanceReady', 'function (ev) {
271
+ * alert("Loaded: " + ev.editor.name);
272
+ * }');
273
+ * @endcode
274
+ */
275
+ function addEventHandler($event, $javascriptCode)
276
+ {
277
+ if (!isset($this->_events[$event])) {
278
+ $this->_events[$event] = array();
279
+ }
280
+ // Avoid duplicates.
281
+ if (!in_array($javascriptCode, $this->_events[$event])) {
282
+ $this->_events[$event][] = $javascriptCode;
283
+ }
284
+ }
285
+
286
+ /**
287
+ * Clear registered event handlers.
288
+ * Note: this function will have no effect on already created editor instances.
289
+ *
290
+ * @param $event (string) Event name, if not set all event handlers will be removed (optional).
291
+ */
292
+ function clearEventHandlers($event = null)
293
+ {
294
+ if (!empty($event)) {
295
+ $this->_events[$event] = array();
296
+ }
297
+ else {
298
+ $this->_events = array();
299
+ }
300
+ }
301
+
302
+ /**
303
+ * Adds global event listener.
304
+ *
305
+ * @param $event (string) Event name.
306
+ * @param $javascriptCode (string) Javascript anonymous function or function name.
307
+ *
308
+ * Example usage:
309
+ * @code
310
+ * $CKEditor->addGlobalEventHandler('dialogDefinition', 'function (ev) {
311
+ * alert("Loading dialog: " + ev.data.name);
312
+ * }');
313
+ * @endcode
314
+ */
315
+ function addGlobalEventHandler($event, $javascriptCode)
316
+ {
317
+ if (!isset($this->_globalEvents[$event])) {
318
+ $this->_globalEvents[$event] = array();
319
+ }
320
+ // Avoid duplicates.
321
+ if (!in_array($javascriptCode, $this->_globalEvents[$event])) {
322
+ $this->_globalEvents[$event][] = $javascriptCode;
323
+ }
324
+ }
325
+
326
+ /**
327
+ * Clear registered global event handlers.
328
+ * Note: this function will have no effect if the event handler has been already printed/returned.
329
+ *
330
+ * @param $event (string) Event name, if not set all event handlers will be removed (optional).
331
+ */
332
+ function clearGlobalEventHandlers($event = null)
333
+ {
334
+ if (!empty($event)) {
335
+ $this->_globalEvents[$event] = array();
336
+ }
337
+ else {
338
+ $this->_globalEvents = array();
339
+ }
340
+ }
341
+
342
+ /**
343
+ * Prints javascript code.
344
+ * \private
345
+ *
346
+ * @param string $js
347
+ */
348
+ function script($js)
349
+ {
350
+ $out = "<script type=\"text/javascript\">";
351
+ $out .= "//<![CDATA[\n";
352
+ $out .= $js;
353
+ $out .= "\n//]]>";
354
+ $out .= "</script>\n";
355
+
356
+ return $out;
357
+ }
358
+
359
+ /**
360
+ * Returns the configuration array (global and instance specific settings are merged into one array).
361
+ * \private
362
+ *
363
+ * @param $config (array) The specific configurations to apply to editor instance.
364
+ * @param $events (array) Event listeners for editor instance.
365
+ */
366
+ function configSettings($config = array(), $events = array())
367
+ {
368
+ $_config = $this->config;
369
+ $_events = $this->_events;
370
+
371
+ if (is_array($config) && !empty($config)) {
372
+ $_config = array_merge($_config, $config);
373
+ }
374
+
375
+ if (is_array($events) && !empty($events)) {
376
+ foreach ($events as $eventName => $code) {
377
+ if (!isset($_events[$eventName])) {
378
+ $_events[$eventName] = array();
379
+ }
380
+ if (!in_array($code, $_events[$eventName])) {
381
+ $_events[$eventName][] = $code;
382
+ }
383
+ }
384
+ }
385
+
386
+ if (!empty($_events)) {
387
+ foreach($_events as $eventName => $handlers) {
388
+ if (empty($handlers)) {
389
+ continue;
390
+ }
391
+ else if (count($handlers) == 1) {
392
+ $_config['on'][$eventName] = '@@'.$handlers[0];
393
+ }
394
+ else {
395
+ $_config['on'][$eventName] = '@@function (ev){';
396
+ foreach ($handlers as $handler => $code) {
397
+ $_config['on'][$eventName] .= '('.$code.')(ev);';
398
+ }
399
+ $_config['on'][$eventName] .= '}';
400
+ }
401
+ }
402
+ }
403
+
404
+ return $_config;
405
+ }
406
+
407
+ /**
408
+ * Return global event handlers.
409
+ * \private
410
+ */
411
+ function returnGlobalEvents()
412
+ {
413
+ static $returnedEvents;
414
+ $out = "";
415
+
416
+ if (!isset($returnedEvents)) {
417
+ $returnedEvents = array();
418
+ }
419
+
420
+ if (!empty($this->_globalEvents)) {
421
+ foreach ($this->_globalEvents as $eventName => $handlers) {
422
+ foreach ($handlers as $handler => $code) {
423
+ if (!isset($returnedEvents[$eventName])) {
424
+ $returnedEvents[$eventName] = array();
425
+ }
426
+ // Return only new events
427
+ if (!in_array($code, $returnedEvents[$eventName])) {
428
+ $out .= ($code ? "\n" : "") . "CKEDITOR.on('". $eventName ."', $code);";
429
+ $returnedEvents[$eventName][] = $code;
430
+ }
431
+ }
432
+ }
433
+ }
434
+
435
+ return $out;
436
+ }
437
+
438
+ /**
439
+ * Initializes CKEditor (executed only once).
440
+ * \private
441
+ */
442
+ function init()
443
+ {
444
+ static $initComplete;
445
+ $out = "";
446
+
447
+ if (!empty($initComplete)) {
448
+ return "";
449
+ }
450
+
451
+ if ($this->initialized) {
452
+ $initComplete = true;
453
+ return "";
454
+ }
455
+
456
+ $args = "";
457
+ $ckeditorPath = $this->ckeditorPath();
458
+
459
+ if (!empty($this->timestamp) && $this->timestamp != "%"."TIMESTAMP%") {
460
+ $args = '?t=' . $this->timestamp;
461
+ }
462
+
463
+ // Skip relative paths...
464
+ if (strpos($ckeditorPath, '..') !== 0) {
465
+ $out .= $this->script("window.CKEDITOR_BASEPATH='". $ckeditorPath ."';");
466
+ }
467
+
468
+ $out .= "<script type=\"text/javascript\" src=\"" . $ckeditorPath . 'ckeditor.js' . $args . "\"></script>\n";
469
+
470
+ $extraCode = "";
471
+ if ($this->timestamp != $this->_timestamp) {
472
+ $extraCode .= ($extraCode ? "\n" : "") . "CKEDITOR.timestamp = '". $this->timestamp ."';";
473
+ }
474
+ if ($extraCode) {
475
+ $out .= $this->script($extraCode);
476
+ }
477
+
478
+ $initComplete = $this->initialized = true;
479
+
480
+ return $out;
481
+ }
482
+
483
+ /**
484
+ * Return path to ckeditor.js.
485
+ * \private
486
+ */
487
+ function ckeditorPath()
488
+ {
489
+ if (!empty($this->basePath)) {
490
+ return $this->basePath;
491
+ }
492
+
493
+ /**
494
+ * The absolute pathname of the currently executing script.
495
+ * Note: If a script is executed with the CLI, as a relative path, such as file.php or ../file.php,
496
+ * $_SERVER['SCRIPT_FILENAME'] will contain the relative path specified by the user.
497
+ */
498
+ if (isset($_SERVER['SCRIPT_FILENAME'])) {
499
+ $realPath = dirname($_SERVER['SCRIPT_FILENAME']);
500
+ }
501
+ else {
502
+ /**
503
+ * realpath - Returns canonicalized absolute pathname
504
+ */
505
+ $realPath = realpath( './' ) ;
506
+ }
507
+
508
+ /**
509
+ * The filename of the currently executing script, relative to the document root.
510
+ * For instance, $_SERVER['PHP_SELF'] in a script at the address http://example.com/test.php/foo.bar
511
+ * would be /test.php/foo.bar.
512
+ */
513
+ $selfPath = dirname($_SERVER['PHP_SELF']);
514
+ $file = str_replace("\\", "/", __FILE__);
515
+
516
+ if (!$selfPath || !$realPath || !$file) {
517
+ return "/ckeditor/";
518
+ }
519
+
520
+ $documentRoot = substr($realPath, 0, strlen($realPath) - strlen($selfPath));
521
+ $fileUrl = substr($file, strlen($documentRoot));
522
+ $ckeditorUrl = str_replace("ckeditor_php4.php", "", $fileUrl);
523
+
524
+ return $ckeditorUrl;
525
+ }
526
+
527
+ /**
528
+ * This little function provides a basic JSON support.
529
+ * \private
530
+ *
531
+ * @param mixed $val
532
+ * @return string
533
+ */
534
+ function jsEncode($val)
535
+ {
536
+ if (is_null($val)) {
537
+ return 'null';
538
+ }
539
+ if (is_bool($val)) {
540
+ return $val ? 'true' : 'false';
541
+ }
542
+ if (is_int($val)) {
543
+ return $val;
544
+ }
545
+ if (is_float($val)) {
546
+ return str_replace(',', '.', $val);
547
+ }
548
+ if (is_array($val) || is_object($val)) {
549
+ if (is_array($val) && (array_keys($val) === range(0,count($val)-1))) {
550
+ return '[' . implode(',', array_map(array($this, 'jsEncode'), $val)) . ']';
551
+ }
552
+ $temp = array();
553
+ foreach ($val as $k => $v){
554
+ $temp[] = $this->jsEncode("{$k}") . ':' . $this->jsEncode($v);
555
+ }
556
+ return '{' . implode(',', $temp) . '}';
557
+ }
558
+ // String otherwise
559
+ if (strpos($val, '@@') === 0)
560
+ return substr($val, 2);
561
+ if (strtoupper(substr($val, 0, 9)) == 'CKEDITOR.')
562
+ return $val;
563
+
564
+ return '"' . str_replace(array("\\", "/", "\n", "\t", "\r", "\x08", "\x0c", '"'), array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"'), $val) . '"';
565
+ }
566
+ }