value = $value; $this->currentFileInfo = $currentFileInfo; $this->isEvald = $isEvald; } public function accept($visitor) { $this->value = $visitor->visitObj($this->value); } /** * @see Less_Tree::genCSS */ public function genCSS($output) { $output->add('url('); $this->value->genCSS($output); $output->add(')'); } /** * @param Less_Functions $ctx */ public function compile($ctx) { $val = $this->value->compile($ctx); if (!$this->isEvald) { // Add the base path if the URL is relative if (Less_Parser::$options['relativeUrls'] && $this->currentFileInfo && is_string($val->value) && Less_Environment::isPathRelative($val->value) ) { $rootpath = $this->currentFileInfo['uri_root']; if (!$val->quote) { $rootpath = preg_replace('/[\(\)\'"\s]/', '\\$1', $rootpath); } $val->value = $rootpath.$val->value; } $val->value = Less_Environment::normalizePath($val->value); } // Add cache buster if enabled if (Less_Parser::$options['urlArgs']) { if (!preg_match('/^\s*data:/', $val->value)) { $delimiter = strpos($val->value, '?') === FALSE ? '?' : '&'; $urlArgs = $delimiter.Less_Parser::$options['urlArgs']; $hash_pos = strpos($val->value, '#'); if ($hash_pos !== FALSE) { $val->value = substr_replace($val->value, $urlArgs, $hash_pos, 0); } else { $val->value .= $urlArgs; } } } return new Less_Tree_URL($val, $this->currentFileInfo, TRUE); } }