/web/wikidocs/inc/toolbar.php

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