123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- <?php
- /*
- class Less_Visitor_import extends Less_VisitorReplacing{
- public $_visitor;
- public $_importer;
- public $importCount;
- function __construct( $evalEnv ){
- $this->env = $evalEnv;
- $this->importCount = 0;
- parent::__construct();
- }
- function run( $root ){
- $root = $this->visitObj($root);
- $this->isFinished = true;
- //if( $this->importCount === 0) {
- // $this->_finish();
- //}
- }
- function visitImport($importNode, &$visitDeeper ){
- $importVisitor = $this;
- $inlineCSS = $importNode->options['inline'];
- if( !$importNode->css || $inlineCSS ){
- $evaldImportNode = $importNode->compileForImport($this->env);
- if( $evaldImportNode && (!$evaldImportNode->css || $inlineCSS) ){
- $importNode = $evaldImportNode;
- $this->importCount++;
- $env = clone $this->env;
- if( (isset($importNode->options['multiple']) && $importNode->options['multiple']) ){
- $env->importMultiple = true;
- }
- //get path & uri
- $path_and_uri = null;
- if( is_callable(Less_Parser::$options['import_callback']) ){
- $path_and_uri = call_user_func(Less_Parser::$options['import_callback'],$importNode);
- }
- if( !$path_and_uri ){
- $path_and_uri = $importNode->PathAndUri();
- }
- if( $path_and_uri ){
- list($full_path, $uri) = $path_and_uri;
- }else{
- $full_path = $uri = $importNode->getPath();
- }
- //import once
- if( $importNode->skip( $full_path, $env) ){
- return array();
- }
- if( $importNode->options['inline'] ){
- //todo needs to reference css file not import
- //$contents = new Less_Tree_Anonymous($importNode->root, 0, array('filename'=>$importNode->importedFilename), true );
- Less_Parser::AddParsedFile($full_path);
- $contents = new Less_Tree_Anonymous( file_get_contents($full_path), 0, array(), true );
- if( $importNode->features ){
- return new Less_Tree_Media( array($contents), $importNode->features->value );
- }
- return array( $contents );
- }
- // css ?
- if( $importNode->css ){
- $features = ( $importNode->features ? $importNode->features->compile($env) : null );
- return new Less_Tree_Import( $importNode->compilePath( $env), $features, $importNode->options, $this->index);
- }
- return $importNode->ParseImport( $full_path, $uri, $env );
- }
- }
- $visitDeeper = false;
- return $importNode;
- }
- function visitRule( $ruleNode, &$visitDeeper ){
- $visitDeeper = false;
- return $ruleNode;
- }
- function visitDirective($directiveNode, $visitArgs){
- array_unshift($this->env->frames,$directiveNode);
- return $directiveNode;
- }
- function visitDirectiveOut($directiveNode) {
- array_shift($this->env->frames);
- }
- function visitMixinDefinition($mixinDefinitionNode, $visitArgs) {
- array_unshift($this->env->frames,$mixinDefinitionNode);
- return $mixinDefinitionNode;
- }
- function visitMixinDefinitionOut($mixinDefinitionNode) {
- array_shift($this->env->frames);
- }
- function visitRuleset($rulesetNode, $visitArgs) {
- array_unshift($this->env->frames,$rulesetNode);
- return $rulesetNode;
- }
- function visitRulesetOut($rulesetNode) {
- array_shift($this->env->frames);
- }
- function visitMedia($mediaNode, $visitArgs) {
- array_unshift($this->env->frames, $mediaNode->ruleset);
- return $mediaNode;
- }
- function visitMediaOut($mediaNode) {
- array_shift($this->env->frames);
- }
- }
- */
|