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