PKPTemplateManager::compileLess PHP Method

compileLess() public method

Compile a LESS stylesheet
public compileLess ( $name, $lessFile, $args = [] ) : string
$name string Unique name for this LESS stylesheet
$lessFile string Path to the LESS file to compile
$args array Optional arguments. SUpports: 'baseUrl': Base URL to use when rewriting URLs in the LESS file. 'addLess': Array of additional LESS files to parse before compiling
return string Compiled CSS styles
    public function compileLess($name, $lessFile, $args = array())
    {
        // Load the LESS compiler
        require_once 'lib/pkp/lib/vendor/oyejorge/less.php/lessc.inc.php';
        $less = new Less_Parser(array('relativeUrls' => false, 'compress' => true));
        $request = $this->_request;
        // Allow plugins to intervene
        HookRegistry::call('PageHandler::compileLess', array(&$less, &$lessFile, &$args, $name, $request));
        // Read the stylesheet
        $less->parseFile($lessFile);
        // Add extra LESS files before compiling
        if (isset($args['addLess']) && is_array($args['addLess'])) {
            foreach ($args['addLess'] as $addless) {
                $less->parseFile($addless);
            }
        }
        // Add extra LESS variables before compiling
        if (isset($args['addLessVariables'])) {
            $less->parse($args['addLessVariables']);
        }
        // Set the @baseUrl variable
        $baseUrl = !empty($args['baseUrl']) ? $args['baseUrl'] : $request->getBaseUrl(true);
        $less->parse("@baseUrl: '{$baseUrl}';");
        return $less->getCSS();
    }