MDL-32683 use slashargument urls for yui combo loader

This commit is contained in:
Petr Skoda 2012-05-05 15:59:43 +02:00
parent ecbad2ad1c
commit 6e7b46018e
2 changed files with 17 additions and 9 deletions

View file

@ -109,12 +109,14 @@ foreach ($parts as $part) {
}
$filecontent = file_get_contents($contentfile);
$relroot = preg_replace('|^http.?://[^/]+|', '', $CFG->wwwroot);
if ($mimetype === 'text/css') {
if ($version == 'moodle') {
$filecontent = preg_replace('/([a-z0-9_-]+)\.(png|gif)/', 'yui_image.php?file='.$version.'/'.$frankenstyle.'/'.array_shift($bits).'/$1.$2', $filecontent);
$filecontent = preg_replace('/([a-z0-9_-]+)\.(png|gif)/', $relroot.'/theme/yui_image.php?file='.$version.'/'.$frankenstyle.'/'.array_shift($bits).'/$1.$2', $filecontent);
} else if ($version == 'gallery') {
// search for all images in gallery module CSS and serve them through the yui_image.php script
$filecontent = preg_replace('/([a-z0-9_-]+)\.(png|gif)/', 'yui_image.php?file='.$version.'/'.$bits[0].'/'.$bits[1].'/$1.$2', $filecontent);
$filecontent = preg_replace('/([a-z0-9_-]+)\.(png|gif)/', $relroot.'/theme/yui_image.php?file='.$version.'/'.$bits[0].'/'.$bits[1].'/$1.$2', $filecontent);
} else {
// First we need to remove relative paths to images. These are used by YUI modules to make use of global assets.
// I've added this as a separate regex so it can be easily removed once
@ -122,7 +124,7 @@ foreach ($parts as $part) {
$filecontent = preg_replace('#(\.\./\.\./\.\./\.\./assets/skins/sam/)?([a-z0-9_-]+)\.(png|gif)#', '$2.$3', $filecontent);
// search for all images in yui2 CSS and serve them through the yui_image.php script
$filecontent = preg_replace('/([a-z0-9_-]+)\.(png|gif)/', 'yui_image.php?file='.$version.'/$1.$2', $filecontent);
$filecontent = preg_replace('/([a-z0-9_-]+)\.(png|gif)/', $relroot.'/theme/yui_image.php?file='.$version.'/$1.$2', $filecontent);
}
}
@ -195,9 +197,13 @@ function combo_params() {
$parts = explode('?', $_SERVER['REQUEST_URI'], 2);
return $parts[1];
} else if (isset($_SERVER['QUERY_STRING'])) {
} else if (isset($_SERVER['QUERY_STRING']) and strpos($_SERVER['QUERY_STRING'], '?') !== false) {
return $_SERVER['QUERY_STRING'];
} else if ($slashargument = min_get_slash_argument()) {
$slashargument = ltrim($slashargument, '/');
return $slashargument;
} else {
// unsupported server, sorry!
combo_not_found('Unsupported server - query string can not be determined, try disabling YUI combo loading in admin settings.');