diff --git a/_test/cases/lib/exe/jscss_js_compress.test.php b/_test/cases/lib/exe/js_js_compress.test.php similarity index 94% rename from _test/cases/lib/exe/jscss_js_compress.test.php rename to _test/cases/lib/exe/js_js_compress.test.php index 3d9a8b6272e539982114f6cccaf75983892951ed..0bfb620569937246665f3edc9931a95fe845b091 100644 --- a/_test/cases/lib/exe/jscss_js_compress.test.php +++ b/_test/cases/lib/exe/js_js_compress.test.php @@ -1,9 +1,9 @@ <?php -require_once DOKU_INC.'lib/exe/jscss.php'; +require_once DOKU_INC.'lib/exe/js.php'; -class jscss_js_compress_test extends UnitTestCase { +class js_js_compress_test extends UnitTestCase { function test_mlcom1(){ $text = '/** diff --git a/conf/dokuwiki.php b/conf/dokuwiki.php index d12fb27fcdd47bb6e145940ec176fb1dc9f54862..2d89d1cde4c3cf44968927d18684867ce951f34e 100644 --- a/conf/dokuwiki.php +++ b/conf/dokuwiki.php @@ -78,6 +78,7 @@ $conf['im_convert'] = ''; //path to ImageMagicks convert (will be $conf['spellchecker']= 0; //enable Spellchecker (needs PHP >= 4.3.0 and aspell installed) $conf['subscribers'] = 0; //enable change notice subscription support $conf['pluginmanager'] = 0; //enable automated plugin management (requires plugin) +$conf['compress'] = 1; //Strip whitespaces and comments from Styles and JavaScript? 1|0 $conf['rss_type'] = 'rss1'; //type of RSS feed to provide, by default: // 'rss' - RSS 0.91 // 'rss1' - RSS 1.0 diff --git a/inc/init.php b/inc/init.php index 41363f63d7628c7c6706ae59c6aa6cc4dba07f59..44154a0390206fa09b08b51984f9b8a2999140d0 100644 --- a/inc/init.php +++ b/inc/init.php @@ -42,6 +42,10 @@ if(!defined('DOKU_TPL')) define('DOKU_TPL', DOKU_BASE.'lib/tpl/'.$conf['template'].'/'); + // define real Template directory + if(!defined('DOKU_TPLINC')) define('DOKU_TPLINC', + DOKU_INC.'lib/tpl/'.$conf['template'].'/'); + // make session rewrites XHTML compliant @ini_set('arg_separator.output', '&'); diff --git a/inc/pluginutils.php b/inc/pluginutils.php index d35b0dbc27dc7681153c4978b9d7f94cae3f8455..4c81f9abb2acbc0c9cdca9934ad91de97a16db22 100644 --- a/inc/pluginutils.php +++ b/inc/pluginutils.php @@ -8,6 +8,8 @@ /** * prints needed HTML to include plugin CSS and JS files + * + * @deprecated - now handled by the style and script loader in lib/exe */ function plugin_printCSSJS(){ global $conf; diff --git a/inc/template.php b/inc/template.php index 7401c3e629307462abe258b164455c15bae784cc..be0d2f193dade55cba6b0bf541700c88df84be44 100644 --- a/inc/template.php +++ b/inc/template.php @@ -176,7 +176,6 @@ function tpl_metaheaders(){ ptln('<link rel="alternate" type="application/rss+xml" title="Current Namespace" href="'.DOKU_BASE.'feed.php?mode=list&ns='.$INFO['namespace'].'" />',$it); ptln('<link rel="alternate" type="text/html" title="Plain HTML" href="'.wl($ID,'do=export_html').'" />',$it); ptln('<link rel="alternate" type="text/plain" title="Wiki Markup" href="'.wl($ID, 'do=export_raw').'" />',$it); - ptln('<link rel="stylesheet" media="screen" type="text/css" href="'.DOKU_BASE.'lib/styles/style.css" />',$it); // setup robot tags apropriate for different modes if( ($ACT=='show' || $ACT=='export_html') && !$REV){ @@ -195,97 +194,16 @@ function tpl_metaheaders(){ ptln('<meta name="robots" content="noindex,nofollow" />',$it); } -/* - - // include some JavaScript language strings #FIXME still needed? - ptln('<script language="javascript" type="text/javascript" charset="utf-8">',$it); - ptln(" var alertText = '".str_replace('\\\\n','\\n',addslashes($lang['qb_alert']))."'",$it); - ptln(" var notSavedYet = '".str_replace('\\\\n','\\n',addslashes($lang['notsavedyet']))."'",$it); - ptln(" var DOKU_BASE = '".DOKU_BASE."'",$it); - - ptln('</script>',$it); - - // load the default JavaScript files - ptln('<script language="javascript" type="text/javascript" charset="utf-8" src="'. - DOKU_BASE.'lib/scripts/events.js"></script>',$it); - ptln('<script language="javascript" type="text/javascript" charset="utf-8" src="'. - DOKU_BASE.'lib/scripts/script.js"></script>',$it); - ptln('<script language="javascript" type="text/javascript" charset="utf-8" src="'. - DOKU_BASE.'lib/scripts/tw-sack.js"></script>',$it); - ptln('<script language="javascript" type="text/javascript" charset="utf-8" src="'. - DOKU_BASE.'lib/scripts/ajax.js"></script>',$it); - - - // dom tool tip library, for insitu footnotes - ptln('<script language="javascript" type="text/javascript" charset="utf-8" src="'. - DOKU_BASE.'lib/scripts/domLib.js"></script>',$it); - ptln('<script language="javascript" type="text/javascript" charset="utf-8" src="'. - DOKU_BASE.'lib/scripts/domTT.js"></script>',$it); - - ptln('<script language="javascript" type="text/javascript" charset="utf-8">',$it); - ptln("addEvent(window,'load',function(){ajax_qsearch.init('qsearch_in','qsearch_out');});",$it); - ptln("addEvent(window,'load',function(){addEvent(document,'click',closePopups);});",$it); - ptln('</script>',$it); - - // editing functions - if($ACT=='edit' || $ACT=='preview'){ - // add size control - ptln('<script language="javascript" type="text/javascript" charset="utf-8">',$it); - ptln("addEvent(window,'load',function(){initSizeCtl('sizectl','wikitext')});",$it+2); - ptln('</script>',$it); - - if($INFO['writable']){ - // load toolbar functions - ptln('<script language="javascript" type="text/javascript" charset="utf-8" src="'. - DOKU_BASE.'lib/scripts/edit.js"></script>',$it); - - // load spellchecker functions if wanted - if($conf['spellchecker']){ - ptln('<script language="javascript" type="text/javascript" charset="utf-8" src="'. - DOKU_BASE.'lib/scripts/spellcheck.js"></script>',$it+2); - } - - ptln('<script language="javascript" type="text/javascript" charset="utf-8">',$it); - - // add toolbar - require_once(DOKU_INC.'inc/toolbar.php'); - toolbar_JSdefines('toolbar'); - ptln("addEvent(window,'load',function(){initToolbar('toolbar','wikitext',toolbar);});",$it+2); - - // add pageleave check - ptln("addEvent(window,'load',function(){initChangeCheck('". - str_replace('\\\\n','\\n',addslashes($lang['notsavedyet']))."');});",$it); - - // add lock timer - ptln("addEvent(window,'load',function(){init_locktimer(". - ($conf['locktime']-60).",'". - str_replace('\\\\n','\\n',addslashes($lang['willexpire']))."');});",$it); - - // add spellchecker - if($conf['spellchecker']){ - //init here - ptln("addEvent(window,'load',function(){ ajax_spell.init('". - $lang['spell_start']."','". - $lang['spell_stop']."','". - $lang['spell_wait']."','". - $lang['spell_noerr']."','". - $lang['spell_nosug']."','". - $lang['spell_change']."'); });"); - } - ptln('</script>',$it); - } - } -*/ + // load stylesheets + ptln('<link rel="stylesheet" media="screen" type="text/css" href="'.DOKU_BASE.'lib/exe/css.php" />',$it); + ptln('<link rel="stylesheet" media="print" type="text/css" href="'.DOKU_BASE.'lib/exe/css.php?print=1" />',$it); + // load javascript $js_edit = ($ACT=='edit' || $ACT=='preview') ? 1 : 0; $js_write = ($INFO['writable']) ? 1 : 0; - + $js_sig = ($conf['useacl'] && $_SERVER['REMOTE_USER']) ? 1 : 0; ptln('<script language="javascript" type="text/javascript" charset="utf-8" src="'. - DOKU_BASE.'lib/exe/jscss.php?type=js&edit='.$js_edit.'&write='.$js_write.'"></script>',$it); - - - // plugin stylesheets and Scripts - plugin_printCSSJS(); + DOKU_BASE.'lib/exe/js.php?edit='.$js_edit.'&write='.$js_write.'&sig='.$js_sig.'"></script>',$it); } /** diff --git a/inc/toolbar.php b/inc/toolbar.php index aa52868d0b26ca3346e5207c457c225ced6c16a4..27e91ee47dbb20319a1c544145bed0812333696f 100644 --- a/inc/toolbar.php +++ b/inc/toolbar.php @@ -164,17 +164,6 @@ function toolbar_JSdefines($varname){ ), ); - // if logged in add sig button - if($conf['useacl'] && $_SERVER['REMOTE_USER']){ - $menu[] = array( - 'type' => 'insert', - 'title' => $lang['qb_sig'], - 'icon' => 'sig.png', - 'key' => 'y', - 'insert' => toolbar_signature(), - ); - } - // use JSON to build the JavaScript array $json = new JSON(); print "var $varname = ".$json->encode($menu).";\n"; @@ -187,16 +176,36 @@ function toolbar_JSdefines($varname){ */ function toolbar_signature(){ global $conf; - global $INFO; $sig = $conf['signature']; $sig = strftime($sig); $sig = str_replace('@USER@',$_SERVER['REMOTE_USER'],$sig); - $sig = str_replace('@NAME@',$INFO['userinfo']['name'],$sig); - $sig = str_replace('@MAIL@',$INFO['userinfo']['mail'],$sig); + $sig = str_replace('@NAME@',$_SESSION[$conf[title]]['auth']['info']['name'],$sig); + $sig = str_replace('@MAIL@',$_SESSION[$conf[title]]['auth']['info']['mail'],$sig); $sig = str_replace('@DATE@',date($conf['dformat']),$sig); return $sig; } +/** + * Adds the signature button to the already prepared Javascript array + * @param string $varname Name of the JS variable to fill + * @author Andreas Gohr <andi@splitbrain.org> + */ +function toolbar_addsigbutton($varname){ + global $lang; + + $menu = array( + 'type' => 'insert', + 'title' => $lang['qb_sig'], + 'icon' => 'sig.png', + 'key' => 'y', + 'insert' => toolbar_signature(), + ); + // use JSON to build the JavaScript array + $json = new JSON(); + print $varname.'['.$varname.'.length] = '.$json->encode($menu).";\n"; + +} + //Setup VIM: ex: et ts=4 enc=utf-8 : diff --git a/lib/exe/css.php b/lib/exe/css.php new file mode 100644 index 0000000000000000000000000000000000000000..7b6523b414b6a8dda77ba75e7135c80c2b212a67 --- /dev/null +++ b/lib/exe/css.php @@ -0,0 +1,165 @@ +<?php +/** + * DokuWiki StyleSheet creator + * + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * @author Andreas Gohr <andi@splitbrain.org> + */ + +if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/'); +define('NOSESSION',true); // we do not use a session or authentication here (better caching) +require_once(DOKU_INC.'inc/init.php'); +require_once(DOKU_INC.'inc/pageutils.php'); +require_once(DOKU_INC.'inc/io.php'); + +// Main (don't run when UNIT test) +if(!defined('SIMPLE_TEST')){ + header('Content-Type: text/css; charset=utf-8'); + css_out(); +} + + +// ---------------------- functions ------------------------------ + +/** + * Output all needed Styles + * + * @author Andreas Gohr <andi@splitbrain.org> + */ +function css_out(){ + global $conf; + global $lang; + $print = (bool) $_REQUEST['print']; //print mode? + + // The generated script depends on some dynamic options + $cache = getCacheName('styles'.$print,'.css'); + + // Array of needed files and their web locations, the latter ones + // are needed to fix relative paths in the stylesheets + $files = array(); + if($print){ + $files[DOKU_TPLINC.'print.css'] = DOKU_TPL; + // load plugin styles + $files = array_merge($files, css_pluginstyles('print')); + $files[DOKU_CONF.'userprint.css'] = ''; + }else{ + $files[DOKU_INC.'lib/styles/style.css'] = DOKU_BASE.'lib/styles/'; + //fixme spellchecker style + $files[DOKU_TPLINC.'layout.css'] = DOKU_TPL; + $files[DOKU_TPLINC.'design.css'] = DOKU_TPL; + if($lang['direction'] == 'rtl'){ + $files[DOKU_TPLINC.'rtl.css'] = DOKU_TPL; + } + // load plugin styles + $files = array_merge($files, css_pluginstyles('screen')); + $files[DOKU_CONF.'userstyle.css'] = ''; + } + + // check cache age + if(css_cacheok($cache,array_keys($files))){ + readfile($cache); + return; + } + + // start output buffering and build the stylesheet + ob_start(); + + // load files + foreach($files as $file => $location){ + print css_loadfile($file, $location); + } + + // end output buffering and get contents + $css = ob_get_contents(); + ob_end_clean(); + + // compress whitespace and comments + if($conf['compress']){ + $css = css_compress($css); + } + + // save cache file + io_saveFile($cache,$css); + + // finally send output + print $css; +} + +/** + * Checks if a CSS Cache file still is valid + * + * @author Andreas Gohr <andi@splitbrain.org> + */ +function css_cacheok($cache,$files){ + $ctime = @filemtime($cache); + if(!$ctime) return false; //There is no cache + + // some additional files to check + $files[] = DOKU_CONF.'dokuwiki.conf'; + $files[] = DOKU_CONF.'local.conf'; + $files[] = __FILE__; + + // now walk the files + foreach($files as $file){ + if(@filemtime($file) > $ctime){ + return false; + } + } + return true; +} + +/** + * Loads a given file and fixes relative URLs with the + * given location prefix + */ +function css_loadfile($file,$location=''){ + if(!@file_exists($file)) return ''; + $css = io_readFile($file); + if(!$location) return $css; + + $css = preg_replace('!(url\( *)([^/])!','\\1'.$location.'\\2',$css); + return $css; +} + +/** + * Returns a list of possible Plugin Styles (no existance check here) + * + * @author Andreas Gohr <andi@splitbrain.org> + */ +function css_pluginstyles($mode='screen'){ + $list = array(); + $plugins = plugin_list(); + foreach ($plugins as $p){ + if($mode == 'print'){ + $list[DOKU_PLUGIN."$p/print.css"] = DOKU_BASE."lib/plugins/$p/"; + }else{ + $list[DOKU_PLUGIN."$p/style.css"] = DOKU_BASE."lib/plugins/$p/"; + $list[DOKU_PLUGIN."$p/screen.css"] = DOKU_BASE."lib/plugins/$p/"; + } + } + return $list; +} + +/** + * Very simple CSS optimizer + * + * @author Andreas Gohr <andi@splitbrain.org> + */ +function css_compress($css){ + // strip whitespaces + $css = preg_replace('![\r\n\t ]+!',' ',$css); + $css = preg_replace('/ ?([:;,{}]) ?/','\\1',$css); + + // strip comments (ungreedy) + // We keep very small comments to maintain typical browser hacks + $css = preg_replace('!(/\*)(.{4,})(\*/)!U','',$css); + + // shorten colors + $css = preg_replace("/#([0-9a-fA-F]{1})\\1([0-9a-fA-F]{1})\\2([0-9a-fA-F]{1})\\3/", "#\\1\\2\\3",$css); + + return $css; +} + + +//Setup VIM: ex: et ts=4 enc=utf-8 : +?> diff --git a/lib/exe/jscss.php b/lib/exe/js.php similarity index 80% rename from lib/exe/jscss.php rename to lib/exe/js.php index 33d67eece5ad6db46ae479e99f82aa337e7f721f..9708dbc0d8a7f2092b7c7631932783935f07c528 100644 --- a/lib/exe/jscss.php +++ b/lib/exe/js.php @@ -1,6 +1,6 @@ <?php /** - * DokuWiki JavaScript and CSS creator + * DokuWiki JavaScript creator * * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * @author Andreas Gohr <andi@splitbrain.org> @@ -14,12 +14,9 @@ require_once(DOKU_INC.'inc/io.php'); // Main (don't run when UNIT test) if(!defined('SIMPLE_TEST')){ - if($_REQUEST['type'] == 'css'){ - css_out(); - }else{ - header('Content-Type: text/javascript; charset=utf-8'); - js_out(); - } + header('Content-Type: text/javascript; charset=utf-8'); + js_out(); + js_dynamicout(); } @@ -28,7 +25,6 @@ if(!defined('SIMPLE_TEST')){ /** * Output all needed JavaScript * - * @todo Add Whitespace and Comment Compression * @author Andreas Gohr <andi@splitbrain.org> */ function js_out(){ @@ -38,7 +34,7 @@ function js_out(){ $write = (bool) $_REQUEST['write']; // writable? // The generated script depends on some dynamic options - $cache = getCacheName($conf['lang'].$edit.$write,$ext='.js'); + $cache = getCacheName('scripts'.$edit.$write,'.js'); // Array of needed files $files = array( @@ -56,10 +52,11 @@ function js_out(){ } } - // FIXME load plugin scripts + // get possible plugin scripts + $plugins = js_pluginscripts(); // check cache age here - if(js_cacheok($cache,$files)){ + if(js_cacheok($cache,array_merge($files,$plugins))){ readfile($cache); return; } @@ -109,18 +106,22 @@ function js_out(){ } } + // load plugin scripts (suppress warnings for missing ones) + foreach($plugins as $plugin){ + @readfile($plugin); + } // load user script - if(@file_exists(DOKU_INC.'conf/userscript.js')){ - readfile(DOKU_INC.'conf/userscript.js'); - } + @readfile(DOKU_CONF.'userscript.js'); // end output buffering and get contents $js = ob_get_contents(); ob_end_clean(); // compress whitespace and comments - $js = js_compress($js); + if($conf['compress']){ + $js = js_compress($js); + } // save cache file io_saveFile($cache,$js); @@ -129,6 +130,21 @@ function js_out(){ print $js; } +/** + * Adds some dynamic JavaScript using the readonly Session + * + * @author Andreas Gohr <andi@splitbrain.org> + */ +function js_dynamicout(){ + $edit = (bool) $_REQUEST['edit']; // edit or preview mode? + $write = (bool) $_REQUEST['write']; // writable? + $sig = (bool) $_REQUEST['sig']; // show sig button? + if($edit && $write && $sig){ + require_once(DOKU_INC.'inc/toolbar.php'); + toolbar_addsigbutton('toolbar'); + } +} + /** * Checks if a JavaScript Cache file still is valid * @@ -139,9 +155,10 @@ function js_cacheok($cache,$files){ if(!$ctime) return false; //There is no cache // some additional files to check - $files[] = DOKU_INC.'conf/dokuwiki.conf'; - $files[] = DOKU_INC.'conf/local.conf'; - $files[] = DOKU_INC.'conf/userscript.js'; + $files[] = DOKU_CONF.'dokuwiki.conf'; + $files[] = DOKU_CONF.'local.conf'; + $files[] = DOKU_CONF.'userscript.js'; + $files[] = __FILE__; // now walk the files foreach($files as $file){ @@ -152,6 +169,20 @@ function js_cacheok($cache,$files){ return true; } +/** + * Returns a list of possible Plugin Scripts (no existance check here) + * + * @author Andreas Gohr <andi@splitbrain.org> + */ +function js_pluginscripts(){ + $list = array(); + $plugins = plugin_list(); + foreach ($plugins as $p){ + $list[] = DOKU_PLUGIN."$p/script.js"; + } + return $list; +} + /** * Escapes a String to be embedded in a JavaScript call, keeps \n * as newline @@ -171,7 +202,16 @@ function js_runonstart($func){ print "addEvent(window,'load',function(){ $func; });"; } -//http://modp.com/release/jsstrip/jsstrip.py +/** + * Strip comments and whitespaces from given JavaScript Code + * + * This is a rewrite of Nick Galbreaths python tool jsstrip.py which is + * released under BSD license. See link for original code. + * + * @author Nick Galbreath <nickg@modp.com> + * @author Andreas Gohr <andi@splitbrain.org> + * @link http://modp.com/release/jsstrip/ + */ function js_compress($s){ $i = 0; $line = 0; @@ -287,7 +327,5 @@ function js_compress($s){ return $out; } -//http://csstidy.sourceforge.net/download.php - //Setup VIM: ex: et ts=4 enc=utf-8 : ?> diff --git a/lib/scripts/script.js b/lib/scripts/script.js index 180f2dcd5df10ac2b26e29994f0e731e1d129185..b9185926574f32228796a5349562c9da68a1f473 100644 --- a/lib/scripts/script.js +++ b/lib/scripts/script.js @@ -6,8 +6,8 @@ * Some browser detection */ var clientPC = navigator.userAgent.toLowerCase(); // Get client info -var is_gecko = ((clientPC.indexOf('gecko')!=-1) && (clientPC.indexOf('spoofer')==-1) - && (clientPC.indexOf('khtml') == -1) && (clientPC.indexOf('netscape/7.0')==-1)); +var is_gecko = ((clientPC.indexOf('gecko')!=-1) && (clientPC.indexOf('spoofer')==-1) && + (clientPC.indexOf('khtml') == -1) && (clientPC.indexOf('netscape/7.0')==-1)); var is_safari = ((clientPC.indexOf('AppleWebKit')!=-1) && (clientPC.indexOf('spoofer')==-1)); var is_khtml = (navigator.vendor == 'KDE' || ( document.childNodes && !document.all && !navigator.taintEnabled )); if (clientPC.indexOf('opera')!=-1) { @@ -23,10 +23,11 @@ if (clientPC.indexOf('opera')!=-1) { */ function findPosX(object){ var curleft = 0; + var obj; if(typeof(object) == 'object'){ - var obj = object; + obj = object; }else{ - var obj = document.getElementById(object); + obj = document.getElementById(object); } if (obj.offsetParent){ while (obj.offsetParent){ @@ -47,10 +48,11 @@ function findPosX(object){ */ function findPosY(object){ var curtop = 0; + var obj; if(typeof(object) == 'object'){ - var obj = object; + obj = object; }else{ - var obj = document.getElementById(object); + obj = document.getElementById(object); } if (obj.offsetParent){ while (obj.offsetParent){ @@ -72,7 +74,7 @@ function findPosY(object){ function jsEscape(text){ var re=new RegExp("\\\\","g"); text=text.replace(re,"\\\\"); - var re=new RegExp("'","g"); + re=new RegExp("'","g"); text=text.replace(re,"\\'"); re=new RegExp('"',"g"); text=text.replace(re,'"'); @@ -150,8 +152,8 @@ function showTocToggle(showtxt,hidetxt) { document.writeln('<div class=\'toctoggle\'><a href="javascript:toggleToc()" class="toc">' + '<span id="showlink" style="display:none;">' + show + '</span>' + - '<span id="hidelink">' + hide + '</span>' - + '</a></div>'); + '<span id="hidelink">' + hide + '</span>' + + '</a></div>'); } } @@ -200,12 +202,14 @@ function getCookie(name) { var begin = dc.indexOf("; " + prefix); if (begin == -1) { begin = dc.indexOf(prefix); - if (begin != 0) return null; - } else + if (begin !== 0){ return null; } + } else { begin += 2; + } var end = document.cookie.indexOf(";", begin); - if (end == -1) + if (end == -1){ end = dc.length; + } return unescape(dc.substring(begin + prefix.length, end)); } @@ -217,8 +221,9 @@ function getCookie(name) { function fixDate(date) { var base = new Date(0); var skew = base.getTime(); - if (skew > 0) + if (skew > 0){ date.setTime(date.getTime() - skew); + } } /* @@ -258,16 +263,17 @@ function fnt(id, e, evt) { } // does the footnote tooltip already exist? - var fnt = document.getElementById('insitu-fn'+id); - if (!fnt) { + var fnote = document.getElementById('insitu-fn'+id); + var footnote; + if (!fnote) { // if not create it... // locate the footnote anchor element var a = document.getElementById( "fn"+id ); - if (!a) return; + if (!a){ return; } // anchor parent is the footnote container, get its innerHTML - var footnote = new String (a.parentNode.innerHTML); + footnote = new String (a.parentNode.innerHTML); // strip the leading footnote anchors and their comma separators footnote = footnote.replace(/<a\s.*?href=\".*\#fnt\d+\".*?<\/a>/gi, ''); @@ -276,7 +282,7 @@ function fnt(id, e, evt) { // prefix ids on any elements with "insitu-" to ensure they remain unique footnote = footnote.replace(/\bid=\"(.*?)\"/gi,'id="insitu-$1'); } else { - var footnote = new String(fnt.innerHTML); + footnote = new String(fnt.innerHTML); } // activate the tooltip @@ -289,13 +295,13 @@ function fnt(id, e, evt) { * Add the edit window size controls */ function initSizeCtl(ctlid,edid){ - if(!document.getElementById) return; + if(!document.getElementById){ return; } var ctl = document.getElementById(ctlid); var textarea = document.getElementById(edid); var hgt = getCookie('DokuWikisizeCtl'); - if(hgt == null){ + if(hgt === null || hgt === ''){ textarea.style.height = '300px'; }else{ textarea.style.height = hgt; @@ -319,7 +325,7 @@ function sizeCtl(edid,val){ var height = parseInt(textarea.style.height.substr(0,textarea.style.height.length-2)); height += val; textarea.style.height = height+'px'; - + var now = new Date(); fixDate(now); now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000); //expire in a year @@ -330,7 +336,7 @@ function sizeCtl(edid,val){ * Handler to close all open Popups */ function closePopups(){ - if(!document.getElementById) return; + if(!document.getElementById){ return; } var divs = document.getElementsByTagName('div'); for(var i=0; i < divs.length; i++){ diff --git a/lib/tpl/default/detail.php b/lib/tpl/default/detail.php index 70865c933cd6fa43617c17eabb1636df14fdac9a..5a59e03057d575fdfe38efd5f7e758ca2d569777 100644 --- a/lib/tpl/default/detail.php +++ b/lib/tpl/default/detail.php @@ -24,16 +24,6 @@ <?php tpl_metaheaders()?> <link rel="shortcut icon" href="<?php echo DOKU_BASE?>lib/images/favicon.ico" /> - <link rel="stylesheet" media="screen" type="text/css" href="<?php echo DOKU_TPL?>layout.css" /> - <link rel="stylesheet" media="screen" type="text/css" href="<?php echo DOKU_TPL?>design.css" /> - - <!--[if gte IE 5]> - <style type="text/css"> - /* that IE 5+ conditional comment makes this only visible in IE 5+ */ - /* IE bugfix for transparent PNGs */ - //DISABLED img { behavior: url("<?php echo DOKU_BASE?>lib/scripts/pngbehavior.htc"); } - </style> - <![endif]--> </head> <body> diff --git a/lib/tpl/default/main.php b/lib/tpl/default/main.php index afa0b5534316b037897f7c262c46dd9de4de0df6..bb32def6b216fdb4580e346aa6f29ebfbb4b9257 100644 --- a/lib/tpl/default/main.php +++ b/lib/tpl/default/main.php @@ -23,22 +23,6 @@ <?php tpl_metaheaders()?> <link rel="shortcut icon" href="<?php echo DOKU_BASE?>lib/images/favicon.ico" /> - <link rel="stylesheet" media="screen" type="text/css" href="<?php echo DOKU_TPL?>layout.css" /> - <link rel="stylesheet" media="screen" type="text/css" href="<?php echo DOKU_TPL?>design.css" /> - - <?php if($lang['direction'] == 'rtl') {?> - <link rel="stylesheet" media="screen" type="text/css" href="<?php echo DOKU_TPL?>rtl.css" /> - <?php } ?> - - <link rel="stylesheet" media="print" type="text/css" href="<?php echo DOKU_TPL?>print.css" /> - - <!--[if gte IE 5]> - <style type="text/css"> - /* that IE 5+ conditional comment makes this only visible in IE 5+ */ - /* IE bugfix for transparent PNGs */ - //DISABLED img { behavior: url("<?php echo DOKU_BASE?>lib/scripts/pngbehavior.htc"); } - </style> - <![endif]--> <?php /*old includehook*/ @include(dirname(__FILE__).'/meta.html')?> </head> diff --git a/lib/tpl/default/media.php b/lib/tpl/default/media.php index f6fb66750c2f063295042a2670891650a1268541..b3738e39a5494b89f1aa09f67280a4270bea7a1b 100644 --- a/lib/tpl/default/media.php +++ b/lib/tpl/default/media.php @@ -21,16 +21,7 @@ <?php tpl_metaheaders()?> <link rel="shortcut icon" href="<?php echo DOKU_BASE?>lib/images/favicon.ico" /> - <link rel="stylesheet" media="screen" type="text/css" href="<?php echo DOKU_TPL?>layout.css" /> - <link rel="stylesheet" media="screen" type="text/css" href="<?php echo DOKU_TPL?>design.css" /> - - <!--[if gte IE 5]> - <style type="text/css"> - /* that IE 5+ conditional comment makes this only visible in IE 5+ */ - /* IE bugfix for transparent PNGs */ - //DISABLED img { behavior: url("<?php echo DOKU_BASE?>lib/scripts/pngbehavior.htc"); } - </style> - <![endif]--> + </head> <body> diff --git a/lib/tpl/default/mediaedit.php b/lib/tpl/default/mediaedit.php index c7b7e2e53d0c3bd46bf55b341c88c6b7c6d5a54e..92d1db8dbc49312f830dd7f9610cf2bcdd47c540 100644 --- a/lib/tpl/default/mediaedit.php +++ b/lib/tpl/default/mediaedit.php @@ -22,8 +22,6 @@ <?php tpl_metaheaders()?> <link rel="shortcut icon" href="<?php echo DOKU_BASE?>images/favicon.ico" /> - <link rel="stylesheet" media="screen" type="text/css" href="<?php echo DOKU_TPL?>layout.css" /> - <link rel="stylesheet" media="screen" type="text/css" href="<?php echo DOKU_TPL?>design.css" /> </head> <body> diff --git a/lib/tpl/default/mediaref.php b/lib/tpl/default/mediaref.php index 61254c9cefc0adf4797781dd075f3d3ffbaf64a1..47752a571c50a47e9bffb4d40c57bba6538612d4 100644 --- a/lib/tpl/default/mediaref.php +++ b/lib/tpl/default/mediaref.php @@ -22,16 +22,7 @@ <?php tpl_metaheaders()?> <link rel="shortcut icon" href="<?php echo DOKU_BASE?>images/favicon.ico" /> - <link rel="stylesheet" media="screen" type="text/css" href="<?php echo DOKU_TPL?>layout.css" /> - <link rel="stylesheet" media="screen" type="text/css" href="<?php echo DOKU_TPL?>design.css" /> - - <!--[if gte IE 5]> - <style type="text/css"> - /* that IE 5+ conditional comment makes this only visible in IE 5+ */ - /* IE bugfix for transparent PNGs */ - //img { behavior: url("<?php echo DOKU_BASE?>/pngbehavior.htc"); } - </style> - <![endif]--> + </head> <body>