mirror of
https://github.com/moodle/moodle.git
synced 2025-04-14 13:02:07 +02:00
MDL-21241 theme CSS and JS gzip compression + some more fixes
This commit is contained in:
parent
085f71b728
commit
7c986f04e3
@ -71,4 +71,40 @@ function min_clean_param($value, $type) {
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method tries to enable output compression if possible.
|
||||
* This function must be called before any output or headers.
|
||||
*
|
||||
* (IE6 is not supported at all.)
|
||||
*
|
||||
* @return boolean, true if compression enabled
|
||||
*/
|
||||
function min_enable_zlib_compression() {
|
||||
|
||||
if (headers_sent()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// zlib.output_compression is preferred over ob_gzhandler()
|
||||
if (!empty($_SERVER['HTTP_USER_AGENT'])) {
|
||||
$agent = $_SERVER['HTTP_USER_AGENT'];
|
||||
// try to detect IE6 and prevent gzip because it is extremely buggy browser
|
||||
$parts = explode(';', $agent);
|
||||
if (isset($parts[1])) {
|
||||
$parts = explode(' ', trim($parts[1]));
|
||||
if (count($parts) > 1) {
|
||||
if ($parts[0] === 'MSIE' and (float)$string[1] < 7) {
|
||||
@ini_set('zlib.output_compression', '0');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ini_set('output_handler', '');
|
||||
@ini_set('zlib.output_compression', 'on');
|
||||
|
||||
return true;
|
||||
}
|
@ -144,7 +144,8 @@ function send_cached_image($imagepath, $rev) {
|
||||
header('Content-Type: '.$mimetype);
|
||||
header('Content-Length: '.filesize($imagepath));
|
||||
|
||||
while (@ob_end_flush()); //flush the buffers - save memory and disable sid rewrite
|
||||
// no need to gzip already compressed images ;-)
|
||||
|
||||
readfile($imagepath);
|
||||
die;
|
||||
}
|
||||
@ -170,7 +171,6 @@ function send_uncached_image($imagepath) {
|
||||
header('Content-Type: '.$mimetype);
|
||||
header('Content-Length: '.filesize($imagepath));
|
||||
|
||||
while (@ob_end_flush()); //flush the buffers - save memory and disable sid rewrite
|
||||
readfile($imagepath);
|
||||
die;
|
||||
}
|
||||
|
@ -89,9 +89,10 @@ function send_cached_js($jspath) {
|
||||
header('Pragma: ');
|
||||
header('Accept-Ranges: none');
|
||||
header('Content-Type: application/x-javascript');
|
||||
header('Content-Length: '.filesize($jspath));
|
||||
if (!min_enable_zlib_compression()) {
|
||||
header('Content-Length: '.filesize($jspath));
|
||||
}
|
||||
|
||||
while (@ob_end_flush()); //flush the buffers - save memory and disable sid rewrite
|
||||
readfile($jspath);
|
||||
die;
|
||||
}
|
||||
@ -105,7 +106,6 @@ function send_uncached_js($js) {
|
||||
header('Content-Type: application/x-javascript');
|
||||
header('Content-Length: '.strlen($js));
|
||||
|
||||
while (@ob_end_flush()); //flush the buffers - save memory and disable sid rewrite
|
||||
echo $js;
|
||||
die;
|
||||
}
|
||||
|
@ -129,9 +129,10 @@ EOF;
|
||||
header('Pragma: ');
|
||||
header('Accept-Ranges: none');
|
||||
header('Content-Type: text/css');
|
||||
header('Content-Length: '.strlen($css));
|
||||
if (!min_enable_zlib_compression()) {
|
||||
header('Content-Length: '.strlen($css));
|
||||
}
|
||||
|
||||
while (@ob_end_flush()); //flush the buffers - save memory and disable sid rewrite
|
||||
echo $css;
|
||||
die;
|
||||
}
|
||||
@ -145,9 +146,10 @@ function send_cached_css($csspath, $rev) {
|
||||
header('Pragma: ');
|
||||
header('Accept-Ranges: none');
|
||||
header('Content-Type: text/css');
|
||||
header('Content-Length: '.filesize($csspath));
|
||||
if (!min_enable_zlib_compression()) {
|
||||
header('Content-Length: '.filesize($csspath));
|
||||
}
|
||||
|
||||
while (@ob_end_flush()); //flush the buffers - save memory and disable sid rewrite
|
||||
readfile($csspath);
|
||||
die;
|
||||
}
|
||||
|
@ -44,6 +44,8 @@ if (file_exists("$CFG->dirroot/theme/$themename/config.php")) {
|
||||
css_not_found();
|
||||
}
|
||||
|
||||
// no gzip compression when debugging
|
||||
|
||||
$candidatesheet = "$CFG->dataroot/cache/theme/$themename/designer.ser";
|
||||
|
||||
if (!file_exists($candidatesheet)) {
|
||||
@ -85,9 +87,8 @@ function send_uncached_css($css, $lifetime = THEME_DESIGNER_CACHE_LIFETIME) {
|
||||
header('Pragma: ');
|
||||
header('Accept-Ranges: none');
|
||||
header('Content-Type: text/css');
|
||||
header('Content-Length: '.strlen($css));
|
||||
//header('Content-Length: '.strlen($css));
|
||||
|
||||
while (@ob_end_flush()); //flush the buffers - save memory and disable sid rewrite
|
||||
echo($css);
|
||||
die;
|
||||
}
|
||||
|
@ -92,9 +92,10 @@ function combo_send_cached($content, $mimetype) {
|
||||
header('Cache-Control: max-age=315360000');
|
||||
header('Accept-Ranges: none');
|
||||
header('Content-Type: '.$mimetype);
|
||||
header('Content-Length: '.strlen($content));
|
||||
if (!min_enable_zlib_compression()) {
|
||||
header('Content-Length: '.strlen($content));
|
||||
}
|
||||
|
||||
while (@ob_end_flush()); //flush the buffers - save memory and disable sid rewrite
|
||||
echo $content;
|
||||
die;
|
||||
}
|
||||
|
@ -75,7 +75,8 @@ function yui_image_cached($imagepath) {
|
||||
header('Content-Type: '.$mimetype);
|
||||
header('Content-Length: '.filesize($imagepath));
|
||||
|
||||
while (@ob_end_flush()); //flush the buffers - save memory and disable sid rewrite
|
||||
// no need to gzip already compressed images ;-)
|
||||
|
||||
readfile($imagepath);
|
||||
die;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user