function processCSSFiles() { global $gantry; $cache_time = $gantry->get("gzipper-time"); $expires_time = $gantry->get("gzipper-expirestime", 1440); $strip_css = $gantry->get("gzipper-stripwhitespace", 1); $ordered_files = array(); $output = array(); $css_links = $gantry->_styles; foreach ($css_links as $filepath => $urlpath) { $ordered_files[dirname($filepath)][basename($filepath)] = $urlpath; } foreach ($ordered_files as $dir => $files) { if (!is_writable($dir)) { foreach ($files as $css_file) { $gantry->document->addStyleSheet($css_file); } continue; } $md5sum = ""; $path = ""; jimport('joomla.filesystem.file'); //first trip through to build filename foreach ($files as $file => $details) { $md5sum .= md5($details); $detailspath = $dir . DS . $file; if (JFile::exists($detailspath)) { $path = dirname($details); } } $cache_filename = "css-" . md5($md5sum) . ".php"; $cache_fullpath = $dir . DS . $cache_filename; //see if file is stale if (JFile::exists($cache_fullpath)) { $diff = time() - filectime($cache_fullpath); } else { $diff = $cache_time + 1; } if ($diff > $cache_time) { $outfile = GantryGZipper::_getOutHeader("css", $expires_time); foreach ($files as $file => $details) { $detailspath = $dir . DS . $file; if (JFile::exists($detailspath)) { $css_content = JFile::read($detailspath); if ($strip_css) { $css_content = GantryGZipper::_stripCSSWhiteSpace($css_content); } $outfile .= "\n\n/*** " . $file . " ***/\n\n" . $css_content; } } JFile::write($cache_fullpath, $outfile); } $cache_file_name = $path . "/" . $cache_filename; $gantry->document->addStyleSheet($cache_file_name); } }
public static function processCSSFiles() { /** @global $gantry Gantry */ global $gantry; $cache_time = $gantry->get("gzipper-time"); $expires_time = $gantry->get("gzipper-expirestime", 1440); $strip_css = $gantry->get("gzipper-stripwhitespace", 1); $grouped_priories = array(); $output = array(); foreach ($gantry->_styles as $priorities) { foreach ($priorities as $links) { $css_links[$links->getPath()] = $links->getUrl(); } } // $css_links = $gantry->_styles; ksort($gantry->_styles); foreach ($gantry->_styles as $style_priority => $styles) { $order_keeper = 0; $bump_ok = false; foreach ($styles as $style_entry) { if ($style_entry->getType() == 'url') { $directory = 'REMOTE_URL'; $filename = $style_entry->getUrl(); $bump_ok = true; } else { $directory = dirname($style_entry->getPath()); $filename = basename($style_entry->getPath()); } $grouped_priories[$style_priority][$order_keeper][$directory][$filename] = $style_entry; if ($bump_ok) { $order_keeper++; $bump_ok = false; } } } foreach ($grouped_priories as $priority => $order_kept_entries) { foreach ($order_kept_entries as $ordered_files) { foreach ($ordered_files as $dir => $files) { // Process full urls if ($dir == 'REMOTE_URL') { foreach ($files as $file => $link) { $gantry->document->addStyleSheet($link->getUrl()); } continue; } else { if (!is_writable($dir)) { foreach ($files as $css_file) { $gantry->document->addStyleSheet($css_file->getUrl()); } continue; } $md5sum = ""; $path = ""; jimport('joomla.filesystem.file'); //first trip through to build filename foreach ($files as $file => $details) { $md5sum .= md5($details->getUrl()); $detailspath = $dir . '/' . $file; if (JFile::exists($detailspath)) { $path = dirname($details->getUrl()); } } $cache_filename = "css-" . md5($md5sum) . ".php"; $cache_fullpath = $dir . '/' . $cache_filename; //see if file is stale if (JFile::exists($cache_fullpath)) { $diff = time() - filectime($cache_fullpath); } else { $diff = $cache_time + 1; } if ($diff > $cache_time) { $outfile = GantryGZipper::_getOutHeader("css", $expires_time); foreach ($files as $file => $details) { $detailspath = $dir . '/' . $file; if (JFile::exists($detailspath)) { $css_content = JFile::read($detailspath); if ($strip_css) { $css_content = GantryGZipper::_stripCSSWhiteSpace($css_content); } $outfile .= "\n\n/*** " . $file . " ***/\n\n" . $css_content; } } JFile::write($cache_fullpath, $outfile); } $cache_file_name = $path . "/" . $cache_filename; $gantry->document->addStyleSheet($cache_file_name); } } } } }
function processCSSFiles() { global $gantry; $cache_time = $gantry->get("gzipper-time"); $expires_time = $gantry->get("gzipper-expirestime", 1440); $strip_css = $gantry->get("gzipper-stripwhitespace", 1); $grouped_priories = array(); $output = array(); foreach ($gantry->_styles as $priorities) { foreach ($priorities as $links) { $css_links[$links->path] = $links->url; } } // $css_links = $gantry->_styles; ksort($gantry->_styles); foreach ($gantry->_styles as $style_priority => $styles) { $order_keeper = 0; $bump_ok = false; foreach ($styles as $style_entry) { if ($style_entry->type == 'url') { $directory = 'REMOTE_URL'; $filename = $style_entry->url; $bump_ok = true; } else { $directory = dirname($style_entry->path); $filename = basename($style_entry->path); } $grouped_priories[$style_priority][$order_keeper][$directory][$filename] = $style_entry; if ($bump_ok) { $order_keeper++; $bump_ok = false; } } } foreach ($grouped_priories as $priority => $order_kept_entries) { foreach ($order_kept_entries as $ordered_files) { foreach ($ordered_files as $dir => $files) { // Process full urls if ($dir == 'REMOTE_URL') { foreach ($files as $file => $link) { $output[0][] = $link; } continue; } else { if (!is_writable($dir)) { foreach ($files as $css_file) { $output[0][] = $css_file; } continue; } $md5sum = ""; $path = ""; //first trip through to build filename foreach ($files as $file => $details) { $md5sum .= md5($details->url); $detailspath = $dir . DS . $file; if (file_exists($detailspath)) { $path = dirname($details->url); } } $cache_filename = "css-" . md5($md5sum) . ".php"; $cache_fullpath = $dir . DS . $cache_filename; //see if file is stale if (file_exists($cache_fullpath)) { $diff = time() - filectime($cache_fullpath); } else { $diff = $cache_time + 1; } if ($diff > $cache_time) { $outfile = GantryGZipper::_getOutHeader("css", $expires_time); foreach ($files as $file => $details) { $detailspath = $dir . DS . $file; if (file_exists($detailspath)) { $css_content = file_get_contents($detailspath); if ($strip_css) { $css_content = GantryGZipper::_stripCSSWhiteSpace($css_content); } $outfile .= "\n\n/*** " . $file . " ***/\n\n" . $css_content; } } file_put_contents($cache_fullpath, $outfile); } $cache_file_name = $path . "/" . $cache_filename; $output[0][] = new GantryStyleLink('local', $cache_fullpath, $cache_file_name); } } } } $gantry->_styles =& $output; }