Skip to content
Snippets Groups Projects
Commit 0485f2ba authored by Chris Hallberg's avatar Chris Hallberg
Browse files

Merge branch 'master' of https://github.com/vufind-org/vufind

parents af7894ac 716686a7
No related merge requests found
...@@ -88,17 +88,13 @@ class LessCompiler ...@@ -88,17 +88,13 @@ class LessCompiler
*/ */
protected function processTheme($theme) protected function processTheme($theme)
{ {
$config = $this->basePath . '/themes/' . $theme . '/theme.config.php'; $lessFiles = $this->getAllLessFiles($theme);
if (!file_exists($config)) { if (empty($lessFiles)) {
return;
}
$config = include $config;
if (!isset($config['less'])) {
Console::writeLine("No LESS in " . $theme); Console::writeLine("No LESS in " . $theme);
return; return;
} }
Console::writeLine("Processing " . $theme); Console::writeLine("Processing " . $theme);
foreach ($config['less'] as $less) { foreach ($lessFiles as $less) {
if (is_string($less)) { if (is_string($less)) {
$this->compileFile($theme, $less); $this->compileFile($theme, $less);
} }
...@@ -108,6 +104,25 @@ class LessCompiler ...@@ -108,6 +104,25 @@ class LessCompiler
\Less_Cache::CleanCache(); // deletes week old files \Less_Cache::CleanCache(); // deletes week old files
} }
/**
* Get all less files that might exist in a theme.
*
* @return array
*/
protected function getAllLessFiles($theme)
{
$config = $this->basePath . '/themes/' . $theme . '/theme.config.php';
if (!file_exists($config)) {
return array();
}
$configArr = include $config;
$base = (isset($configArr['extends']))
? $this->getAllLessFiles($configArr['extends'])
: array();
$current = isset($configArr['less']) ? $configArr['less'] : array();
return array_merge($base, $current);
}
/** /**
* Compile a LESS file inside a theme. * Compile a LESS file inside a theme.
* *
...@@ -132,6 +147,12 @@ class LessCompiler ...@@ -132,6 +147,12 @@ class LessCompiler
= $this->fakePath . "themes/$curTheme/css/less"; = $this->fakePath . "themes/$curTheme/css/less";
} }
$lessDir = $this->basePath . '/themes/' . $theme . '/less/'; $lessDir = $this->basePath . '/themes/' . $theme . '/less/';
if (!file_exists($lessDir . $less)) {
Console::writeLine(
"\t\t" . $lessDir . $less . ' does not exist; skipping.'
);
return;
}
$outDir = sys_get_temp_dir(); $outDir = sys_get_temp_dir();
$outFile = \Less_Cache::Regen( $outFile = \Less_Cache::Regen(
array($lessDir . $less => $this->fakePath . "themes/$theme/css/less"), array($lessDir . $less => $this->fakePath . "themes/$theme/css/less"),
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment