/** * Render the stylesheet * * @param bool $minified Whether to compress the stylesheet * * @return string CSS */ public function render($minified = false) { if ($minified) { $this->lessCompiler->compress(); } return $this->lessCompiler->render(); }
public static function send($minified = false) { self::checkPhp(); $app = Icinga::app(); $basedir = $app->getBootstrapDirectory(); foreach (self::$lessFiles as $file) { $lessFiles[] = $basedir . '/' . $file; } $files = $lessFiles; foreach ($app->getModuleManager()->getLoadedModules() as $name => $module) { if ($module->hasCss()) { $files[] = $module->getCssFilename(); } } if ($etag = FileCache::etagMatchesFiles($files)) { header("HTTP/1.1 304 Not Modified"); return; } else { $etag = FileCache::etagForFiles($files); } header('Cache-Control: public'); header('ETag: "' . $etag . '"'); header('Content-Type: text/css'); $min = $minified ? '.min' : ''; $cacheFile = 'icinga-' . $etag . $min . '.css'; $cache = FileCache::instance(); if ($cache->has($cacheFile)) { $cache->send($cacheFile); return; } $less = new LessCompiler(); foreach ($lessFiles as $file) { $less->addFile($file); } $less->addLoadedModules(); if ($minified) { $less->compress(); } $out = self::fixModuleLayoutCss($less->compile()); $cache->store($cacheFile, $out); echo $out; }
public static function send($minified = false) { header('Content-Type: text/css'); $min = $minified ? '.min' : ''; $cacheFile = '/tmp/cache_icinga' . $min . '.css'; if (file_exists($cacheFile)) { readfile($cacheFile); exit; } $less = new LessCompiler(); $basedir = Icinga::app()->getBootstrapDirecory(); foreach (self::$lessFiles as $file) { $less->addFile($basedir . '/' . $file); } $less->addLoadedModules(); if ($minified) { $less->compress(); } $out = $less->compile(); // Not yet, this is for tests only. Waiting for Icinga\Web\Cache // file_put_contents($cacheFile, $out); echo $out; }
/** * Send application's and modules' CSS */ public function stylesheetAction() { $lessCompiler = new LessCompiler(); $moduleManager = Icinga::app()->getModuleManager(); $publicDir = realpath(dirname($_SERVER['SCRIPT_FILENAME'])); $lessCompiler->addItem($publicDir . '/css/vendor'); $lessCompiler->addItem($publicDir . '/css/icinga'); foreach ($moduleManager->getLoadedModules() as $moduleName) { $cssDir = $moduleName->getCssDir(); if (is_dir($cssDir)) { $lessCompiler->addItem($cssDir); } } $this->getResponse()->setHeader('Content-Type', 'text/css'); $this->setCacheHeader(3600); $lessCompiler->printStack(); }