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 if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../').'/'); 1020d062caSAndreas Gohr 1120d062caSAndreas Gohrrequire_once(DOKU_INC.'inc/JSON.php'); 1220d062caSAndreas Gohr 1320d062caSAndreas Gohr 1420d062caSAndreas Gohr/** 1520d062caSAndreas Gohr * Prepares and prints an JavaScript array with all toolbar buttons 1620d062caSAndreas Gohr * 1720d062caSAndreas Gohr * @todo add toolbar plugins 1820d062caSAndreas Gohr * @param string $varname Name of the JS variable to fill 1920d062caSAndreas Gohr * @author Andreas Gohr <andi@splitbrain.org> 2020d062caSAndreas Gohr */ 2120d062caSAndreas Gohrfunction toolbar_JSdefines($varname){ 2220d062caSAndreas Gohr global $ID; 2320d062caSAndreas Gohr global $conf; 2420d062caSAndreas Gohr global $lang; 2520d062caSAndreas Gohr 2620d062caSAndreas Gohr // build button array 2720d062caSAndreas Gohr $menu = array( 2820d062caSAndreas Gohr array( 2920d062caSAndreas Gohr 'type' => 'format', 3020d062caSAndreas Gohr 'title' => $lang['qb_bold'], 3120d062caSAndreas Gohr 'icon' => 'bold.png', 3220d062caSAndreas Gohr 'key' => 'b', 3320d062caSAndreas Gohr 'open' => '**', 3420d062caSAndreas Gohr 'close' => '**', 3520d062caSAndreas Gohr ), 3620d062caSAndreas Gohr array( 3720d062caSAndreas Gohr 'type' => 'format', 3820d062caSAndreas Gohr 'title' => $lang['qb_italic'], 3920d062caSAndreas Gohr 'icon' => 'italic.png', 4020d062caSAndreas Gohr 'key' => 'i', 4120d062caSAndreas Gohr 'open' => '//', 4220d062caSAndreas Gohr 'close' => '//', 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' => '__', 5120d062caSAndreas Gohr ), 5220d062caSAndreas Gohr array( 5320d062caSAndreas Gohr 'type' => 'format', 5420d062caSAndreas Gohr 'title' => $lang['qb_code'], 5520d062caSAndreas Gohr 'icon' => 'mono.png', 5620d062caSAndreas Gohr 'key' => 'c', 5720d062caSAndreas Gohr 'open' => "''", 5820d062caSAndreas Gohr 'close' => "''", 5920d062caSAndreas Gohr ), 6020d062caSAndreas Gohr array( 6120d062caSAndreas Gohr 'type' => 'format', 6220d062caSAndreas Gohr 'title' => $lang['qb_strike'], 6320d062caSAndreas Gohr 'icon' => 'strike.png', 6420d062caSAndreas Gohr 'key' => 'd', 6520d062caSAndreas Gohr 'open' => '<del>', 66*b0bf105aSAndreas Gohr 'close' => '</del>', 6720d062caSAndreas Gohr ), 6820d062caSAndreas Gohr array( 6920d062caSAndreas Gohr 'type' => 'format', 7020d062caSAndreas Gohr 'title' => $lang['qb_h1'], 7120d062caSAndreas Gohr 'icon' => 'h1.png', 7220d062caSAndreas Gohr 'key' => '1', 7320d062caSAndreas Gohr 'open' => '====== ', 7420d062caSAndreas Gohr 'close' => ' ======\n', 7520d062caSAndreas Gohr ), 7620d062caSAndreas Gohr array( 7720d062caSAndreas Gohr 'type' => 'format', 7820d062caSAndreas Gohr 'title' => $lang['qb_h2'], 7920d062caSAndreas Gohr 'icon' => 'h2.png', 8020d062caSAndreas Gohr 'key' => '2', 8120d062caSAndreas Gohr 'open' => '===== ', 8220d062caSAndreas Gohr 'close' => ' =====\n', 8320d062caSAndreas Gohr ), 8420d062caSAndreas Gohr array( 8520d062caSAndreas Gohr 'type' => 'format', 8620d062caSAndreas Gohr 'title' => $lang['qb_h3'], 8720d062caSAndreas Gohr 'icon' => 'h3.png', 8820d062caSAndreas Gohr 'key' => '3', 8920d062caSAndreas Gohr 'open' => '==== ', 9020d062caSAndreas Gohr 'close' => ' ====\n', 9120d062caSAndreas Gohr ), 9220d062caSAndreas Gohr array( 9320d062caSAndreas Gohr 'type' => 'format', 9420d062caSAndreas Gohr 'title' => $lang['qb_h4'], 9520d062caSAndreas Gohr 'icon' => 'h4.png', 9620d062caSAndreas Gohr 'key' => '4', 9720d062caSAndreas Gohr 'open' => '=== ', 9820d062caSAndreas Gohr 'close' => ' ===\n', 9920d062caSAndreas Gohr ), 10020d062caSAndreas Gohr array( 10120d062caSAndreas Gohr 'type' => 'format', 10220d062caSAndreas Gohr 'title' => $lang['qb_h5'], 10320d062caSAndreas Gohr 'icon' => 'h5.png', 10420d062caSAndreas Gohr 'key' => '5', 10520d062caSAndreas Gohr 'open' => '== ', 10620d062caSAndreas Gohr 'close' => ' ==\n', 10720d062caSAndreas Gohr ), 10820d062caSAndreas Gohr array( 10920d062caSAndreas Gohr 'type' => 'format', 11020d062caSAndreas Gohr 'title' => $lang['qb_link'], 11120d062caSAndreas Gohr 'icon' => 'link.png', 11220d062caSAndreas Gohr 'key' => 'l', 11320d062caSAndreas Gohr 'open' => '[[', 11420d062caSAndreas Gohr 'close' => ']]', 11520d062caSAndreas Gohr ), 11620d062caSAndreas Gohr array( 11720d062caSAndreas Gohr 'type' => 'format', 11820d062caSAndreas Gohr 'title' => $lang['qb_extlink'], 11920d062caSAndreas Gohr 'icon' => 'linkextern.png', 12020d062caSAndreas Gohr 'open' => '[[', 12120d062caSAndreas Gohr 'close' => ']]', 12220d062caSAndreas Gohr 'sample' => 'http://example.com|'.$lang['qb_extlink'], 12320d062caSAndreas Gohr ), 12420d062caSAndreas Gohr array( 12520d062caSAndreas Gohr 'type' => 'format', 12620d062caSAndreas Gohr 'title' => $lang['qb_ol'], 12720d062caSAndreas Gohr 'icon' => 'ol.png', 12820d062caSAndreas Gohr 'open' => ' - ', 12920d062caSAndreas Gohr 'close' => '\n', 13020d062caSAndreas Gohr ), 13120d062caSAndreas Gohr array( 13220d062caSAndreas Gohr 'type' => 'format', 13320d062caSAndreas Gohr 'title' => $lang['qb_ul'], 13420d062caSAndreas Gohr 'icon' => 'ul.png', 13520d062caSAndreas Gohr 'open' => ' * ', 13620d062caSAndreas Gohr 'close' => '\n', 13720d062caSAndreas Gohr ), 13820d062caSAndreas Gohr array( 13920d062caSAndreas Gohr 'type' => 'insert', 14020d062caSAndreas Gohr 'title' => $lang['qb_hr'], 14120d062caSAndreas Gohr 'icon' => 'hr.png', 14220d062caSAndreas Gohr 'insert' => '----\n', 14320d062caSAndreas Gohr ), 14420d062caSAndreas Gohr array( 14520d062caSAndreas Gohr 'type' => 'popup', 14620d062caSAndreas Gohr 'title' => $lang['qb_media'], 14720d062caSAndreas Gohr 'icon' => 'image.png', 14820d062caSAndreas Gohr 'url' => DOKU_BASE.'lib/exe/media.php?ns='.getNS($ID), 14920d062caSAndreas Gohr 'name' => 'mediaselect', 15020d062caSAndreas Gohr 'options'=> 'width=600,height=320,left=70,top=50,scrollbars=yes,resizable=yes', 15120d062caSAndreas Gohr ), 15220d062caSAndreas Gohr array( 15320d062caSAndreas Gohr 'type' => 'picker', 15420d062caSAndreas Gohr 'title' => $lang['qb_smileys'], 15520d062caSAndreas Gohr 'icon' => 'smiley.png', 15620d062caSAndreas Gohr 'list' => getSmileys(), 15720d062caSAndreas Gohr 'icobase'=> 'smileys', 15820d062caSAndreas Gohr ), 15920d062caSAndreas Gohr array( 16020d062caSAndreas Gohr 'type' => 'picker', 16120d062caSAndreas Gohr 'title' => $lang['qb_chars'], 16220d062caSAndreas Gohr 'icon' => 'chars.png', 16320d062caSAndreas Gohr 'list' => explode(' ','À à Á á Â â Ã ã Ä ä Ǎ ǎ Ă ă Å å Ā ā Ą ą Æ æ Ć ć Ç ç Č č Ĉ ĉ Ċ ċ Ð đ ð Ď ď È è É é Ê ê Ë ë Ě ě Ē ē Ė ė Ę ę Ģ ģ Ĝ ĝ Ğ ğ Ġ ġ Ĥ ĥ Ì ì Í í Î î Ï ï Ǐ ǐ Ī ī İ ı Į į Ĵ ĵ Ķ ķ Ĺ ĺ Ļ ļ Ľ ľ Ł ł Ŀ ŀ Ń ń Ñ ñ Ņ ņ Ň ň Ò ò Ó ó Ô ô Õ õ Ö ö Ǒ ǒ Ō ō Ő ő Ø ø Ŕ ŕ Ŗ ŗ Ř ř Ś ś Ş ş Š š Ŝ ŝ Ţ ţ Ť ť Ù ù Ú ú Û û Ü ü Ǔ ǔ Ŭ ŭ Ū ū Ů ů ǖ ǘ ǚ ǜ Ų ų Ű ű Ŵ ŵ Ý ý Ÿ ÿ Ŷ ŷ Ź ź Ž ž Ż ż Þ þ ß Ħ ħ ¿ ¡ ¢ £ ¤ ¥ € ¦ § ª ¬ ¯ ° ± ÷ ‰ ¼ ½ ¾ ¹ ² ³ µ ¶ † ‡ · • º ∀ ∂ ∃ Ə ə ∅ ∇ ∈ ∉ ∋ ∏ ∑ ‾ − ∗ √ ∝ ∞ ∠ ∧ ∨ ∩ ∪ ∫ ∴ ∼ ≅ ≈ ≠ ≡ ≤ ≥ ⊂ ⊃ ⊄ ⊆ ⊇ ⊕ ⊗ ⊥ ⋅ ◊ ℘ ℑ ℜ ℵ ♠ ♣ ♥ ♦'), 16420d062caSAndreas Gohr ), 16520d062caSAndreas Gohr ); 16620d062caSAndreas Gohr 16720d062caSAndreas Gohr // if logged in add sig button 16820d062caSAndreas Gohr if($conf['useacl'] && $_SERVER['REMOTE_USER']){ 16920d062caSAndreas Gohr $menu[] = array( 17020d062caSAndreas Gohr 'type' => 'insert', 17120d062caSAndreas Gohr 'title' => $lang['qb_sig'], 17220d062caSAndreas Gohr 'icon' => 'sig.png', 17320d062caSAndreas Gohr 'key' => 'y', 17420d062caSAndreas Gohr 'insert' => toolbar_signature(), 17520d062caSAndreas Gohr ); 17620d062caSAndreas Gohr } 17720d062caSAndreas Gohr 17820d062caSAndreas Gohr // use JSON to build the JavaScript array 17920d062caSAndreas Gohr $json = new JSON(); 18020d062caSAndreas Gohr print "var $varname = ".$json->encode($menu).";\n"; 18120d062caSAndreas Gohr} 18220d062caSAndreas Gohr 18320d062caSAndreas Gohr/** 18420d062caSAndreas Gohr * prepares the signature string as configured in the config 18520d062caSAndreas Gohr * 18620d062caSAndreas Gohr * @author Andreas Gohr <andi@splitbrain.org> 18720d062caSAndreas Gohr */ 18820d062caSAndreas Gohrfunction toolbar_signature(){ 18920d062caSAndreas Gohr global $conf; 19020d062caSAndreas Gohr global $INFO; 19120d062caSAndreas Gohr 19220d062caSAndreas Gohr $sig = $conf['signature']; 19320d062caSAndreas Gohr $sig = strftime($sig); 19420d062caSAndreas Gohr $sig = str_replace('@USER@',$_SERVER['REMOTE_USER'],$sig); 19520d062caSAndreas Gohr $sig = str_replace('@NAME@',$INFO['userinfo']['name'],$sig); 19620d062caSAndreas Gohr $sig = str_replace('@MAIL@',$INFO['userinfo']['mail'],$sig); 19720d062caSAndreas Gohr $sig = str_replace('@DATE@',date($conf['dformat']),$sig); 19820d062caSAndreas Gohr return $sig; 19920d062caSAndreas Gohr} 20020d062caSAndreas Gohr 20120d062caSAndreas Gohr 20220d062caSAndreas Gohr//Setup VIM: ex: et ts=4 enc=utf-8 : 203