3 * Editing toolbar functions
5 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
6 * @author Andreas Gohr <andi@splitbrain.org>
7 */use dokuwiki\Extension\Event
;
10 * Prepares and prints an JavaScript array with all toolbar buttons
12 * @emits TOOLBAR_DEFINE
13 * @param string $varname Name of the JS variable to fill
14 * @author Andreas Gohr <andi@splitbrain.org>
16 function toolbar_JSdefines($varname){
21 $evt = new Event('TOOLBAR_DEFINE', $menu);
22 if ($evt->advise_before()){
25 $menu = array_merge($menu, array(
28 'title' => $lang['qb_bold'],
37 'title' => $lang['qb_italic'],
38 'icon' => 'italic.png',
46 'title' => $lang['qb_underl'],
47 'icon' => 'underline.png',
55 'title' => $lang['qb_code'],
64 'title' => $lang['qb_strike'],
65 'icon' => 'strike.png',
74 'title' => $lang['qb_hequal'],
75 'icon' => 'hequal.png',
77 'text' => $lang['qb_h'],
83 'title' => $lang['qb_hminus'],
84 'icon' => 'hminus.png',
86 'text' => $lang['qb_h'],
92 'title' => $lang['qb_hplus'],
93 'icon' => 'hplus.png',
95 'text' => $lang['qb_h'],
102 'title' => $lang['qb_hs'],
108 'title' => $lang['qb_h1'],
112 'close' => ' ======\n',
116 'title' => $lang['qb_h2'],
120 'close' => ' =====\n',
124 'title' => $lang['qb_h3'],
128 'close' => ' ====\n',
132 'title' => $lang['qb_h4'],
140 'title' => $lang['qb_h5'],
152 'title' => $lang['qb_link'],
153 'icon' => 'link.png',
161 'title' => $lang['qb_extlink'],
162 'icon' => 'linkextern.png',
165 'sample' => 'http://example.com|'.$lang['qb_extlink'],
169 'type' => 'formatln',
170 'title' => $lang['qb_ol'],
178 'type' => 'formatln',
179 'title' => $lang['qb_ul'],
188 'title' => $lang['qb_hr'],
190 'insert' => '\n----\n',
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',
204 'title' => $lang['qb_smileys'],
205 'icon' => 'smiley.png',
206 'list' => getSmileys(),
207 'icobase'=> 'smileys',
212 'title' => $lang['qb_chars'],
213 'icon' => 'chars.png',
215 'À', 'à', 'Á', 'á', 'Â', 'â', 'Ã', 'ã', 'Ä', 'ä', 'Ǎ', 'ǎ', 'Ă', 'ă', 'Å', 'å',
216 'Ā', 'ā', 'Ą', 'ą', 'Æ', 'æ', 'Ć', 'ć', 'Ç', 'ç', 'Č', 'č', 'Ĉ', 'ĉ', 'Ċ', 'ċ',
217 'Ð', 'đ', 'ð', 'Ď', 'ď', 'È', 'è', 'É', 'é', 'Ê', 'ê', 'Ë', 'ë', 'Ě', 'ě', 'Ē',
218 'ē', 'Ė', 'ė', 'Ę', 'ę', 'Ģ', 'ģ', 'Ĝ', 'ĝ', 'Ğ', 'ğ', 'Ġ', 'ġ', 'Ĥ', 'ĥ', 'Ì',
219 'ì', 'Í', 'í', 'Î', 'î', 'Ï', 'ï', 'Ǐ', 'ǐ', 'Ī', 'ī', 'İ', 'ı', 'Į', 'į', 'Ĵ',
220 'ĵ', 'Ķ', 'ķ', 'Ĺ', 'ĺ', 'Ļ', 'ļ', 'Ľ', 'ľ', 'Ł', 'ł', 'Ŀ', 'ŀ', 'Ń', 'ń', 'Ñ',
221 'ñ', 'Ņ', 'ņ', 'Ň', 'ň', 'Ò', 'ò', 'Ó', 'ó', 'Ô', 'ô', 'Õ', 'õ', 'Ö', 'ö', 'Ǒ',
222 'ǒ', 'Ō', 'ō', 'Ő', 'ő', 'Œ', 'œ', 'Ø', 'ø', 'Ŕ', 'ŕ', 'Ŗ', 'ŗ', 'Ř', 'ř', 'Ś',
223 'ś', 'Ş', 'ş', 'Š', 'š', 'Ŝ', 'ŝ', 'Ţ', 'ţ', 'Ť', 'ť', 'Ù', 'ù', 'Ú', 'ú', 'Û',
224 'û', 'Ü', 'ü', 'Ǔ', 'ǔ', 'Ŭ', 'ŭ', 'Ū', 'ū', 'Ů', 'ů', 'ǖ', 'ǘ', 'ǚ', 'ǜ', 'Ų',
225 'ų', 'Ű', 'ű', 'Ŵ', 'ŵ', 'Ý', 'ý', 'Ÿ', 'ÿ', 'Ŷ', 'ŷ', 'Ź', 'ź', 'Ž', 'ž', 'Ż',
226 'ż', 'Þ', 'þ', 'ß', 'Ħ', 'ħ', '¿', '¡', '¢', '£', '¤', '¥', '€', '¦', '§', 'ª',
227 '¬', '¯', '°', '±', '÷', '‰', '¼', '½', '¾', '¹', '²', '³', 'µ', '¶', '†', '‡',
228 '·', '•', 'º', '∀', '∂', '∃', 'Ə', 'ə', '∅', '∇', '∈', '∉', '∋', '∏', '∑', '‾',
229 '−', '∗', '×', '⁄', '√', '∝', '∞', '∠', '∧', '∨', '∩', '∪', '∫', '∴', '∼', '≅',
230 '≈', '≠', '≡', '≤', '≥', '⊂', '⊃', '⊄', '⊆', '⊇', '⊕', '⊗', '⊥', '⋅', '◊', '℘',
231 'ℑ', 'ℜ', 'ℵ', '♠', '♣', '♥', '♦', 'α', 'β', 'Γ', 'γ', 'Δ', 'δ', 'ε', 'ζ', 'η',
232 'Θ', 'θ', 'ι', 'κ', 'Λ', 'λ', 'μ', 'Ξ', 'ξ', 'Π', 'π', 'ρ', 'Σ', 'σ', 'Τ', 'τ',
233 'υ', 'Φ', 'φ', 'χ', 'Ψ', 'ψ', 'Ω', 'ω', '★', '☆', '☎', '☚', '☛', '☜', '☝', '☞',
234 '☟', '☹', '☺', '✔', '✘', '„', '“', '”', '‚', '‘', '’', '«', '»', '‹', '›', '—',
235 '–', '…', '←', '↑', '→', '↓', '↔', '⇐', '⇑', '⇒', '⇓', '⇔', '©', '™', '®', '′',
236 '″', '[', ']', '{', '}', '~', '(', ')', '%', '§', '$', '#', '|', '@'
241 'type' => 'signature',
242 'title' => $lang['qb_sig'],
248 } // end event TOOLBAR_DEFINE default action
249 $evt->advise_after();
252 // use JSON to build the JavaScript array
253 print "var $varname = ".json_encode($menu).";\n";
257 * prepares the signature string as configured in the config
259 * @author Andreas Gohr <andi@splitbrain.org>
261 function toolbar_signature(){
264 /** @var Input $INPUT */
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);
273 $sig = str_replace('@NAME@', $INFO['userinfo']['name'] ??
"", $sig);
274 $sig = str_replace('@MAIL@', $INFO['userinfo']['mail'] ??
"", $sig);
276 $sig = str_replace('@DATE@',dformat(),$sig);
277 $sig = str_replace('\\\\n','\\n',$sig);
278 return json_encode($sig);
281 //Setup VIM: ex: et ts=4 :