Load style.css from theme when autocache is enabled

This commit is contained in:
Onivis Yhonay d'Izeworudi 2012-03-18 16:59:13 +01:00
parent 154070a739
commit f72b8babc0

View File

@ -306,6 +306,7 @@ class Page {
// store local copy for speed. // store local copy for speed.
$autocache_css = $config->get_bool("autocache_css"); $autocache_css = $config->get_bool("autocache_css");
$autocache_js = $config->get_bool("autocache_js"); $autocache_js = $config->get_bool("autocache_js");
$theme_name = $config->get_string('theme', 'default');
if (!$autocache_css && !$autocache_js) { if (!$autocache_css && !$autocache_js) {
return false; // caching disabled return false; // caching disabled
@ -352,8 +353,21 @@ class Page {
$replace = 'url("../../${1}")'; $replace = 'url("../../${1}")';
$contents_from_extensions = preg_replace($pattern, $replace, $contents_from_extensions); $contents_from_extensions = preg_replace($pattern, $replace, $contents_from_extensions);
} }
// Combine the two // Get CSS from theme
$data = $contents_from_lib .' '. $contents_from_extensions; $contents_from_theme = '';
$css_files = glob("themes/$theme_name/style.css");
if($css_files) {
foreach($css_files as $css_file) {
$contents_from_theme .= file_get_contents($css_file);
}
// Can't directly cache the CSS files, as they might have relative locations to images, etc. in them.
// We have to adjust the URLs accordingly before saving the cached file.
$pattern = '/url[\s]*\([\s]*["\']?([^"\'\)]+)["\']?[\s]*\)/';
$replace = 'url("../../${1}")';
$contents_from_theme = preg_replace($pattern, $replace, $contents_from_theme);
}
// Combine the three
$data = $contents_from_lib .' '. $contents_from_extensions .' '. $contents_from_theme;
// Minify the CSS if enabled. // Minify the CSS if enabled.
if($config->get_bool("autocache_min_css")) { if($config->get_bool("autocache_min_css")) {
@ -388,6 +402,12 @@ class Page {
$this->add_html_header('<link rel="stylesheet" href="'.$data_href.'/'.$css_file.'" type="text/css">'); $this->add_html_header('<link rel="stylesheet" href="'.$data_href.'/'.$css_file.'" type="text/css">');
} }
} }
$css_files = glob("themes/$theme_name/style.css");
if($css_files) {
foreach($css_files as $css_file) {
$this->add_html_header('<link rel="stylesheet" href="'.$data_href.'/'.$css_file.'" type="text/css">');
}
}
} }