Simplify compile_file()

This commit is contained in:
Jakub Vrana 2012-09-06 22:37:24 -07:00
parent e767663f65
commit dd86e1892d
2 changed files with 15 additions and 12 deletions

View file

@ -3,21 +3,21 @@ header("Expires: " . gmdate("D, d M Y H:i:s", time() + 365*24*60*60) . " GMT");
if ($_GET["file"] == "favicon.ico") { if ($_GET["file"] == "favicon.ico") {
header("Content-Type: image/x-icon"); header("Content-Type: image/x-icon");
echo "compile_file('../adminer/static/favicon.ico', 'add_quo_slashes');"; echo compile_file('../adminer/static/favicon.ico');
} elseif ($_GET["file"] == "default.css") { } elseif ($_GET["file"] == "default.css") {
header("Content-Type: text/css; charset=utf-8"); header("Content-Type: text/css; charset=utf-8");
echo lzw_decompress("compile_file('../adminer/static/default.css', 'minify_css');"); echo lzw_decompress(compile_file('../adminer/static/default.css', 'minify_css'));
} elseif ($_GET["file"] == "functions.js") { } elseif ($_GET["file"] == "functions.js") {
header("Content-Type: text/javascript; charset=utf-8"); header("Content-Type: text/javascript; charset=utf-8");
echo lzw_decompress("compile_file('../adminer/static/functions.js;static/editing.js', 'minify_js');"); echo lzw_decompress(compile_file('../adminer/static/functions.js;static/editing.js', 'minify_js'));
} else { } else {
header("Content-Type: image/gif"); header("Content-Type: image/gif");
switch ($_GET["file"]) { switch ($_GET["file"]) {
case "plus.gif": echo "compile_file('../adminer/static/plus.gif', 'add_quo_slashes');"; break; case "plus.gif": echo compile_file('../adminer/static/plus.gif'); break;
case "cross.gif": echo "compile_file('../adminer/static/cross.gif', 'add_quo_slashes');"; break; case "cross.gif": echo compile_file('../adminer/static/cross.gif'); break;
case "up.gif": echo "compile_file('../adminer/static/up.gif', 'add_quo_slashes');"; break; case "up.gif": echo compile_file('../adminer/static/up.gif'); break;
case "down.gif": echo "compile_file('../adminer/static/down.gif', 'add_quo_slashes');"; break; case "down.gif": echo compile_file('../adminer/static/down.gif'); break;
case "arrow.gif": echo "compile_file('../adminer/static/arrow.gif', 'add_quo_slashes');"; break; case "arrow.gif": echo compile_file('../adminer/static/arrow.gif'); break;
} }
} }
exit; exit;

View file

@ -248,14 +248,14 @@ function php_shrink($input) {
} }
function minify_css($file) { function minify_css($file) {
return add_quo_slashes(lzw_compress(preg_replace('~\\s*([:;{},])\\s*~', '\\1', preg_replace('~/\\*.*\\*/~sU', '', $file)))); return lzw_compress(preg_replace('~\\s*([:;{},])\\s*~', '\\1', preg_replace('~/\\*.*\\*/~sU', '', $file)));
} }
function minify_js($file) { function minify_js($file) {
if (function_exists('jsShrink')) { if (function_exists('jsShrink')) {
$file = jsShrink($file); $file = jsShrink($file);
} }
return add_quo_slashes(lzw_compress($file)); return lzw_compress($file);
} }
function compile_file($match) { function compile_file($match) {
@ -264,7 +264,10 @@ function compile_file($match) {
foreach (explode(";", $match[1]) as $filename) { foreach (explode(";", $match[1]) as $filename) {
$file .= file_get_contents(dirname(__FILE__) . "/$project/$filename"); $file .= file_get_contents(dirname(__FILE__) . "/$project/$filename");
} }
return call_user_func($match[2], $file); if ($match[2]) {
$file = call_user_func($match[2], $file);
}
return '"' . add_quo_slashes($file) . '"';
} }
$driver = ""; $driver = "";
@ -347,7 +350,7 @@ foreach (array("adminer", "editor") as $project) {
$file = str_replace('<?php echo $LANG; ?>', $_SESSION["lang"], $file); $file = str_replace('<?php echo $LANG; ?>', $_SESSION["lang"], $file);
} }
$file = str_replace('<script type="text/javascript" src="static/editing.js"></script>' . "\n", "", $file); $file = str_replace('<script type="text/javascript" src="static/editing.js"></script>' . "\n", "", $file);
$file = preg_replace_callback("~compile_file\\('([^']+)', '([^']+)'\\);~", 'compile_file', $file); // integrate static files $file = preg_replace_callback("~compile_file\\('([^']+)'(?:, '([^']*)')?\\)~", 'compile_file', $file); // integrate static files
$replace = 'h(preg_replace("~\\\\\\\\?.*~", "", ME)) . "?file=\\1&amp;version=' . $VERSION; $replace = 'h(preg_replace("~\\\\\\\\?.*~", "", ME)) . "?file=\\1&amp;version=' . $VERSION;
$file = preg_replace('~\\.\\./adminer/static/(default\\.css|functions\\.js|favicon\\.ico)~', '<?php echo ' . $replace . '"; ?>', $file); $file = preg_replace('~\\.\\./adminer/static/(default\\.css|functions\\.js|favicon\\.ico)~', '<?php echo ' . $replace . '"; ?>', $file);
$file = preg_replace('~\\.\\./adminer/static/([^\'"]*)~', '" . ' . $replace, $file); $file = preg_replace('~\\.\\./adminer/static/([^\'"]*)~', '" . ' . $replace, $file);