From c51f90d7a072929e2b636e986b8ea2121bc5a630 Mon Sep 17 00:00:00 2001 From: Dominik Eckelmann Date: Tue, 24 Jan 2012 11:12:44 +0100 Subject: let js.php use multiple caches --- lib/exe/js.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'lib/exe/js.php') diff --git a/lib/exe/js.php b/lib/exe/js.php index b7f2fd222..c929c9ba5 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -31,8 +31,14 @@ function js_out(){ global $lang; global $config_cascade; + if (isset($_GET['cacheKey'])) { + $cacheKey = strval($_GET['cacheKey']); + } else { + $cacheKey = ''; + } + // The generated script depends on some dynamic options - $cache = new cache('scripts'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'], + $cache = new cache('scripts'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'].$cacheKey, '.js'); // load minified version for some files -- cgit v1.2.3 From 81aca18e6e88c08386c11592dbf4650114aba04f Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Wed, 1 Feb 2012 20:07:04 +0100 Subject: removed some more occurances of DOKU_TPL* --- lib/exe/js.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/exe/js.php') diff --git a/lib/exe/js.php b/lib/exe/js.php index b7f2fd222..963eebd5f 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -65,7 +65,7 @@ function js_out(){ # disabled for FS#1958 DOKU_INC.'lib/scripts/hotkeys.js', DOKU_INC.'lib/scripts/behaviour.js', DOKU_INC.'lib/scripts/page.js', - DOKU_TPLINC.'script.js', + tpl_incdir().'script.js', ); // add possible plugin scripts and userscript @@ -87,7 +87,7 @@ function js_out(){ // add some global variables print "var DOKU_BASE = '".DOKU_BASE."';"; - print "var DOKU_TPL = '".DOKU_TPL."';"; + print "var DOKU_TPL = '".tpl_basedir()."';"; // FIXME: Move those to JSINFO print "var DOKU_UHN = ".((int) useHeading('navigation')).";"; print "var DOKU_UHC = ".((int) useHeading('content')).";"; -- cgit v1.2.3 From e67004f5b686076af0dbf00cf574ac643d003cae Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Tue, 7 Feb 2012 19:41:09 +0100 Subject: trigger JS_CACHE_USE in lib/exe/js.php This removes the cachekey parameter again and instead follows @michitux's suggestion to trigger an event for the cache usage --- lib/exe/js.php | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'lib/exe/js.php') diff --git a/lib/exe/js.php b/lib/exe/js.php index c929c9ba5..95ca10e87 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -31,15 +31,9 @@ function js_out(){ global $lang; global $config_cascade; - if (isset($_GET['cacheKey'])) { - $cacheKey = strval($_GET['cacheKey']); - } else { - $cacheKey = ''; - } - // The generated script depends on some dynamic options - $cache = new cache('scripts'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'].$cacheKey, - '.js'); + $cache = new cache('scripts'.$_SERVER['HTTP_HOST'].$_SERVER['SERVER_PORT'],'.js'); + $cache->_event = 'JS_CACHE_USE'; // load minified version for some files $min = $conf['compress'] ? '.min' : ''; @@ -85,8 +79,8 @@ function js_out(){ // check cache age & handle conditional request // This may exit if a cache can be used - http_cached($cache->cache, - $cache->useCache(array('files' => $cache_files))); + $cache_ok = $cache->useCache(array('files' => $cache_files)); + http_cached($cache->cache, $cache_ok); // start output buffering and build the script ob_start(); -- cgit v1.2.3 From ca53ac989366b6c0519b74dc7152cb5e68c6bbad Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 4 May 2012 15:12:37 +0200 Subject: Correctly handle multiline strings in JS compressor See http://stackoverflow.com/questions/805107/how-to-create-multiline-strings for info on them. --- lib/exe/js.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'lib/exe/js.php') diff --git a/lib/exe/js.php b/lib/exe/js.php index 4b72014b2..7c54f3e2e 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -307,7 +307,10 @@ function js_compress($s){ $j += 1; } } - $result .= substr($s,$i,$j+1); + $string = substr($s,$i,$j+1); + // remove multiline markers: + $string = str_replace("\\\n",'',$string); + $result .= $string; $i = $i + $j + 1; continue; } @@ -322,7 +325,10 @@ function js_compress($s){ $j += 1; } } - $result .= substr($s,$i,$j+1); + $string = substr($s,$i,$j+1); + // remove multiline markers: + $string = str_replace("\\\n",'',$string); + $result .= $string; $i = $i + $j + 1; continue; } -- cgit v1.2.3 From 3009a773c06e6e5d731c42b12ad82272f9706f03 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 28 Jul 2012 10:40:48 +0200 Subject: replaced use of basename() with utf8_basename() FS#2015 --- lib/exe/js.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/exe/js.php') diff --git a/lib/exe/js.php b/lib/exe/js.php index 7c54f3e2e..f84c07709 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -143,7 +143,7 @@ function js_load($file){ // is it a include_once? if($match[1]){ - $base = basename($ifile); + $base = utf8_basename($ifile); if($loaded[$base]) continue; $loaded[$base] = true; } -- cgit v1.2.3 From 80a47290a7a01f2a320d09d387eea690ce1f62b4 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Mon, 6 Aug 2012 20:34:51 +0200 Subject: do not recompress already minified js FS#2574 --- lib/exe/js.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'lib/exe/js.php') diff --git a/lib/exe/js.php b/lib/exe/js.php index f84c07709..634e21207 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -102,8 +102,12 @@ function js_out(){ // load files foreach($files as $file){ + $ismin = (substr($file,-7) == '.min.js'); + echo "\n\n/* XXXXXXXXXX begin of ".str_replace(DOKU_INC, '', $file) ." XXXXXXXXXX */\n\n"; + if($ismin) echo "\n/* BEGIN NOCOMPRESS */\n"; js_load($file); + if($ismin) echo "\n/* END NOCOMPRESS */\n"; echo "\n\n/* XXXXXXXXXX end of " . str_replace(DOKU_INC, '', $file) . " XXXXXXXXXX */\n\n"; } @@ -262,7 +266,18 @@ function js_compress($s){ if($ch == '/' && $s{$i+1} == '*' && $s{$i+2} != '@'){ $endC = strpos($s,'*/',$i+2); if($endC === false) trigger_error('Found invalid /*..*/ comment', E_USER_ERROR); - $i = $endC + 2; + + // check if this is a NOCOMPRESS comment + if(substr($s, $i, $endC+2-$i) == '/* BEGIN NOCOMPRESS */'){ + $endNC = strpos($s, '/* END NOCOMPRESS */', $endC+2); + if($endNC === false) trigger_error('Found invalid NOCOMPRESS comment', E_USER_ERROR); + + // verbatim copy contents, trimming but putting it on its own line + $result .= "\n".trim(substr($s, $i + 22, $endNC - ($i + 22)))."\n"; // BEGIN comment = 22 chars + $i = $endNC + 20; // END comment = 20 chars + }else{ + $i = $endC + 2; + } continue; } -- cgit v1.2.3