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 9if(!defined('DOKU_INC')) die('meh.'); 10require_once(DOKU_INC.'inc/JSON.php'); 11 12 13/** 14 * Prepares and prints an JavaScript array with all toolbar buttons 15 * 16 * @todo add toolbar plugins 17 * @param string $varname Name of the JS variable to fill 18 * @author Andreas Gohr <andi@splitbrain.org> 19 */ 20function toolbar_JSdefines($varname){ 21 global $ID; 22 global $conf; 23 global $lang; 24 25 $menu = array(); 26 27 $evt = new Doku_Event('TOOLBAR_DEFINE', $menu); 28 if ($evt->advise_before()){ 29 30 // build button array 31 $menu = array_merge($menu, array( 32 array( 33 'type' => 'format', 34 'title' => $lang['qb_bold'], 35 'icon' => 'bold.png', 36 'key' => 'b', 37 'open' => '**', 38 'close' => '**', 39 ), 40 array( 41 'type' => 'format', 42 'title' => $lang['qb_italic'], 43 'icon' => 'italic.png', 44 'key' => 'i', 45 'open' => '//', 46 'close' => '//', 47 ), 48 array( 49 'type' => 'format', 50 'title' => $lang['qb_underl'], 51 'icon' => 'underline.png', 52 'key' => 'u', 53 'open' => '__', 54 'close' => '__', 55 ), 56 array( 57 'type' => 'format', 58 'title' => $lang['qb_code'], 59 'icon' => 'mono.png', 60 'key' => 'c', 61 'open' => "''", 62 'close' => "''", 63 ), 64 array( 65 'type' => 'format', 66 'title' => $lang['qb_strike'], 67 'icon' => 'strike.png', 68 'key' => 'd', 69 'open' => '<del>', 70 'close' => '</del>', 71 ), 72 73 74 array( 75 'type' => 'autohead', 76 'title' => $lang['qb_hplus'], 77 'icon' => 'hplus.png', 78 'key' => '', 79 'text' => $lang['qb_h'], 80 'mod' => -1 81 ), 82 array( 83 'type' => 'autohead', 84 'title' => $lang['qb_hequal'], 85 'icon' => 'hequal.png', 86 'key' => '', 87 'text' => $lang['qb_h'], 88 'mod' => 0 89 ), 90 array( 91 'type' => 'autohead', 92 'title' => $lang['qb_hminus'], 93 'icon' => 'hminus.png', 94 'key' => '', 95 'text' => $lang['qb_h'], 96 'mod' => 1 97 ), 98 99 array( 100 'type' => 'picker', 101 'title' => $lang['qb_hs'], 102 'icon' => 'h.png', 103 'class' => 'pk_hl', 104 'list' => array( 105 array( 106 'type' => 'format', 107 'title' => $lang['qb_h1'], 108 'icon' => 'h1.png', 109 'key' => '1', 110 'open' => '====== ', 111 'close' => ' ======\n', 112 ), 113 array( 114 'type' => 'format', 115 'title' => $lang['qb_h2'], 116 'icon' => 'h2.png', 117 'key' => '2', 118 'open' => '===== ', 119 'close' => ' =====\n', 120 ), 121 array( 122 'type' => 'format', 123 'title' => $lang['qb_h3'], 124 'icon' => 'h3.png', 125 'key' => '3', 126 'open' => '==== ', 127 'close' => ' ====\n', 128 ), 129 array( 130 'type' => 'format', 131 'title' => $lang['qb_h4'], 132 'icon' => 'h4.png', 133 'key' => '4', 134 'open' => '=== ', 135 'close' => ' ===\n', 136 ), 137 array( 138 'type' => 'format', 139 'title' => $lang['qb_h5'], 140 'icon' => 'h5.png', 141 'key' => '5', 142 'open' => '== ', 143 'close' => ' ==\n', 144 ), 145 ) 146 ), 147 148 array( 149 'type' => 'linkwiz', 150 'title' => $lang['qb_link'], 151 'icon' => 'link.png', 152 'key' => 'l', 153 'open' => '[[', 154 'close' => ']]', 155 ), 156 array( 157 'type' => 'format', 158 'title' => $lang['qb_extlink'], 159 'icon' => 'linkextern.png', 160 'open' => '[[', 161 'close' => ']]', 162 'sample' => 'http://example.com|'.$lang['qb_extlink'], 163 ), 164 array( 165 'type' => 'formatln', 166 'title' => $lang['qb_ol'], 167 'icon' => 'ol.png', 168 'open' => ' - ', 169 'close' => '', 170 'key' => '-', 171 ), 172 array( 173 'type' => 'formatln', 174 'title' => $lang['qb_ul'], 175 'icon' => 'ul.png', 176 'open' => ' * ', 177 'close' => '', 178 'key' => '.', 179 ), 180 array( 181 'type' => 'insert', 182 'title' => $lang['qb_hr'], 183 'icon' => 'hr.png', 184 'insert' => '\n----\n', 185 ), 186 array( 187 'type' => 'mediapopup', 188 'title' => $lang['qb_media'], 189 'icon' => 'image.png', 190 'url' => 'lib/exe/mediamanager.php?ns=', 191 'name' => 'mediaselect', 192 'options'=> 'width=750,height=500,left=20,top=20,scrollbars=yes,resizable=yes', 193 ), 194 array( 195 'type' => 'picker', 196 'title' => $lang['qb_smileys'], 197 'icon' => 'smiley.png', 198 'list' => getSmileys(), 199 'icobase'=> 'smileys', 200 ), 201 array( 202 'type' => 'picker', 203 'title' => $lang['qb_chars'], 204 'icon' => 'chars.png', 205 'list' => explode(' ','À à Á á  â à ã Ä ä Ǎ ǎ Ă ă Å å Ā ā Ą ą Æ æ Ć ć Ç ç Č č Ĉ ĉ Ċ ċ Ð đ ð Ď ď È è É é Ê ê Ë ë Ě ě Ē ē Ė ė Ę ę Ģ ģ Ĝ ĝ Ğ ğ Ġ ġ Ĥ ĥ Ì ì Í í Î î Ï ï Ǐ ǐ Ī ī İ ı Į į Ĵ ĵ Ķ ķ Ĺ ĺ Ļ ļ Ľ ľ Ł ł Ŀ ŀ Ń ń Ñ ñ Ņ ņ Ň ň Ò ò Ó ó Ô ô Õ õ Ö ö Ǒ ǒ Ō ō Ő ő Œ œ Ø ø Ŕ ŕ Ŗ ŗ Ř ř Ś ś Ş ş Š š Ŝ ŝ Ţ ţ Ť ť Ù ù Ú ú Û û Ü ü Ǔ ǔ Ŭ ŭ Ū ū Ů ů ǖ ǘ ǚ ǜ Ų ų Ű ű Ŵ ŵ Ý ý Ÿ ÿ Ŷ ŷ Ź ź Ž ž Ż ż Þ þ ß Ħ ħ ¿ ¡ ¢ £ ¤ ¥ € ¦ § ª ¬ ¯ ° ± ÷ ‰ ¼ ½ ¾ ¹ ² ³ µ ¶ † ‡ · • º ∀ ∂ ∃ Ə ə ∅ ∇ ∈ ∉ ∋ ∏ ∑ ‾ − ∗ √ ∝ ∞ ∠ ∧ ∨ ∩ ∪ ∫ ∴ ∼ ≅ ≈ ≠ ≡ ≤ ≥ ⊂ ⊃ ⊄ ⊆ ⊇ ⊕ ⊗ ⊥ ⋅ ◊ ℘ ℑ ℜ ℵ ♠ ♣ ♥ ♦ α β Γ γ Δ δ ε ζ η Θ θ ι κ Λ λ μ Ξ ξ Π π ρ Σ σ Τ τ υ Φ φ χ Ψ ψ Ω ω ★ ☆ ☎ ☚ ☛ ☜ ☝ ☞ ☟ ☹ ☺ ✔ ✘ × „ “ ” ‚ ‘ ’ « » ‹ › — – … ← ↑ → ↓ ↔ ⇐ ⇑ ⇒ ⇓ ⇔ © ™ ® ′ ″ [ ] { } ~ ( ) % § $ # | @'), 206 ), 207 array( 208 'type' => 'signature', 209 'title' => $lang['qb_sig'], 210 'icon' => 'sig.png', 211 'key' => 'y', 212 ), 213 214 215 216 )); 217 } // end event TOOLBAR_DEFINE default action 218 $evt->advise_after(); 219 unset($evt); 220 221 // use JSON to build the JavaScript array 222 $json = new JSON(); 223 print "var $varname = ".$json->encode($menu).";\n"; 224} 225 226/** 227 * prepares the signature string as configured in the config 228 * 229 * @author Andreas Gohr <andi@splitbrain.org> 230 */ 231function toolbar_signature(){ 232 global $conf; 233 global $INFO; 234 235 $sig = $conf['signature']; 236 $sig = strftime($sig); 237 $sig = str_replace('@USER@',$_SERVER['REMOTE_USER'],$sig); 238 $sig = str_replace('@NAME@',$INFO['userinfo']['name'],$sig); 239 $sig = str_replace('@MAIL@',$INFO['userinfo']['mail'],$sig); 240 $sig = str_replace('@DATE@',strftime($conf['dformat']),$sig); 241 $sig = str_replace('\\\\n','\\n',addslashes($sig)); 242 return $sig; 243} 244 245//Setup VIM: ex: et ts=4 enc=utf-8 : 246