PageRenderTime 42ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/inc/toolbar.php

https://gitlab.com/michield/dokuwiki
PHP | 255 lines | 222 code | 12 blank | 21 comment | 2 complexity | 3a065c2f5d7d25c3399fea2c4f930bde MD5 | raw file
  1. <?php
  2. /**
  3. * Editing toolbar functions
  4. *
  5. * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
  6. * @author Andreas Gohr <andi@splitbrain.org>
  7. */
  8. if(!defined('DOKU_INC')) die('meh.');
  9. /**
  10. * Prepares and prints an JavaScript array with all toolbar buttons
  11. *
  12. * @emits TOOLBAR_DEFINE
  13. * @param string $varname Name of the JS variable to fill
  14. * @author Andreas Gohr <andi@splitbrain.org>
  15. */
  16. function toolbar_JSdefines($varname){
  17. global $lang;
  18. $menu = array();
  19. $evt = new Doku_Event('TOOLBAR_DEFINE', $menu);
  20. if ($evt->advise_before()){
  21. // build button array
  22. $menu = array_merge($menu, array(
  23. array(
  24. 'type' => 'format',
  25. 'title' => $lang['qb_bold'],
  26. 'icon' => 'bold.png',
  27. 'key' => 'b',
  28. 'open' => '**',
  29. 'close' => '**',
  30. 'block' => false
  31. ),
  32. array(
  33. 'type' => 'format',
  34. 'title' => $lang['qb_italic'],
  35. 'icon' => 'italic.png',
  36. 'key' => 'i',
  37. 'open' => '//',
  38. 'close' => '//',
  39. 'block' => false
  40. ),
  41. array(
  42. 'type' => 'format',
  43. 'title' => $lang['qb_underl'],
  44. 'icon' => 'underline.png',
  45. 'key' => 'u',
  46. 'open' => '__',
  47. 'close' => '__',
  48. 'block' => false
  49. ),
  50. array(
  51. 'type' => 'format',
  52. 'title' => $lang['qb_code'],
  53. 'icon' => 'mono.png',
  54. 'key' => 'c',
  55. 'open' => "''",
  56. 'close' => "''",
  57. 'block' => false
  58. ),
  59. array(
  60. 'type' => 'format',
  61. 'title' => $lang['qb_strike'],
  62. 'icon' => 'strike.png',
  63. 'key' => 'd',
  64. 'open' => '<del>',
  65. 'close' => '</del>',
  66. 'block' => false
  67. ),
  68. array(
  69. 'type' => 'autohead',
  70. 'title' => $lang['qb_hequal'],
  71. 'icon' => 'hequal.png',
  72. 'key' => '8',
  73. 'text' => $lang['qb_h'],
  74. 'mod' => 0,
  75. 'block' => true
  76. ),
  77. array(
  78. 'type' => 'autohead',
  79. 'title' => $lang['qb_hminus'],
  80. 'icon' => 'hminus.png',
  81. 'key' => '9',
  82. 'text' => $lang['qb_h'],
  83. 'mod' => 1,
  84. 'block' => true
  85. ),
  86. array(
  87. 'type' => 'autohead',
  88. 'title' => $lang['qb_hplus'],
  89. 'icon' => 'hplus.png',
  90. 'key' => '0',
  91. 'text' => $lang['qb_h'],
  92. 'mod' => -1,
  93. 'block' => true
  94. ),
  95. array(
  96. 'type' => 'picker',
  97. 'title' => $lang['qb_hs'],
  98. 'icon' => 'h.png',
  99. 'class' => 'pk_hl',
  100. 'list' => array(
  101. array(
  102. 'type' => 'format',
  103. 'title' => $lang['qb_h1'],
  104. 'icon' => 'h1.png',
  105. 'key' => '1',
  106. 'open' => '====== ',
  107. 'close' => ' ======\n',
  108. ),
  109. array(
  110. 'type' => 'format',
  111. 'title' => $lang['qb_h2'],
  112. 'icon' => 'h2.png',
  113. 'key' => '2',
  114. 'open' => '===== ',
  115. 'close' => ' =====\n',
  116. ),
  117. array(
  118. 'type' => 'format',
  119. 'title' => $lang['qb_h3'],
  120. 'icon' => 'h3.png',
  121. 'key' => '3',
  122. 'open' => '==== ',
  123. 'close' => ' ====\n',
  124. ),
  125. array(
  126. 'type' => 'format',
  127. 'title' => $lang['qb_h4'],
  128. 'icon' => 'h4.png',
  129. 'key' => '4',
  130. 'open' => '=== ',
  131. 'close' => ' ===\n',
  132. ),
  133. array(
  134. 'type' => 'format',
  135. 'title' => $lang['qb_h5'],
  136. 'icon' => 'h5.png',
  137. 'key' => '5',
  138. 'open' => '== ',
  139. 'close' => ' ==\n',
  140. ),
  141. ),
  142. 'block' => true
  143. ),
  144. array(
  145. 'type' => 'linkwiz',
  146. 'title' => $lang['qb_link'],
  147. 'icon' => 'link.png',
  148. 'key' => 'l',
  149. 'open' => '[[',
  150. 'close' => ']]',
  151. 'block' => false
  152. ),
  153. array(
  154. 'type' => 'format',
  155. 'title' => $lang['qb_extlink'],
  156. 'icon' => 'linkextern.png',
  157. 'open' => '[[',
  158. 'close' => ']]',
  159. 'sample' => 'http://example.com|'.$lang['qb_extlink'],
  160. 'block' => false
  161. ),
  162. array(
  163. 'type' => 'formatln',
  164. 'title' => $lang['qb_ol'],
  165. 'icon' => 'ol.png',
  166. 'open' => ' - ',
  167. 'close' => '',
  168. 'key' => '-',
  169. 'block' => true
  170. ),
  171. array(
  172. 'type' => 'formatln',
  173. 'title' => $lang['qb_ul'],
  174. 'icon' => 'ul.png',
  175. 'open' => ' * ',
  176. 'close' => '',
  177. 'key' => '.',
  178. 'block' => true
  179. ),
  180. array(
  181. 'type' => 'insert',
  182. 'title' => $lang['qb_hr'],
  183. 'icon' => 'hr.png',
  184. 'insert' => '\n----\n',
  185. 'block' => true
  186. ),
  187. array(
  188. 'type' => 'mediapopup',
  189. 'title' => $lang['qb_media'],
  190. 'icon' => 'image.png',
  191. 'url' => 'lib/exe/mediamanager.php?ns=',
  192. 'name' => 'mediaselect',
  193. 'options'=> 'width=750,height=500,left=20,top=20,scrollbars=yes,resizable=yes',
  194. 'block' => false
  195. ),
  196. array(
  197. 'type' => 'picker',
  198. 'title' => $lang['qb_smileys'],
  199. 'icon' => 'smiley.png',
  200. 'list' => getSmileys(),
  201. 'icobase'=> 'smileys',
  202. 'block' => false
  203. ),
  204. array(
  205. 'type' => 'picker',
  206. 'title' => $lang['qb_chars'],
  207. 'icon' => 'chars.png',
  208. 'list' => explode(' ','À à Á á  â à ã Ä ä Ǎ ǎ Ă ă Å å Ā ā Ą ą Æ æ Ć ć Ç ç Č č Ĉ ĉ Ċ ċ Ð đ ð Ď ď È è É é Ê ê Ë ë Ě ě Ē ē Ė ė Ę ę Ģ ģ Ĝ ĝ Ğ ğ Ġ ġ Ĥ ĥ Ì ì Í í Î î Ï ï Ǐ ǐ Ī ī İ ı Į į Ĵ ĵ Ķ ķ Ĺ ĺ Ļ ļ Ľ ľ Ł ł Ŀ ŀ Ń ń Ñ ñ Ņ ņ Ň ň Ò ò Ó ó Ô ô Õ õ Ö ö Ǒ ǒ Ō ō Ő ő Œ œ Ø ø Ŕ ŕ Ŗ ŗ Ř ř Ś ś Ş ş Š š Ŝ ŝ Ţ ţ Ť ť Ù ù Ú ú Û û Ü ü Ǔ ǔ Ŭ ŭ Ū ū Ů ů ǖ ǘ ǚ ǜ Ų ų Ű ű Ŵ ŵ Ý ý Ÿ ÿ Ŷ ŷ Ź ź Ž ž Ż ż Þ þ ß Ħ ħ ¿ ¡ ¢ £ ¤ ¥ € ¦ § ª ¬ ¯ ° ± ÷ ‰ ¼ ½ ¾ ¹ ² ³ µ ¶ † ‡ · • º ∀ ∂ ∃ Ə ə ∅ ∇ ∈ ∉ ∋ ∏ ∑ ‾ − ∗ × ⁄ √ ∝ ∞ ∠ ∧ ∨ ∩ ∪ ∫ ∴ ∼ ≅ ≈ ≠ ≡ ≤ ≥ ⊂ ⊃ ⊄ ⊆ ⊇ ⊕ ⊗ ⊥ ⋅ ◊ ℘ ℑ ℜ ℵ ♠ ♣ ♥ ♦ α β Γ γ Δ δ ε ζ η Θ θ ι κ Λ λ μ Ξ ξ Π π ρ Σ σ Τ τ υ Φ φ χ Ψ ψ Ω ω ★ ☆ ☎ ☚ ☛ ☜ ☝ ☞ ☟ ☹ ☺ ✔ ✘ „ “ ” ‚ ‘ ’ « » ‹ › — – … ← ↑ → ↓ ↔ ⇐ ⇑ ⇒ ⇓ ⇔ © ™ ® ′ ″ [ ] { } ~ ( ) % § $ # | @'),
  209. 'block' => false
  210. ),
  211. array(
  212. 'type' => 'signature',
  213. 'title' => $lang['qb_sig'],
  214. 'icon' => 'sig.png',
  215. 'key' => 'y',
  216. 'block' => false
  217. ),
  218. ));
  219. } // end event TOOLBAR_DEFINE default action
  220. $evt->advise_after();
  221. unset($evt);
  222. // use JSON to build the JavaScript array
  223. $json = new JSON();
  224. print "var $varname = ".$json->encode($menu).";\n";
  225. }
  226. /**
  227. * prepares the signature string as configured in the config
  228. *
  229. * @author Andreas Gohr <andi@splitbrain.org>
  230. */
  231. function toolbar_signature(){
  232. global $conf;
  233. global $INFO;
  234. $sig = $conf['signature'];
  235. $sig = dformat(null,$sig);
  236. $sig = str_replace('@USER@',$_SERVER['REMOTE_USER'],$sig);
  237. $sig = str_replace('@NAME@',$INFO['userinfo']['name'],$sig);
  238. $sig = str_replace('@MAIL@',$INFO['userinfo']['mail'],$sig);
  239. $sig = str_replace('@DATE@',dformat(),$sig);
  240. $sig = str_replace('\\\\n','\\n',addslashes($sig));
  241. return $sig;
  242. }
  243. //Setup VIM: ex: et ts=4 :