Example #1
0
 public function getStyles($new_styles = array())
 {
     $config = Kohana::$config->load('main')->site;
     $old_styles = $config['styles'];
     $new_styles = array_unique(array_merge($old_styles, $new_styles));
     //        if (Kohana::PRODUCTION === Kohana::$environment)
     //        {
     $filename = substr(md5(Kohana::$base_url), 5) . '.css';
     if (($file = Cache::instance()->get($filename)) === NULL) {
         $css_data = '';
         $less = new Lessc();
         foreach ($new_styles as $style) {
             $style_arr = explode('.', $style);
             $style_ext = array_pop($style_arr);
             if (is_file(DOCROOT . $style)) {
                 if ($style_ext == 'less') {
                     $css_data .= str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $less->compileFile($style));
                 } else {
                     $css_data .= str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', preg_replace('!/\\*[^*]*\\*+([^/][^*]*\\*+)*/!', '', file_get_contents(DOCROOT . $style)));
                 }
             }
         }
         $file = fopen(DOCROOT . "css/" . $filename, "w");
         fwrite($file, $css_data);
         fclose($file);
         Cache::instance()->set($filename, $file, Date::MONTH);
         //            }
         return array("css/" . $filename);
     } else {
         $filename = substr(md5(Kohana::$base_url), 5) . '.css';
         $css_data = '';
         $less = new Lessc();
         foreach ($new_styles as $style) {
             $style_arr = explode('.', $style);
             $style_ext = array_pop($style_arr);
             if (is_file(DOCROOT . $style)) {
                 if ($style_ext == 'less') {
                     $css_data .= str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $less->compileFile($style));
                 } else {
                     $css_data .= str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', preg_replace('!/\\*[^*]*\\*+([^/][^*]*\\*+)*/!', '', file_get_contents(DOCROOT . $style)));
                 }
             }
         }
         $file = fopen(DOCROOT . "css/" . $filename, "w");
         fwrite($file, $css_data);
         fclose($file);
         Cache::instance()->set($filename, $file, Date::MONTH);
         return array("css/" . $filename);
     }
 }
Example #2
0
 /**
  * Compilamos un archivo por medio de LESS.
  * @param string $file Archivo a compilar.
  * @param string $target Donde guardar la cache del archivo. NULL para enviar salida al vuelo.
  */
 protected static function compile_less($file, $target = NULL)
 {
     // Cargo lessc.
     if (!class_exists('lessc')) {
         include VENDOR_PATH . 'lessc.php';
     }
     // Verifico si se puede escribir.
     if (!@is_writable($target)) {
         Log::warning("No se puede generar la cache del asset '{$file}' en '{$target}'. Verifique los permisos de escritura.");
         $target = NULL;
     }
     // Realizo la compilaciĆ³n.
     if ($target !== NULL) {
         $less = new Lessc();
         $less->compileFile($file, $target);
         header('Content-type: text/css');
         die(file_get_contents($target));
     } else {
         $less = new Lessc();
         header('Content-type: text/css');
         die($less->compileFile($file));
     }
 }
Example #3
0
 /**
  * Initialize any static state, can initialize parser for a file
  */
 function __construct($fname = null, $opts = null)
 {
     if (!self::$operatorString) {
         self::$operatorString = '(' . implode('|', array_map(array($this, 'preg_quote'), array_keys(self::$precedence))) . ')';
     }
     if ($fname) {
         if (!is_file($fname)) {
             throw new Exception('load error: failed to find ' . $fname);
         }
         $pi = pathinfo($fname);
         $this->fileName = $fname;
         $this->importDir = $pi['dirname'] . '/';
         $this->buffer = file_get_contents($fname);
         $this->addParsedFile($fname);
     }
 }
<?php

$controller = new Controller($config['pages'], $config['default_page']);
$controller->init();
$page = $controller->getCurrent();
/*
less supports
*/
if ($config['compile_less']) {
    // compile less
    $less = new Lessc();
    $less->compileFile('./less/core.less', './css/style.css');
    if ($config['show_debug']) {
        #trigger_error("styles.css file succesfully generated", E_USER_NOTICE);
    }
}
/*
paths
*/
$fontawesome_path = $config['use_cdn'] ? 'https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css' : './css/font-awesome.min.css';
$jquery_path = $config['use_cdn'] ? 'https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js' : './js/jquery-2.1.4.js';
$controller_path = './controller/' . $page . '.php';
$view_path = './view/pages/' . $page . '.php';
if (file_exists($controller_path)) {
    require $controller_path;
}
ob_start();
include './view/_main.php';
$html = ob_get_contents();
ob_end_clean();
$html = Controller::emulate_vars($html);