120d062caSAndreas Gohr<?php 220d062caSAndreas Gohr/** 320d062caSAndreas Gohr * Editing toolbar functions 420d062caSAndreas Gohr * 520d062caSAndreas Gohr * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 620d062caSAndreas Gohr * @author Andreas Gohr <andi@splitbrain.org> 7e1d9dcc8SAndreas Gohr */use dokuwiki\Extension\Event; 820d062caSAndreas Gohr 920d062caSAndreas Gohr/** 1020d062caSAndreas Gohr * Prepares and prints an JavaScript array with all toolbar buttons 1120d062caSAndreas Gohr * 12db959ae3SAndreas Gohr * @emits TOOLBAR_DEFINE 1320d062caSAndreas Gohr * @param string $varname Name of the JS variable to fill 1420d062caSAndreas Gohr * @author Andreas Gohr <andi@splitbrain.org> 1520d062caSAndreas Gohr */ 1620d062caSAndreas Gohrfunction toolbar_JSdefines($varname){ 1720d062caSAndreas Gohr global $lang; 1820d062caSAndreas Gohr 198b3b5ebbSEsther Brunner $menu = array(); 208b3b5ebbSEsther Brunner 21e1d9dcc8SAndreas Gohr $evt = new Event('TOOLBAR_DEFINE', $menu); 228b3b5ebbSEsther Brunner if ($evt->advise_before()){ 238b3b5ebbSEsther Brunner 2420d062caSAndreas Gohr // build button array 258b3b5ebbSEsther Brunner $menu = array_merge($menu, array( 2620d062caSAndreas Gohr array( 2720d062caSAndreas Gohr 'type' => 'format', 2820d062caSAndreas Gohr 'title' => $lang['qb_bold'], 2920d062caSAndreas Gohr 'icon' => 'bold.png', 3020d062caSAndreas Gohr 'key' => 'b', 3120d062caSAndreas Gohr 'open' => '**', 3220d062caSAndreas Gohr 'close' => '**', 33c4ba149aSAdrian Lang 'block' => false 3420d062caSAndreas Gohr ), 3520d062caSAndreas Gohr array( 3620d062caSAndreas Gohr 'type' => 'format', 3720d062caSAndreas Gohr 'title' => $lang['qb_italic'], 3820d062caSAndreas Gohr 'icon' => 'italic.png', 3920d062caSAndreas Gohr 'key' => 'i', 4020d062caSAndreas Gohr 'open' => '//', 4120d062caSAndreas Gohr 'close' => '//', 42c4ba149aSAdrian Lang 'block' => false 4320d062caSAndreas Gohr ), 4420d062caSAndreas Gohr array( 4520d062caSAndreas Gohr 'type' => 'format', 4620d062caSAndreas Gohr 'title' => $lang['qb_underl'], 4720d062caSAndreas Gohr 'icon' => 'underline.png', 4820d062caSAndreas Gohr 'key' => 'u', 4920d062caSAndreas Gohr 'open' => '__', 5020d062caSAndreas Gohr 'close' => '__', 51c4ba149aSAdrian Lang 'block' => false 5220d062caSAndreas Gohr ), 5320d062caSAndreas Gohr array( 5420d062caSAndreas Gohr 'type' => 'format', 5520d062caSAndreas Gohr 'title' => $lang['qb_code'], 5620d062caSAndreas Gohr 'icon' => 'mono.png', 572bc9e793SAndreas Gohr 'key' => 'm', 5820d062caSAndreas Gohr 'open' => "''", 5920d062caSAndreas Gohr 'close' => "''", 60c4ba149aSAdrian Lang 'block' => false 6120d062caSAndreas Gohr ), 6220d062caSAndreas Gohr array( 6320d062caSAndreas Gohr 'type' => 'format', 6420d062caSAndreas Gohr 'title' => $lang['qb_strike'], 6520d062caSAndreas Gohr 'icon' => 'strike.png', 6620d062caSAndreas Gohr 'key' => 'd', 6720d062caSAndreas Gohr 'open' => '<del>', 68b0bf105aSAndreas Gohr 'close' => '</del>', 69c4ba149aSAdrian Lang 'block' => false 7020d062caSAndreas Gohr ), 71a2be6cd9SAndreas Gohr 72a2be6cd9SAndreas Gohr array( 73a2be6cd9SAndreas Gohr 'type' => 'autohead', 74a2be6cd9SAndreas Gohr 'title' => $lang['qb_hequal'], 75a2be6cd9SAndreas Gohr 'icon' => 'hequal.png', 76af14334bSAndreas Gohr 'key' => '8', 77a2be6cd9SAndreas Gohr 'text' => $lang['qb_h'], 78c4ba149aSAdrian Lang 'mod' => 0, 79c4ba149aSAdrian Lang 'block' => true 80a2be6cd9SAndreas Gohr ), 81a2be6cd9SAndreas Gohr array( 82a2be6cd9SAndreas Gohr 'type' => 'autohead', 83a2be6cd9SAndreas Gohr 'title' => $lang['qb_hminus'], 84a2be6cd9SAndreas Gohr 'icon' => 'hminus.png', 85af14334bSAndreas Gohr 'key' => '9', 86a2be6cd9SAndreas Gohr 'text' => $lang['qb_h'], 87c4ba149aSAdrian Lang 'mod' => 1, 88c4ba149aSAdrian Lang 'block' => true 89a2be6cd9SAndreas Gohr ), 907ba342d5Smatthiasgrimm array( 917ba342d5Smatthiasgrimm 'type' => 'autohead', 927ba342d5Smatthiasgrimm 'title' => $lang['qb_hplus'], 937ba342d5Smatthiasgrimm 'icon' => 'hplus.png', 94af14334bSAndreas Gohr 'key' => '0', 957ba342d5Smatthiasgrimm 'text' => $lang['qb_h'], 96c4ba149aSAdrian Lang 'mod' => -1, 97c4ba149aSAdrian Lang 'block' => true 987ba342d5Smatthiasgrimm ), 99a2be6cd9SAndreas Gohr 100a2be6cd9SAndreas Gohr array( 101a2be6cd9SAndreas Gohr 'type' => 'picker', 102a2be6cd9SAndreas Gohr 'title' => $lang['qb_hs'], 103a2be6cd9SAndreas Gohr 'icon' => 'h.png', 10473a509d7SAndreas Gohr 'class' => 'pk_hl', 105a2be6cd9SAndreas Gohr 'list' => array( 10620d062caSAndreas Gohr array( 10720d062caSAndreas Gohr 'type' => 'format', 10820d062caSAndreas Gohr 'title' => $lang['qb_h1'], 10920d062caSAndreas Gohr 'icon' => 'h1.png', 11020d062caSAndreas Gohr 'key' => '1', 11120d062caSAndreas Gohr 'open' => '====== ', 11220d062caSAndreas Gohr 'close' => ' ======\n', 11320d062caSAndreas Gohr ), 11420d062caSAndreas Gohr array( 11520d062caSAndreas Gohr 'type' => 'format', 11620d062caSAndreas Gohr 'title' => $lang['qb_h2'], 11720d062caSAndreas Gohr 'icon' => 'h2.png', 11820d062caSAndreas Gohr 'key' => '2', 11920d062caSAndreas Gohr 'open' => '===== ', 12020d062caSAndreas Gohr 'close' => ' =====\n', 12120d062caSAndreas Gohr ), 12220d062caSAndreas Gohr array( 12320d062caSAndreas Gohr 'type' => 'format', 12420d062caSAndreas Gohr 'title' => $lang['qb_h3'], 12520d062caSAndreas Gohr 'icon' => 'h3.png', 12620d062caSAndreas Gohr 'key' => '3', 12720d062caSAndreas Gohr 'open' => '==== ', 12820d062caSAndreas Gohr 'close' => ' ====\n', 12920d062caSAndreas Gohr ), 13020d062caSAndreas Gohr array( 13120d062caSAndreas Gohr 'type' => 'format', 13220d062caSAndreas Gohr 'title' => $lang['qb_h4'], 13320d062caSAndreas Gohr 'icon' => 'h4.png', 13420d062caSAndreas Gohr 'key' => '4', 13520d062caSAndreas Gohr 'open' => '=== ', 13620d062caSAndreas Gohr 'close' => ' ===\n', 13720d062caSAndreas Gohr ), 13820d062caSAndreas Gohr array( 13920d062caSAndreas Gohr 'type' => 'format', 14020d062caSAndreas Gohr 'title' => $lang['qb_h5'], 14120d062caSAndreas Gohr 'icon' => 'h5.png', 14220d062caSAndreas Gohr 'key' => '5', 14320d062caSAndreas Gohr 'open' => '== ', 14420d062caSAndreas Gohr 'close' => ' ==\n', 14520d062caSAndreas Gohr ), 146c4ba149aSAdrian Lang ), 147c4ba149aSAdrian Lang 'block' => true 148a2be6cd9SAndreas Gohr ), 149a2be6cd9SAndreas Gohr 15020d062caSAndreas Gohr array( 15156dfcc12SAndreas Gohr 'type' => 'linkwiz', 15220d062caSAndreas Gohr 'title' => $lang['qb_link'], 15320d062caSAndreas Gohr 'icon' => 'link.png', 15420d062caSAndreas Gohr 'key' => 'l', 15520d062caSAndreas Gohr 'open' => '[[', 15620d062caSAndreas Gohr 'close' => ']]', 157c4ba149aSAdrian Lang 'block' => false 15820d062caSAndreas Gohr ), 15920d062caSAndreas Gohr array( 16020d062caSAndreas Gohr 'type' => 'format', 16120d062caSAndreas Gohr 'title' => $lang['qb_extlink'], 16220d062caSAndreas Gohr 'icon' => 'linkextern.png', 16320d062caSAndreas Gohr 'open' => '[[', 16420d062caSAndreas Gohr 'close' => ']]', 16520d062caSAndreas Gohr 'sample' => 'http://example.com|'.$lang['qb_extlink'], 166c4ba149aSAdrian Lang 'block' => false 16720d062caSAndreas Gohr ), 16820d062caSAndreas Gohr array( 169201ea5f3SAndreas Gohr 'type' => 'formatln', 17020d062caSAndreas Gohr 'title' => $lang['qb_ol'], 17120d062caSAndreas Gohr 'icon' => 'ol.png', 17220d062caSAndreas Gohr 'open' => ' - ', 173201ea5f3SAndreas Gohr 'close' => '', 174a4b53097SAndreas Gohr 'key' => '-', 175c4ba149aSAdrian Lang 'block' => true 17620d062caSAndreas Gohr ), 17720d062caSAndreas Gohr array( 178201ea5f3SAndreas Gohr 'type' => 'formatln', 17920d062caSAndreas Gohr 'title' => $lang['qb_ul'], 18020d062caSAndreas Gohr 'icon' => 'ul.png', 18120d062caSAndreas Gohr 'open' => ' * ', 182201ea5f3SAndreas Gohr 'close' => '', 183a4b53097SAndreas Gohr 'key' => '.', 184c4ba149aSAdrian Lang 'block' => true 18520d062caSAndreas Gohr ), 18620d062caSAndreas Gohr array( 18720d062caSAndreas Gohr 'type' => 'insert', 18820d062caSAndreas Gohr 'title' => $lang['qb_hr'], 18920d062caSAndreas Gohr 'icon' => 'hr.png', 190d27d0a5aSGina Haeussge 'insert' => '\n----\n', 191c4ba149aSAdrian Lang 'block' => true 19220d062caSAndreas Gohr ), 19320d062caSAndreas Gohr array( 194c591aabeSAndreas Gohr 'type' => 'mediapopup', 19520d062caSAndreas Gohr 'title' => $lang['qb_media'], 19620d062caSAndreas Gohr 'icon' => 'image.png', 197de4e429dSAndreas Gohr 'url' => 'lib/exe/mediamanager.php?ns=', 19820d062caSAndreas Gohr 'name' => 'mediaselect', 1993df72098SAndreas Gohr 'options'=> 'width=750,height=500,left=20,top=20,scrollbars=yes,resizable=yes', 200c4ba149aSAdrian Lang 'block' => false 20120d062caSAndreas Gohr ), 20220d062caSAndreas Gohr array( 20320d062caSAndreas Gohr 'type' => 'picker', 20420d062caSAndreas Gohr 'title' => $lang['qb_smileys'], 20520d062caSAndreas Gohr 'icon' => 'smiley.png', 20620d062caSAndreas Gohr 'list' => getSmileys(), 20720d062caSAndreas Gohr 'icobase'=> 'smileys', 208c4ba149aSAdrian Lang 'block' => false 20920d062caSAndreas Gohr ), 21020d062caSAndreas Gohr array( 21120d062caSAndreas Gohr 'type' => 'picker', 21220d062caSAndreas Gohr 'title' => $lang['qb_chars'], 21320d062caSAndreas Gohr 'icon' => 'chars.png', 21464159a61SAndreas Gohr 'list' => [ 21564159a61SAndreas Gohr 'À', 'à', 'Á', 'á', 'Â', 'â', 'Ã', 'ã', 'Ä', 'ä', 'Ǎ', 'ǎ', 'Ă', 'ă', 'Å', 'å', 21664159a61SAndreas Gohr 'Ā', 'ā', 'Ą', 'ą', 'Æ', 'æ', 'Ć', 'ć', 'Ç', 'ç', 'Č', 'č', 'Ĉ', 'ĉ', 'Ċ', 'ċ', 21764159a61SAndreas Gohr 'Ð', 'đ', 'ð', 'Ď', 'ď', 'È', 'è', 'É', 'é', 'Ê', 'ê', 'Ë', 'ë', 'Ě', 'ě', 'Ē', 21864159a61SAndreas Gohr 'ē', 'Ė', 'ė', 'Ę', 'ę', 'Ģ', 'ģ', 'Ĝ', 'ĝ', 'Ğ', 'ğ', 'Ġ', 'ġ', 'Ĥ', 'ĥ', 'Ì', 21964159a61SAndreas Gohr 'ì', 'Í', 'í', 'Î', 'î', 'Ï', 'ï', 'Ǐ', 'ǐ', 'Ī', 'ī', 'İ', 'ı', 'Į', 'į', 'Ĵ', 22064159a61SAndreas Gohr 'ĵ', 'Ķ', 'ķ', 'Ĺ', 'ĺ', 'Ļ', 'ļ', 'Ľ', 'ľ', 'Ł', 'ł', 'Ŀ', 'ŀ', 'Ń', 'ń', 'Ñ', 22164159a61SAndreas Gohr 'ñ', 'Ņ', 'ņ', 'Ň', 'ň', 'Ò', 'ò', 'Ó', 'ó', 'Ô', 'ô', 'Õ', 'õ', 'Ö', 'ö', 'Ǒ', 22264159a61SAndreas Gohr 'ǒ', 'Ō', 'ō', 'Ő', 'ő', 'Œ', 'œ', 'Ø', 'ø', 'Ŕ', 'ŕ', 'Ŗ', 'ŗ', 'Ř', 'ř', 'Ś', 22364159a61SAndreas Gohr 'ś', 'Ş', 'ş', 'Š', 'š', 'Ŝ', 'ŝ', 'Ţ', 'ţ', 'Ť', 'ť', 'Ù', 'ù', 'Ú', 'ú', 'Û', 22464159a61SAndreas Gohr 'û', 'Ü', 'ü', 'Ǔ', 'ǔ', 'Ŭ', 'ŭ', 'Ū', 'ū', 'Ů', 'ů', 'ǖ', 'ǘ', 'ǚ', 'ǜ', 'Ų', 22564159a61SAndreas Gohr 'ų', 'Ű', 'ű', 'Ŵ', 'ŵ', 'Ý', 'ý', 'Ÿ', 'ÿ', 'Ŷ', 'ŷ', 'Ź', 'ź', 'Ž', 'ž', 'Ż', 22664159a61SAndreas Gohr 'ż', 'Þ', 'þ', 'ß', 'Ħ', 'ħ', '¿', '¡', '¢', '£', '¤', '¥', '€', '¦', '§', 'ª', 22764159a61SAndreas Gohr '¬', '¯', '°', '±', '÷', '‰', '¼', '½', '¾', '¹', '²', '³', 'µ', '¶', '†', '‡', 22864159a61SAndreas Gohr '·', '•', 'º', '∀', '∂', '∃', 'Ə', 'ə', '∅', '∇', '∈', '∉', '∋', '∏', '∑', '‾', 22964159a61SAndreas Gohr '−', '∗', '×', '⁄', '√', '∝', '∞', '∠', '∧', '∨', '∩', '∪', '∫', '∴', '∼', '≅', 23064159a61SAndreas Gohr '≈', '≠', '≡', '≤', '≥', '⊂', '⊃', '⊄', '⊆', '⊇', '⊕', '⊗', '⊥', '⋅', '◊', '℘', 23164159a61SAndreas Gohr 'ℑ', 'ℜ', 'ℵ', '♠', '♣', '♥', '♦', 'α', 'β', 'Γ', 'γ', 'Δ', 'δ', 'ε', 'ζ', 'η', 23264159a61SAndreas Gohr 'Θ', 'θ', 'ι', 'κ', 'Λ', 'λ', 'μ', 'Ξ', 'ξ', 'Π', 'π', 'ρ', 'Σ', 'σ', 'Τ', 'τ', 23364159a61SAndreas Gohr 'υ', 'Φ', 'φ', 'χ', 'Ψ', 'ψ', 'Ω', 'ω', '★', '☆', '☎', '☚', '☛', '☜', '☝', '☞', 23464159a61SAndreas Gohr '☟', '☹', '☺', '✔', '✘', '„', '“', '”', '‚', '‘', '’', '«', '»', '‹', '›', '—', 23564159a61SAndreas Gohr '–', '…', '←', '↑', '→', '↓', '↔', '⇐', '⇑', '⇒', '⇓', '⇔', '©', '™', '®', '′', 23664159a61SAndreas Gohr '″', '[', ']', '{', '}', '~', '(', ')', '%', '§', '$', '#', '|', '@' 23764159a61SAndreas Gohr ], 238c4ba149aSAdrian Lang 'block' => false 23920d062caSAndreas Gohr ), 240c591aabeSAndreas Gohr array( 241c591aabeSAndreas Gohr 'type' => 'signature', 242c591aabeSAndreas Gohr 'title' => $lang['qb_sig'], 243c591aabeSAndreas Gohr 'icon' => 'sig.png', 244c591aabeSAndreas Gohr 'key' => 'y', 245c4ba149aSAdrian Lang 'block' => false 246c591aabeSAndreas Gohr ), 2478b3b5ebbSEsther Brunner )); 2488b3b5ebbSEsther Brunner } // end event TOOLBAR_DEFINE default action 2498b3b5ebbSEsther Brunner $evt->advise_after(); 2508b3b5ebbSEsther Brunner unset($evt); 25120d062caSAndreas Gohr 25220d062caSAndreas Gohr // use JSON to build the JavaScript array 253d443762bSAndreas Gohr print "var $varname = ".json_encode($menu).";\n"; 25420d062caSAndreas Gohr} 25520d062caSAndreas Gohr 25620d062caSAndreas Gohr/** 25720d062caSAndreas Gohr * prepares the signature string as configured in the config 25820d062caSAndreas Gohr * 25920d062caSAndreas Gohr * @author Andreas Gohr <andi@splitbrain.org> 26020d062caSAndreas Gohr */ 26120d062caSAndreas Gohrfunction toolbar_signature(){ 26220d062caSAndreas Gohr global $conf; 2631b2abcf9SAndreas Gohr global $INFO; 264585bf44eSChristopher Smith /** @var Input $INPUT */ 265585bf44eSChristopher Smith global $INPUT; 26620d062caSAndreas Gohr 26720d062caSAndreas Gohr $sig = $conf['signature']; 2687883d066SAndreas Gohr $sig = dformat(null,$sig); 269585bf44eSChristopher Smith $sig = str_replace('@USER@',$INPUT->server->str('REMOTE_USER'),$sig); 270*e945440aSMarvin Klein $sig = str_replace('@NAME@',is_null($INFO) ? "" : $INFO['userinfo']['name'],$sig); 271*e945440aSMarvin Klein $sig = str_replace('@MAIL@',is_null($INFO) ? "" : $INFO['userinfo']['mail'],$sig); 272f2263577SAndreas Gohr $sig = str_replace('@DATE@',dformat(),$sig); 273462a3baeSPhy $sig = str_replace('\\\\n','\\n',$sig); 27498169a0fSAndreas Gohr return json_encode($sig); 27520d062caSAndreas Gohr} 27620d062caSAndreas Gohr 277e3776c06SMichael Hamann//Setup VIM: ex: et ts=4 : 278