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 ); } }