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> 720d062caSAndreas Gohr */ 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 218b3b5ebbSEsther Brunner $evt = new Doku_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', 214*64159a61SAndreas Gohr 'list' => [ 215*64159a61SAndreas Gohr 'À', 'à', 'Á', 'á', 'Â', 'â', 'Ã', 'ã', 'Ä', 'ä', 'Ǎ', 'ǎ', 'Ă', 'ă', 'Å', 'å', 216*64159a61SAndreas Gohr 'Ā', 'ā', 'Ą', 'ą', 'Æ', 'æ', 'Ć', 'ć', 'Ç', 'ç', 'Č', 'č', 'Ĉ', 'ĉ', 'Ċ', 'ċ', 217*64159a61SAndreas Gohr 'Ð', 'đ', 'ð', 'Ď', 'ď', 'È', 'è', 'É', 'é', 'Ê', 'ê', 'Ë', 'ë', 'Ě', 'ě', 'Ē', 218*64159a61SAndreas Gohr 'ē', 'Ė', 'ė', 'Ę', 'ę', 'Ģ', 'ģ', 'Ĝ', 'ĝ', 'Ğ', 'ğ', 'Ġ', 'ġ', 'Ĥ', 'ĥ', 'Ì', 219*64159a61SAndreas Gohr 'ì', 'Í', 'í', 'Î', 'î', 'Ï', 'ï', 'Ǐ', 'ǐ', 'Ī', 'ī', 'İ', 'ı', 'Į', 'į', 'Ĵ', 220*64159a61SAndreas Gohr 'ĵ', 'Ķ', 'ķ', 'Ĺ', 'ĺ', 'Ļ', 'ļ', 'Ľ', 'ľ', 'Ł', 'ł', 'Ŀ', 'ŀ', 'Ń', 'ń', 'Ñ', 221*64159a61SAndreas Gohr 'ñ', 'Ņ', 'ņ', 'Ň', 'ň', 'Ò', 'ò', 'Ó', 'ó', 'Ô', 'ô', 'Õ', 'õ', 'Ö', 'ö', 'Ǒ', 222*64159a61SAndreas Gohr 'ǒ', 'Ō', 'ō', 'Ő', 'ő', 'Œ', 'œ', 'Ø', 'ø', 'Ŕ', 'ŕ', 'Ŗ', 'ŗ', 'Ř', 'ř', 'Ś', 223*64159a61SAndreas Gohr 'ś', 'Ş', 'ş', 'Š', 'š', 'Ŝ', 'ŝ', 'Ţ', 'ţ', 'Ť', 'ť', 'Ù', 'ù', 'Ú', 'ú', 'Û', 224*64159a61SAndreas Gohr 'û', 'Ü', 'ü', 'Ǔ', 'ǔ', 'Ŭ', 'ŭ', 'Ū', 'ū', 'Ů', 'ů', 'ǖ', 'ǘ', 'ǚ', 'ǜ', 'Ų', 225*64159a61SAndreas Gohr 'ų', 'Ű', 'ű', 'Ŵ', 'ŵ', 'Ý', 'ý', 'Ÿ', 'ÿ', 'Ŷ', 'ŷ', 'Ź', 'ź', 'Ž', 'ž', 'Ż', 226*64159a61SAndreas Gohr 'ż', 'Þ', 'þ', 'ß', 'Ħ', 'ħ', '¿', '¡', '¢', '£', '¤', '¥', '€', '¦', '§', 'ª', 227*64159a61SAndreas Gohr '¬', '¯', '°', '±', '÷', '‰', '¼', '½', '¾', '¹', '²', '³', 'µ', '¶', '†', '‡', 228*64159a61SAndreas Gohr '·', '•', 'º', '∀', '∂', '∃', 'Ə', 'ə', '∅', '∇', '∈', '∉', '∋', '∏', '∑', '‾', 229*64159a61SAndreas Gohr '−', '∗', '×', '⁄', '√', '∝', '∞', '∠', '∧', '∨', '∩', '∪', '∫', '∴', '∼', '≅', 230*64159a61SAndreas Gohr '≈', '≠', '≡', '≤', '≥', '⊂', '⊃', '⊄', '⊆', '⊇', '⊕', '⊗', '⊥', '⋅', '◊', '℘', 231*64159a61SAndreas Gohr 'ℑ', 'ℜ', 'ℵ', '♠', '♣', '♥', '♦', 'α', 'β', 'Γ', 'γ', 'Δ', 'δ', 'ε', 'ζ', 'η', 232*64159a61SAndreas Gohr 'Θ', 'θ', 'ι', 'κ', 'Λ', 'λ', 'μ', 'Ξ', 'ξ', 'Π', 'π', 'ρ', 'Σ', 'σ', 'Τ', 'τ', 233*64159a61SAndreas Gohr 'υ', 'Φ', 'φ', 'χ', 'Ψ', 'ψ', 'Ω', 'ω', '★', '☆', '☎', '☚', '☛', '☜', '☝', '☞', 234*64159a61SAndreas Gohr '☟', '☹', '☺', '✔', '✘', '„', '“', '”', '‚', '‘', '’', '«', '»', '‹', '›', '—', 235*64159a61SAndreas Gohr '–', '…', '←', '↑', '→', '↓', '↔', '⇐', '⇑', '⇒', '⇓', '⇔', '©', '™', '®', '′', 236*64159a61SAndreas Gohr '″', '[', ']', '{', '}', '~', '(', ')', '%', '§', '$', '#', '|', '@' 237*64159a61SAndreas 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 25320d062caSAndreas Gohr $json = new JSON(); 25420d062caSAndreas Gohr print "var $varname = ".$json->encode($menu).";\n"; 25520d062caSAndreas Gohr} 25620d062caSAndreas Gohr 25720d062caSAndreas Gohr/** 25820d062caSAndreas Gohr * prepares the signature string as configured in the config 25920d062caSAndreas Gohr * 26020d062caSAndreas Gohr * @author Andreas Gohr <andi@splitbrain.org> 26120d062caSAndreas Gohr */ 26220d062caSAndreas Gohrfunction toolbar_signature(){ 26320d062caSAndreas Gohr global $conf; 2641b2abcf9SAndreas Gohr global $INFO; 265585bf44eSChristopher Smith /** @var Input $INPUT */ 266585bf44eSChristopher Smith global $INPUT; 26720d062caSAndreas Gohr 26820d062caSAndreas Gohr $sig = $conf['signature']; 2697883d066SAndreas Gohr $sig = dformat(null,$sig); 270585bf44eSChristopher Smith $sig = str_replace('@USER@',$INPUT->server->str('REMOTE_USER'),$sig); 2711b2abcf9SAndreas Gohr $sig = str_replace('@NAME@',$INFO['userinfo']['name'],$sig); 2721b2abcf9SAndreas Gohr $sig = str_replace('@MAIL@',$INFO['userinfo']['mail'],$sig); 273f2263577SAndreas Gohr $sig = str_replace('@DATE@',dformat(),$sig); 274c591aabeSAndreas Gohr $sig = str_replace('\\\\n','\\n',addslashes($sig)); 27520d062caSAndreas Gohr return $sig; 27620d062caSAndreas Gohr} 27720d062caSAndreas Gohr 278e3776c06SMichael Hamann//Setup VIM: ex: et ts=4 : 279