Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,22 @@ Will output:

When any CSS or JS file is updated or removed the file will be generated with a new hash and filename.

Path Replacement in CSS
================

Adding array pairs as extra parameters to the CSS compressor will perform a search/replace with those strings. Useful for paths that break once files are inside the cache folder.

{{ craft.compressor.css(
[
'/style/style.css',
'/style/media-queries.css'
],
["fonts/", "../fonts/"],
["images/", "../images/"]
) }}



Setup
================

Expand Down
10 changes: 10 additions & 0 deletions services/CompressorService.php
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ public function css($css)
}
else if ($recache['recache'] === true)
{

$cached_file = $this->makeCachePath("cached." . $recache['md5'] . ".css");

$css_content = "";
Expand All @@ -120,6 +121,15 @@ public function css($css)
$css_content .= file_get_contents($file);
}

// Get find/replace pairs
$searchReplacePairs = func_get_args();
array_shift($searchReplacePairs);

foreach ($searchReplacePairs as $searchReplace) {
if (!is_array($searchReplace)) { continue; }
$css_content = str_replace($searchReplace[0], $searchReplace[1], $css_content);
}

$css = trim($css_content);
$css = str_replace("\r\n", "\n", $css);
$search = array("/\/\*[^!][\d\D]*?\*\/|\t+/", "/\s+/", "/\}\s+/");
Expand Down
2 changes: 1 addition & 1 deletion variables/CompressorVariable.php
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class CompressorVariable
{
public function css($files)
{
return craft()->compressor->css($files);
return call_user_func_array([craft()->compressor, "css"], func_get_args());
}

public function js($files)
Expand Down