本文整理汇总了PHP中lessc类的典型用法代码示例。如果您正苦于以下问题:PHP lessc类的具体用法?PHP lessc怎么用?PHP lessc使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了lessc类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: run
public function run()
{
if (!$this->srcPath) {
throw new \UnexpectedValueException("Please specify srcPath first.");
}
if (!$this->targetPath) {
throw new \UnexpectedValueException("Please specify targetPath first.");
}
if (!is_dir($this->targetPath)) {
mkdir($this->targetPath, 0777);
}
$lastLessEditTime = 0;
foreach (\Nette\Utils\Finder::find("*.less")->from($this->getSrcPath()) as $file) {
$lastLessEditTime = max($lastLessEditTime, $file->getMTime());
}
$lastCompileTime = 0;
foreach (\Nette\Utils\Finder::find("*.css")->from($this->getTargetPath()) as $file) {
$lastCompileTime = max($lastCompileTime, $file->getMTime());
}
$compiler = new \lessc();
foreach ($this->getfilesMapping() as $src => $target) {
if (!is_file($this->targetPath . "/" . $target) || $lastLessEditTime > $lastCompileTime) {
$compiler->compileFile($this->srcPath . "/" . $src, $this->targetPath . "/" . $target);
}
}
}
示例2: CompileOptionsLess
function CompileOptionsLess($inputFile)
{
global $dynamo_tpl;
require_once get_template_directory() . '/dynamo_framework/lib/lessc.inc.php';
$less = new lessc();
$less->setPreserveComments(true);
$url = "'" . get_template_directory_uri() . "'";
$body_bg_image = "'" . get_option($dynamo_tpl->name . '_body_bg_image') . "'";
$page404_bg_image = "'" . get_option($dynamo_tpl->name . '_page404_bg_image') . "'";
$subheader_area_bgimage = "'" . get_option($dynamo_tpl->name . '_subheader_area_bgimage') . "'";
$branding_logo_image = "'" . get_option($dynamo_tpl->name . '_branding_logo_image') . "'";
$expander_bgimage = "'" . get_option($dynamo_tpl->name . '_expander_bgimage') . "'";
$footer_bg_image = "'" . get_option($dynamo_tpl->name . '_footer_bg_image') . "'";
$expander_bgimage = "'" . get_option($dynamo_tpl->name . '_expander_bgimage') . "'";
$footerbgtype = 'n';
if (get_option($dynamo_tpl->name . '_footer_pattern', 'none') != 'none') {
$footerbgtype = 'p';
}
if (get_option($dynamo_tpl->name . '_footer_bg_image') != '') {
$footerbgtype = 'i';
}
$expanderbgtype = 'n';
if (get_option($dynamo_tpl->name . '_expander_pattern', 'none') != 'none') {
$expanderbgtype = 'p';
}
if (get_option($dynamo_tpl->name . '_expander_bgimage') != '') {
$expanderbgtype = 'i';
}
$less->setVariables(array("url" => $url, "fontsize_body" => get_option($dynamo_tpl->name . '_fontsize_body', '13px'), "fontsize_h1" => get_option($dynamo_tpl->name . '_fontsize_h1', '40px'), "fontsize_h2" => get_option($dynamo_tpl->name . '_fontsize_h2', '30px'), "fontsize_h3" => get_option($dynamo_tpl->name . '_fontsize_h3', '18px'), "fontsize_h4" => get_option($dynamo_tpl->name . '_fontsize_h4', '16px'), "fontsize_h5" => get_option($dynamo_tpl->name . '_fontsize_h5', '14px'), "fontsize_h6" => get_option($dynamo_tpl->name . '_fontsize_h6', '12px'), "maincontent_accent_color" => get_option($dynamo_tpl->name . '_maincontent_accent_color', '#3296dc'), "maincontent_secondary_accent_color" => get_option($dynamo_tpl->name . '_maincontent_secondary_accent_color', '#000000'), "page_wrap_state" => get_option($dynamo_tpl->name . '_page_wrap_state', 'streched'), "page_bgcolor" => get_option($dynamo_tpl->name . '_page_bgcolor', '#ffffff'), "page_pattern" => get_option($dynamo_tpl->name . '_page_pattern', 'none'), "body_bg_image_state" => get_option($dynamo_tpl->name . '_body_bg_image_state', 'N'), "body_bg_image" => $body_bg_image, "body_bgcolor" => get_option($dynamo_tpl->name . '_body_bgcolor', '#ffffff'), "body_pattern" => get_option($dynamo_tpl->name . '_body_pattern', 'none'), "paspartu_state" => get_option($dynamo_tpl->name . '_paspartu_state', 'N'), "paspartu_bg_color" => get_option($dynamo_tpl->name . '_paspartu_bg_color', '#ffffff'), "paspartu_width" => get_option($dynamo_tpl->name . '_paspartu_width', '30') . 'px', "top_bar_bg_color" => get_option($dynamo_tpl->name . '_top_bar_bg_color', '#000000'), "top_bar_text_color" => get_option($dynamo_tpl->name . '_top_bar_text_color', '#ffffff'), "top_bar_link_color" => get_option($dynamo_tpl->name . '_top_bar_link_color', '#3296dc'), "top_bar_hlink_color" => get_option($dynamo_tpl->name . '_top_bar_hlink_color', '#f2f2f2'), "top_bar_icon_color" => get_option($dynamo_tpl->name . '_top_bar_icon_color', '#ffffff'), "branding_logo_type" => get_option($dynamo_tpl->name . '_branding_logo_type'), "branding_logo_image" => $branding_logo_image, "branding_logo_image_width" => get_option($dynamo_tpl->name . '_branding_logo_image_width', '160') . 'px', "branding_logo_image_height" => get_option($dynamo_tpl->name . '_branding_logo_image_height', '50') . 'px', "branding_logo_top_margin" => get_option($dynamo_tpl->name . '_branding_logo_top_margin', '30') . 'px', "branding_logo_bottom_margin" => get_option($dynamo_tpl->name . '_branding_logo_bottom_margin', '10') . 'px', "sticky_logo_top_margin" => get_option($dynamo_tpl->name . '_sticky_logo_top_margin', '10') . 'px', "menu_top_bg_color" => get_option($dynamo_tpl->name . '_menu_top_bg_color', 'transparent'), "top_mainmenu_link_color" => get_option($dynamo_tpl->name . '_top_mainmenu_link_color', '#222222'), "top_mainmenu_hlink_color" => get_option($dynamo_tpl->name . '_top_mainmenu_hlink_color', '#3296dc'), "sticky_header_bgcolor" => get_option($dynamo_tpl->name . '_sticky_header_bgcolor', 'rgba(255,255,255,0.95)'), "sticky_mainmenu_link_color" => get_option($dynamo_tpl->name . '_sticky_mainmenu_link_color', '#222222'), "sticky_mainmenu_hlink_color" => get_option($dynamo_tpl->name . '_sticky_mainmenu_hlink_color', '#3296dc'), "aside_logo_image_width" => get_option($dynamo_tpl->name . '_aside_logo_image_width', '101') . 'px', "aside_logo_image_height" => get_option($dynamo_tpl->name . '_aside_logo_image_height', '35') . 'px', "aside_mainmenu_bg_color" => get_option($dynamo_tpl->name . '_aside_mainmenu_bg_color', '#ffffff'), "aside_mainmenu_link_color" => get_option($dynamo_tpl->name . '_aside_mainmenu_link_color', '#222222'), "aside_mainmenu_hlink_color" => get_option($dynamo_tpl->name . '_aside_mainmenu_hlink_color', '#3296dc'), "submenu_bgcolor" => get_option($dynamo_tpl->name . '_submenu_bgcolor', '#ffffff'), "submenu_topbordercolor" => get_option($dynamo_tpl->name . '_submenu_topbordercolor', '#3296dc'), "submenu_link_color" => get_option($dynamo_tpl->name . '_submenu_link_color', '#AFB4B9'), "submenu_hlink_color" => get_option($dynamo_tpl->name . '_submenu_hlink_color', '#AFB4B9'), "submenu_hbg_color" => get_option($dynamo_tpl->name . '_submenu_hbg_color', '#F6F6F6'), "overlay_mainmenu_bg_color" => get_option($dynamo_tpl->name . '_overlay_mainmenu_bg_color', '#ffffff'), "overlay_mainmenu_link_color" => get_option($dynamo_tpl->name . '_overlay_mainmenu_link_color', '#222222'), "overlay_mainmenu_hlink_color" => get_option($dynamo_tpl->name . '_overlay_mainmenu_hlink_color', '#3296dc'), "overlay_mainmenu_bg_color" => get_option($dynamo_tpl->name . '_overlay_mainmenu_bg_color', '#ffffff'), "overlay_mainmenu_link_color" => get_option($dynamo_tpl->name . '_overlay_mainmenu_link_color', '#222222'), "overlay_mainmenu_hlink_color" => get_option($dynamo_tpl->name . '_overlay_mainmenu_hlink_color', '#3296dc'), "overlapping_header_bgcolor" => get_option($dynamo_tpl->name . '_overlapping_header_bgcolor', '#ffffff'), "overlapping_mainmenu_link_color_light" => get_option($dynamo_tpl->name . '_overlapping_mainmenu_link_color_light', '#ffffff'), "overlapping_mainmenu_hlink_color_light" => get_option($dynamo_tpl->name . '_overlapping_mainmenu_hlink_color_light', '#3296dc'), "overlapping_mainmenu_link_color_dark" => get_option($dynamo_tpl->name . '_overlapping_mainmenu_link_color_dark', '#222222'), "overlapping_mainmenu_hlink_color_dark" => get_option($dynamo_tpl->name . '_overlapping_mainmenu_hlink_color_dark', '#3296dc'), "subheader_bgcolor" => get_option($dynamo_tpl->name . '_subheader_bgcolor', '#F7F8FA'), "subheader_pattern" => get_option($dynamo_tpl->name . '_subheader_pattern', 'none'), "subheader_area_bgimage" => $subheader_area_bgimage, "subheader_text_color" => get_option($dynamo_tpl->name . '_subheader_text_color', '#ffffff'), "expander_bgcolor" => get_option($dynamo_tpl->name . '_expander_bgcolor', '#222222'), "expander_bgimage" => $expander_bgimage, "expander_pattern" => get_option($dynamo_tpl->name . '_expander_pattern', 'none'), "expander_text_color" => get_option($dynamo_tpl->name . '_eexpander_text_color', '#ffffff'), "expander_link_color" => get_option($dynamo_tpl->name . '_expander_link_color', '#3296dc'), "expander_hlink_color" => get_option($dynamo_tpl->name . '_expander_hlink_color', '#f6f6f6'), "expanderbgtype" => $expanderbgtype, "maincontent_text_color" => get_option($dynamo_tpl->name . '_maincontent_text_color', '#7A7A7A'), "maincontent_headers_color" => get_option($dynamo_tpl->name . '_maincontent_headers_color', '#7A7A7A'), "maincontent_link_color" => get_option($dynamo_tpl->name . '_maincontent_link_color', '#3296dc'), "maincontent_hlink_color" => get_option($dynamo_tpl->name . '_maincontent_hlink_color', '#76797C'), "footer_bg_color" => get_option($dynamo_tpl->name . '_footer_bg_color', '#232D37'), "footer_bg_image" => $footer_bg_image, "footer_pattern" => get_option($dynamo_tpl->name . '_footer_pattern', 'none'), "footer_text_color" => get_option($dynamo_tpl->name . '_footer_text_color', '#BCC1C5'), "footer_header_color" => get_option($dynamo_tpl->name . '_footer_header_color', '#ffffff'), "footer_link_color" => get_option($dynamo_tpl->name . '_footer_link_color', '#ffffff'), "footer_hlink_color" => get_option($dynamo_tpl->name . '_footer_hlink_color', '#3296dc'), "footerbgtype" => $footerbgtype, "copyrightbgcolor" => get_option($dynamo_tpl->name . '_copyright_bg_color', 'rgba(0,0,0,.2)'), "copyrightbordercolor" => get_option($dynamo_tpl->name . '_copyright_border_color', 'rgba(0,0,0,0)'), "copyrighttextcolor" => get_option($dynamo_tpl->name . '_copyright_text_color', '#A2A2A2'), "copyrightlinkcolor" => get_option($dynamo_tpl->name . '_copyright_link_color', '#A2A2A2'), "copyrighthlinkcolor" => get_option($dynamo_tpl->name . '_copyright_hlink_color', '#fff'), "page404_bg_image" => $page404_bg_image, "page404_bg_image_state" => get_option($dynamo_tpl->name . '_404_bg_image_state', 'N')));
$less->compileFile(get_template_directory() . '/css/less/' . $inputFile, get_template_directory() . '/css/dynamic.css');
}
示例3: parse
/**
* Parse a Less file to CSS
*/
public function parse($src, $dst, $options)
{
$this->auto = isset($options['auto']) ? $options['auto'] : $this->auto;
try {
if ($this->auto) {
/* @var FileCache $cacheMgr */
$cacheMgr = Yii::createObject('yii\\caching\\FileCache');
$cacheMgr->init();
$cacheId = 'less#' . $dst;
$cache = $cacheMgr->get($cacheId);
if ($cache === false || @filemtime($dst) < @filemtime($src)) {
$cache = $src;
}
$less = new \lessc();
$newCache = $less->cachedCompile($cache);
if (!is_array($cache) || $newCache["updated"] > $cache["updated"]) {
$cacheMgr->set($cacheId, $newCache);
file_put_contents($dst, $newCache['compiled']);
}
} else {
$less = new \lessc();
$less->compileFile($src, $dst);
}
} catch (Exception $e) {
throw new Exception(__CLASS__ . ': Failed to compile less file : ' . $e->getMessage() . '.');
}
}
示例4: compile
public static function compile($source, $path, $todir, $importdirs)
{
// call Less to compile
$parser = new lessc();
$parser->setImportDir(array_keys($importdirs));
$parser->setPreserveComments(true);
$output = $parser->compile($source);
// update url
$arr = preg_split(CANVASLess::$rsplitbegin . CANVASLess::$kfilepath . CANVASLess::$rsplitend, $output, -1, PREG_SPLIT_DELIM_CAPTURE);
$output = '';
$file = $relpath = '';
$isfile = false;
foreach ($arr as $s) {
if ($isfile) {
$isfile = false;
$file = $s;
$relpath = CANVASLess::relativePath($todir, dirname($file));
$output .= "\n#" . CANVASLess::$kfilepath . "{content: \"{$file}\";}\n";
} else {
$output .= ($file ? CANVASPath::updateUrl($s, $relpath) : $s) . "\n\n";
$isfile = true;
}
}
return $output;
}
示例5: _compileCss
/**
* Compile CSS files used by admin ui
*
* @throws Exception
*/
protected function _compileCss()
{
$bootstrapPath = WWW_ROOT . 'bootstrap';
if (!file_exists($bootstrapPath)) {
if (!$this->_clone) {
throw new Exception('You don\'t have "bootstrap" directory in ' . WWW_ROOT);
}
CakeLog::info('Cloning Bootstrap...');
chdir(WWW_ROOT);
exec('git clone git://github.com/twitter/bootstrap');
}
chdir($bootstrapPath);
exec('git checkout -f v2.2.0');
App::import('Vendor', 'Lessc', array('file' => 'lessphp' . DS . 'lessc.inc.php'));
$lessc = new lessc();
$formatter = new lessc_formatter_lessjs();
$formatter->compressColors = false;
ini_set('precision', 16);
$lessc->setFormatter($formatter);
$files = array('less' . DS . 'admin.less' => CSS . 'croogo-bootstrap.css', 'less' . DS . 'admin-responsive.less' => CSS . 'croogo-bootstrap-responsive.css');
foreach ($files as $file => $output) {
$out = str_replace(APP, '', $output);
if ($lessc->compileFile(WWW_ROOT . $file, $output)) {
$text = __('CSS : %s created', $out);
CakeLog::info($text);
} else {
$text = __('CSS : %s failed', $out);
CakeLog::error($text);
}
}
}
示例6: auto_less_compile
function auto_less_compile($inputFile, $outputFile)
{
// load the cache
$cacheFile = $inputFile . ".cache";
if (file_exists($cacheFile)) {
$cache = unserialize(file_get_contents($cacheFile));
} else {
$cache = $inputFile;
}
// custom formatter
$formatter = new lessc_formatter_classic();
$formatter->indentChar = "\t";
$less = new lessc();
$less->setFormatter($formatter);
try {
// create a new cache object, and compile
$newCache = $less->cachedCompile($cache);
// the next time we run, write only if it has updated
if (!is_array($cache) || $newCache["updated"] > $cache["updated"]) {
file_put_contents($cacheFile, serialize($newCache));
file_put_contents($outputFile, $newCache['compiled']);
}
} catch (Exception $ex) {
echo "lessphp fatal error: " . $ex->getMessage();
}
}
示例7: __invoke
public function __invoke($file, $minify = null)
{
if (!is_file($this->getOptions()->getPublicDir() . $file)) {
throw new \InvalidArgumentException('File "' . $this->getOptions()->getPublicDir() . $file . '" not found.');
}
$less = new \lessc();
$info = pathinfo($file);
$newFile = $this->getOptions()->getDestinationDir() . $info['filename'] . '.' . filemtime($this->getOptions()->getPublicDir() . $file) . '.css';
$_file = $this->getOptions()->getPublicDir() . $newFile;
if (!is_file($_file)) {
$globPattern = $this->getOptions()->getPublicDir() . $this->getOptions()->getDestinationDir() . $info['filename'] . '.*.css';
foreach (Glob::glob($globPattern, Glob::GLOB_BRACE) as $match) {
if (preg_match("/^" . $info['filename'] . "\\.[0-9]{10}\\.css\$/", basename($match))) {
unlink($match);
}
}
$compiledFile = new \SplFileObject($_file, 'w');
$result = $less->compileFile($this->getOptions()->getPublicDir() . $file);
if (is_null($minify) && $this->getOptions()->getMinify() || $minify === true) {
$result = \CssMin::minify($result);
}
$compiledFile->fwrite($result);
}
return $newFile;
}
示例8: css
function css($file, $media = null)
{
/* If file is CSS, check if there is a LESS file */
if (preg_match('/\\.css$/i', $file)) {
$less = preg_replace('/\\.css$/i', '.less', $file);
if (is_file(Director::getAbsFile($less))) {
$file = $less;
}
}
/* If less file, then check/compile it */
if (preg_match('/\\.less$/i', $file)) {
$compiler = 'checkedCompile';
$out = preg_replace('/\\.less$/i', '.css', $file);
/* Force recompile if ?flush */
if (isset($_GET['flush'])) {
$compiler = 'compileFile';
}
/* Create instance */
$less = new lessc();
/* Automatically compress if in live mode */
if (DIRECTOR::isLive()) {
$less->setFormatter("compressed");
}
try {
$less->{$compiler}(Director::getAbsFile($file), Director::getAbsFile($out));
} catch (Exception $ex) {
trigger_error("lessphp fatal error: " . $ex->getMessage(), E_USER_ERROR);
}
$file = $out;
}
/* Return css path */
return parent::css($file, $media);
}
示例9: doProcess
protected function doProcess($inputPath, $outputPath)
{
$this->ensureInitialized();
if ($this->jsToolOptions === false) {
$less = new \lessc();
if ($this->pieCrust->isCachingEnabled()) {
$cacheUri = 'less/' . sha1($inputPath);
$cacheData = $this->readCacheData($cacheUri);
if ($cacheData) {
$lastUpdated = $cacheData['updated'];
} else {
$lastUpdated = false;
$cacheData = $inputPath;
}
$cacheData = $less->cachedCompile($cacheData);
$this->writeCacheData($cacheUri, $cacheData);
if (!$lastUpdated || $cacheData['updated'] > $lastUpdated) {
file_put_contents($outputPath, $cacheData['compiled']);
}
} else {
$less->compileFile($inputPath, $outputPath);
}
} else {
$exe = $this->jsToolOptions['bin'];
$options = $this->jsToolOptions['options'];
$cmd = "{$exe} {$options} \"{$inputPath}\" \"{$outputPath}\"";
$this->logger->debug('$> ' . $cmd);
shell_exec($cmd);
}
}
示例10: bigboom_generate_custom_color_scheme
/**
* Generate custom color scheme css
*
* @since 1.0
*/
function bigboom_generate_custom_color_scheme()
{
parse_str($_POST['data'], $data);
if (!isset($data['custom_color_scheme'])) {
return;
}
if (!$data['custom_color_scheme']) {
return;
}
$color_1 = $data['custom_color_1'];
if (!$color_1) {
return;
}
// Prepare LESS to compile
$less = file_get_contents(THEME_DIR . '/css/color-schemes/mixin.less');
$less .= ".custom-color-scheme { .color-scheme({$color_1}); }";
// Compile
require THEME_DIR . '/inc/libs/lessc.inc.php';
$compiler = new lessc();
$compiler->setFormatter('compressed');
$css = $compiler->compile($less);
// Get file path
$upload_dir = wp_upload_dir();
$dir = path_join($upload_dir['basedir'], 'custom-css');
$file = $dir . '/color-scheme.css';
// Create directory if it doesn't exists
wp_mkdir_p($dir);
@file_put_contents($file, $css);
wp_send_json_success();
}
示例11: process
/**
* Process asset content
*
* @param string $content
* @param Asset $asset
*
* @return string
*/
public static function process($content, Asset $asset)
{
// Set Less
$lc = new lessc();
$lc->importDir = dirname($asset->source_file()) . DIRECTORY_SEPARATOR;
return $lc->parse($content);
}
示例12: boot
public function boot(Application $app)
{
// Validate this params.
$this->validate($app);
// Define default formatter if not already set.
$formatter = isset($app['less.formatter']) ? $app['less.formatter'] : self::FORMATTER_CLASSIC;
$sources = $app['less.sources'];
$target = $app['less.target'];
$targetContent = '';
$needToRecompile = false;
!is_array($sources) and $sources = array($sources);
foreach ($sources as $source) {
if (!$needToRecompile) {
$needToRecompile = $this->targetNeedsRecompile($source, $target);
}
if ($needToRecompile) {
$handle = new \lessc($source);
$handle->setFormatter($formatter);
$targetContent .= $handle->parse();
}
}
if (isset($handle)) {
if ($targetContent) {
file_put_contents($target, $targetContent);
if (isset($app['less.target_mode'])) {
chmod($target, $app['less.target_mode']);
}
} else {
throw new \Exception("No content after parsing less source files. Please check your .less files");
}
}
}
示例13: actionLess
public function actionLess()
{
Yii::import('mod.core.models.less.*');
if (isset($_POST['Less'])) {
$path = Yii::getPathOfAlias('webroot.themes.default.less');
Yii::import('app.phpless.lessc');
$less = new lessc();
$param = array();
foreach ($_POST['Less'] as $key => $val) {
$param[$key] = $val;
}
Yii::app()->settings->set('less', $param);
$less->setVariables($param);
/* $less->setVariables(array(
'btn-default-bgcolor' => '#e0e0e0', //#e0e0e0
'btn-primary-bgcolor' => '#265a88',
'btn-success-bgcolor' => '#419641',
'btn-info-bgcolor' => '#2aabd2',
'btn-warning-bgcolor' => '#eb9316',
'btn-danger-bgcolor' => '#c12e2a',
)); */
$less->compileFile($path . "/bootstrap-theme.less", Yii::getPathOfAlias('webroot.themes.default.assets.css') . "/bootstrap-theme.css");
}
$this->render('less', array('gradient' => new LessGradient()));
}
示例14: compileLess
private function compileLess()
{
$lessc = new lessc();
$lessIndexPath = DIR_TEMPLATE . '/default/stylesheet/less/index.less';
$cssIndexPath = DIR_TEMPLATE . '/default/stylesheet/stylesheet.css';
$lessc->checkedCompile($lessIndexPath, $cssIndexPath);
}
示例15: compileLess
public function compileLess($inputFile, $outputFile)
{
if (!class_exists('lessc')) {
require_once KPATH_FRAMEWORK . '/external/lessc/lessc.php';
}
// Load the cache.
$cacheDir = JPATH_CACHE . '/kunena';
if (!is_dir($cacheDir)) {
KunenaFolder::create($cacheDir);
}
$cacheFile = "{$cacheDir}/kunena.bootstrap.{$inputFile}.cache";
if (is_file($cacheFile)) {
$cache = unserialize(file_get_contents($cacheFile));
} else {
$cache = KPATH_MEDIA . '/less/bootstrap/' . $inputFile;
}
$outputFile = KPATH_MEDIA . '/css/joomla25/' . $outputFile;
$less = new lessc();
//$less->setVariables($this->style_variables);
$newCache = $less->cachedCompile($cache);
if (!is_array($cache) || $newCache['updated'] > $cache['updated'] || !is_file($outputFile)) {
$cache = serialize($newCache);
KunenaFile::write($cacheFile, $cache);
KunenaFile::write($outputFile, $newCache['compiled']);
}
}