コード例 #1
0
 /**
  * @see sfTask
  */
 protected function execute($arguments = array(), $options = array())
 {
     // Remove old CSS files if --clean option specified
     if (isset($options['clean']) && $options['clean']) {
         foreach (sfLessPhp::findCssFiles() as $cssFile) {
             if (!isset($arguments['file']) || false !== strpos($cssFile, $arguments['file'] . '.css')) {
                 unlink($cssFile);
                 $this->logSection('removed', str_replace(sfLessPhp::getCssPaths(), '', $cssFile));
             }
         }
     }
     // Inits sfLessPhp instance for compilation help
     $lessHelper = new sfLessPhp(false, isset($options['lessc']) && $options['lessc'], false, isset($options['compress']) && $options['compress']);
     // Outputs debug info
     if (isset($options['debug']) && $options['debug']) {
         foreach ($lessHelper->getDebugInfo() as $key => $value) {
             $this->logSection('debug', sprintf("%s:\t%s", $key, $value), null, 'INFO');
         }
     }
     // Compiles LESS files
     foreach (sfLessPhp::findLessFiles() as $lessFile) {
         if (!isset($arguments['file']) || false !== strpos($lessFile, $arguments['file'] . '.less')) {
             if ($lessHelper->compile($lessFile)) {
                 if (isset($options['debug']) && $options['debug']) {
                     $this->logSection('compiled', sprintf("%s => %s", sfLessPhp::getProjectRelativePath($lessFile), sfLessPhp::getProjectRelativePath(sfLessPhp::getCssPathOfLess($lessFile))), null, 'COMMAND');
                 } else {
                     $this->logSection('compiled', str_replace(sfLessPhp::getLessPaths(), '', $lessFile), null, 'COMMAND');
                 }
             }
         }
     }
 }
コード例 #2
0
 /**
  * @see sfTask
  */
 protected function execute($arguments = array(), $options = array())
 {
     if (isset($options['with-clean']) && $options['with-clean']) {
         foreach (sfLessPhp::findCssFiles() as $cssFile) {
             unlink($cssFile);
             $this->logSection('removed', str_replace(sfConfig::get('sf_root_dir') . '/web/css/', '', $cssFile));
         }
     }
     foreach (sfLessPhp::findLessFiles() as $lessFile) {
         if (sfLessPhp::compile($lessFile, false, isset($options['lessc']) && $options['lessc'])) {
             $this->logSection('compiled', str_replace(sfConfig::get('sf_root_dir') . '/data/stylesheets/', '', $lessFile));
         }
     }
 }
コード例 #3
0
    /**
     * Returns information row for LESS style compilation
     *
     * @param array $info info of compilation process
     * @return string
     */
    protected function getInfoContent($info, $error = false)
    {
        // ID of error row
        $errorId = md5($info['lessFile']);
        // File link for preferred editor
        $fileLink = $this->formatFileLink($info['lessFile'], 1, str_replace(sfLessPhp::getLessPaths(), '', $info['lessFile']));
        // Checking compile & error statuses
        if ($info['isCompiled']) {
            $trStyle = 'background-color:#a1d18d;';
        } elseif ($info['error']) {
            $this->setStatus(sfLogger::ERR);
            $trStyle = 'background-color:#f18c89;';
            $fileLink .= ' ' . $this->getToggler('less_error_' . $errorId, 'Toggle error info');
        } else {
            $trStyle = '';
        }
        // Generating info rows
        $infoRows = sprintf(<<<EOF
      <tr style="%s">
        <td class="sfWebDebugLogType">%s</td>
        <td class="sfWebDebugLogType">%s</td>
        <td class="sfWebDebugLogNumber" style="text-align:center;">%.2f</td>
      </tr>
      <tr id="less_error_%s" style="display:none;background-color:#f18c89;"><td style="padding-left:15px" colspan="2">%s<td></tr>
EOF
, $trStyle, $fileLink, str_replace(sfLessPhp::getCssPaths(), '', $info['cssFile']), $info['isCompiled'] ? $info['compTime'] * 1000 : 0, $errorId, $info['error']);
        return $infoRows;
    }