/** * Minify, combine and load site stylesheet */ public static function load() { $backend_site_css_path = MINIFY . DS . 'backend_site.minify.css'; $frontend_site_css_path = MINIFY . DS . 'frontend_site.minify.css'; // Load stylesheets if (count(Stylesheet::$stylesheets) > 0) { $backend_buffer = ''; $backend_regenerate = false; $frontend_buffer = ''; $frontend_regenerate = false; // Sort stylesheets by priority $stylesheets = Arr::subvalSort(Stylesheet::$stylesheets, 'priority'); if (BACKEND) { // Build backend site stylesheets foreach ($stylesheets as $stylesheet) { if (file_exists(ROOT . DS . $stylesheet['file']) and ($stylesheet['load'] == 'backend' or $stylesheet['load'] == 'both')) { if (!file_exists($backend_site_css_path) or filemtime(ROOT . DS . $stylesheet['file']) > filemtime($backend_site_css_path)) { $backend_regenerate = true; break; } } } // Regenerate site stylesheet if ($backend_regenerate) { foreach ($stylesheets as $stylesheet) { if (file_exists(ROOT . DS . $stylesheet['file']) and ($stylesheet['load'] == 'backend' or $stylesheet['load'] == 'both')) { $backend_buffer .= file_get_contents(ROOT . DS . $stylesheet['file']); } } $backend_buffer = Stylesheet::parseVariables($backend_buffer); file_put_contents($backend_site_css_path, MinifyCSS::process($backend_buffer)); $backend_regenerate = false; } } else { // Build frontend site stylesheets foreach ($stylesheets as $stylesheet) { if (file_exists(ROOT . DS . $stylesheet['file']) and ($stylesheet['load'] == 'frontend' or $stylesheet['load'] == 'both')) { if (!file_exists($frontend_site_css_path) or filemtime(ROOT . DS . $stylesheet['file']) > filemtime($frontend_site_css_path)) { $frontend_regenerate = true; break; } } } // Regenerate site stylesheet if ($frontend_regenerate) { foreach ($stylesheets as $stylesheet) { if (file_exists(ROOT . DS . $stylesheet['file']) and ($stylesheet['load'] == 'frontend' or $stylesheet['load'] == 'both')) { $frontend_buffer .= file_get_contents(ROOT . DS . $stylesheet['file']); } } $frontend_buffer = Stylesheet::parseVariables($frontend_buffer); file_put_contents($frontend_site_css_path, MinifyCSS::process($frontend_buffer)); $frontend_regenerate = false; } } // Render if (BACKEND) { echo '<link rel="stylesheet" href="' . Option::get('siteurl') . '/tmp/minify/backend_site.minify.css?' . Option::get('styles_version') . '" type="text/css" />'; } else { echo '<link rel="stylesheet" href="' . Option::get('siteurl') . '/tmp/minify/frontend_site.minify.css?' . Option::get('styles_version') . '" type="text/css" />' . "\n"; } } }