Implements hook_advagg_get_css_aggregate_contents_alter().
Related topics
File
-
advagg_relocate/
advagg_relocate.advagg.inc, line 70
Code
function advagg_relocate_advagg_get_css_aggregate_contents_alter(&$data, $files, $aggregate_settings) {
// Set variables if needed.
if (!isset($aggregate_settings['variables']['advagg_relocate_css_inline_import'])) {
$aggregate_settings['variables']['advagg_relocate_css_inline_import'] = variable_get('advagg_relocate_css_inline_import', ADVAGG_RELOCATE_CSS_INLINE_IMPORT);
}
// Do nothing if this is disabled.
if (empty($aggregate_settings['variables']['advagg_relocate_css_inline_import'])) {
return;
}
if (strpos($data, '@import') !== FALSE) {
// Set values that will be used when preg_replace_callback is ran.
_advagg_relocate_callback(array(), $files, $aggregate_settings);
// Replace external import statements with the contents of them.
$data = preg_replace_callback('%@import\\s*+(?:url\\(\\s*+)?+[\'"]?+((?:http:\\/\\/|https:\\/\\/|\\/\\/)(?:[^\'"()\\s]++))[\'"]?+\\s*+\\)?+\\s*+;%i', '_advagg_relocate_callback', $data);
// Per the W3C specification at
// http://www.w3.org/TR/REC-CSS2/cascade.html#at-import, @import rules
// must proceed any other style, so we move those to the top.
$matches = array();
$regexp = '/@import[^;]+;/i';
preg_match_all($regexp, $data, $matches);
$data = preg_replace($regexp, '', $data);
// Add import statements to the top of the stylesheet.
$data = implode("\n", $matches[0]) . $data;
}
}