summaryrefslogtreecommitdiff
path: root/itjs.class
diff options
context:
space:
mode:
Diffstat (limited to 'itjs.class')
-rw-r--r--itjs.class16
1 files changed, 5 insertions, 11 deletions
diff --git a/itjs.class b/itjs.class
index c54abd3..18c7a18 100644
--- a/itjs.class
+++ b/itjs.class
@@ -115,7 +115,7 @@ static function encode($values)
static function filenames($filelist)
{
$result = array();
- $path = $GLOBALS['ULTRAHOME'] . "/itjs";
+ $local = $GLOBALS['ULTRAHOME'] . "/itjs";
$itjs = "/www/server/phpinclude/itools/itjs";
$libsearch = strlen($GLOBALS['debug_lib']) > 1 ? "/www/lib-" . $GLOBALS['debug_lib'] . ".search.ch" : "/www/lib.search.ch";
$special = array(
@@ -124,19 +124,13 @@ static function filenames($filelist)
"state.html" => "$itjs/state.html",
"error.gif" => "$itjs/error.gif",
"search.css" => "$libsearch/doc/search.css",
- "searchlib.js" => "$libsearch/itjs/searchlib.js",
- "sl_state.js" => "$libsearch/itjs/sl_state.js",
- "sl_dropdown.js" => "$libsearch/itjs/sl_dropdown.js",
- "sl_collapse.js" => "$libsearch/itjs/sl_collapse.js",
- "sl_adid_debug.js" => "$libsearch/itjs/sl_adid_debug.js",
- "locateme.js" => "$libsearch/itjs/locateme.js",
"prettyprint.css" => "$libsearch/doc/prettyprint.css",
"PIE.htc" => "$libsearch/doc/PIE.htc",
);
- foreach (array_filter(explode(",", basename($filelist))) as $file)
+ foreach (it::match("[-\w.=?&]+", basename($filelist), array('all' => true)) as $file) # split by comma but ignore illegal chars
{
- $filenames = $special[$file] ?: (file_exists("$path/" . it::replace(array('[\?\x00].*' => ""), $file)) ? "$path/$file" : "$libsearch/itjs/$file");
+ $filenames = $special[$file] ?: (file_exists("$local/$file") ? "$local/$file" : "$libsearch/itjs/$file");
foreach (explode(",", $filenames) as $filename)
if (!$seen[$filename]++)
@@ -198,7 +192,7 @@ static function checksum($fnlist, $p = array())
{
$p += array('short_expire' => true);
- $filenames = array_merge(is_array($fnlist) ? $fnlist : itjs::filenames($fnlist), array("/www/lib.search.ch/var/jquery-ui/dist/minified/jquery.ui.core.min.js", "/www/lib.search.ch/var/jquery/dist/jquery.min.js")); # jquery files included by lib/jquery.js
+ $filenames = array_merge(itjs::filenames(join(",", (array)$fnlist)), array("/www/lib.search.ch/var/jquery-ui/dist/minified/jquery.ui.core.min.js", "/www/lib.search.ch/var/jquery/dist/jquery.min.js")); # jquery files included by lib/jquery.js
$key = "itjs_" . md5(join("", it::map('"$v" . @filemtime("$v")', $filenames)));
if ($p['short_expire'] && (time() - max(@array_map('filemtime', $filenames)) < 60))
@@ -210,7 +204,7 @@ static function checksum($fnlist, $p = array())
function crcurl($url, $p = array())
{
if (it::match('^http', $url)) # remote url, must fetch to crc
- list($fn, $short_expire) = array(it_url::get_cache(array('url' => $url, 'maxage' => 3600) + $p), false);
+ list($fn, $short_expire) = array(it_url::get_cache(array('url' => $url, 'maxage' => 3600, 'id' => "itjs_crcurl") + $p), false);
else
list($fn, $short_expire) = array(($m = it::match("^//(\w+)(/.*)", $url)) ? "/www/$m[0].search.ch" . $m[1] : $GLOBALS['ULTRAHOME'] . $url, true);;