Exemplo n.º 1
0
 /**
  * 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();
 }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
0
 /**
  * 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();
 }