public function auto_compile_less($lessFilename, $cssFilename) { if (!is_dir(CACHE . 'less')) { mkdir(CACHE . 'less'); } if (!is_writable(CACHE . 'less')) { trigger_error(__d('cake_dev', '"%s" directory is NOT writable.', CACHE . 'less'), E_USER_NOTICE); return; } if (file_exists($lessFilename) == false) { trigger_error(__d('cake_dev', 'File: "%s" not found.', $lessFilename), E_USER_NOTICE); return; } // Cache location $cacheFilename = CACHE . 'less' . DS . str_replace('/', '_', str_replace($this->lessPath, '', $lessFilename) . ".cache"); // Load the cache if (file_exists($cacheFilename)) { $cache = unserialize(file_get_contents($cacheFilename)); } else { $cache = $lessFilename; } $new_cache = Lessify::cexecute($cache); if (!is_array($cache) || $new_cache['updated'] > $cache['updated'] || file_exists($cssFilename) === false) { $cssFile = new File($cssFilename, true); if ($cssFile->write($new_cache['compiled']) === false) { if (!is_writable(dirname($cssFilename))) { trigger_error(__d('cake_dev', '"%s" directory is NOT writable.', dirname($cssFilename)), E_USER_NOTICE); } trigger_error(__d('cake_dev', 'Failed to write "%s"', $cssFilename), E_USER_NOTICE); } $cacheFile = new File($cacheFilename, true); $cacheFile->write(serialize($new_cache)); } }
protected function startup() { parent::startup(); //Check maintenance mode if (file_exists($this->conf["wwwDir"] . "/.maintenance")) { $this->setView("../maintenance"); } //Set songator status $enabled = $this->settings->get("portal_enabled", true); $adding = $this->settings->get("adding_enabled", true); $msg = $this->settings->get("portal_message"); $this->status = new \Status($enabled, $adding, $msg); //Compiling less theme $appDir = $this->conf["appDir"]; $wwwDir = $this->conf["wwwDir"]; $theme = $this->settings->get("theme", "default"); $less = new \Lessify(); $less->cacheDir = $this->conf["tempDir"] . "/less/"; $less->compile($appDir . "/templates/themes/{$theme}/{$theme}.less", $wwwDir . "/css/style.css"); $this->template->settings = $this->settings; $this->template->wip = $this->wip = $this->settings->get("songator_wip", false); }