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 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 */ 16function toolbar_JSdefines($varname){ 17 global $lang; 18 19 $menu = array(); 20 21 $evt = new Doku_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 $json = new JSON(); 254 print "var $varname = ".$json->encode($menu).";\n"; 255} 256 257/** 258 * prepares the signature string as configured in the config 259 * 260 * @author Andreas Gohr <andi@splitbrain.org> 261 */ 262function toolbar_signature(){ 263 global $conf; 264 global $INFO; 265 /** @var Input $INPUT */ 266 global $INPUT; 267 268 $sig = $conf['signature']; 269 $sig = dformat(null,$sig); 270 $sig = str_replace('@USER@',$INPUT->server->str('REMOTE_USER'),$sig); 271 $sig = str_replace('@NAME@',$INFO['userinfo']['name'],$sig); 272 $sig = str_replace('@MAIL@',$INFO['userinfo']['mail'],$sig); 273 $sig = str_replace('@DATE@',dformat(),$sig); 274 $sig = str_replace('\\\\n','\\n',addslashes($sig)); 275 return $sig; 276} 277 278//Setup VIM: ex: et ts=4 : 279