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