Example #1
0
 public static function compileAll($theme = null)
 {
     // get params
     $db = JFactory::getDbo();
     $params = new JRegistry();
     //get params of templates
     $query = $db->getQuery(true);
     $query->select('params')->from('#__template_styles')->where('template=' . $db->quote(PLAZART_TEMPLATE));
     $db->setQuery($query);
     $params->loadString($db->loadResult());
     if (!$params->get('devmode', 0)) {
         return false;
     }
     $less = new self();
     // compile all css files
     $files = array();
     $lesspath = 'templates' . DIRECTORY_SEPARATOR . PLAZART_TEMPLATE . DIRECTORY_SEPARATOR . 'less' . DIRECTORY_SEPARATOR;
     $csspath = 'templates' . DIRECTORY_SEPARATOR . PLAZART_TEMPLATE . DIRECTORY_SEPARATOR . 'css' . DIRECTORY_SEPARATOR;
     // delete old css
     $less->clearfolder(JPATH_ROOT . DIRECTORY_SEPARATOR . $csspath);
     // get themes
     $themes = JFolder::folders(JPATH_ROOT . DIRECTORY_SEPARATOR . $lesspath . DIRECTORY_SEPARATOR . 'themes');
     if (count($themes)) {
         foreach ($themes as $t) {
             $buffer = '<html><body></body></html>';
             JFile::write(JPATH_ROOT . DIRECTORY_SEPARATOR . $csspath . 'themes' . DIRECTORY_SEPARATOR . $t . DIRECTORY_SEPARATOR . 'index.html', $buffer);
             // compile
             $files = JFolder::files(JPATH_ROOT . DIRECTORY_SEPARATOR . $lesspath . DIRECTORY_SEPARATOR . 'themes' . DIRECTORY_SEPARATOR . $t, '.less');
             if (!count($files)) {
                 continue;
             }
             foreach ($files as $file) {
                 $filecss = substr($file, 0, -5);
                 $less->ccompile(JPATH_ROOT . DIRECTORY_SEPARATOR . $lesspath . 'themes' . DIRECTORY_SEPARATOR . $t . DIRECTORY_SEPARATOR . $file, JPATH_ROOT . DIRECTORY_SEPARATOR . $csspath . 'themes' . DIRECTORY_SEPARATOR . $t . DIRECTORY_SEPARATOR . $filecss . '.css');
             }
         }
     }
     //compile bootstrap
     //        $lesspath = PLAZART_PATH.DIRECTORY_SEPARATOR.'bootstrap'.DIRECTORY_SEPARATOR.'less'.DIRECTORY_SEPARATOR;
     //        $csspath = 'templates'.DIRECTORY_SEPARATOR.PLAZART_TEMPLATE.DIRECTORY_SEPARATOR.'css'.DIRECTORY_SEPARATOR;
     //        $result =   $less->ccompile($lesspath.'bootstrap.less',JPATH_ROOT.DIRECTORY_SEPARATOR.$csspath.'bootstrap.css');
     //        $result =   $less->ccompile($lesspath.'responsive.less',JPATH_ROOT.DIRECTORY_SEPARATOR.$csspath.'bootstrap-responsive.css');
 }