| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 | 
							- <?php
 - 
 - /*
 -  * This file is part of Twig.
 -  *
 -  * (c) 2010 Fabien Potencier
 -  *
 -  * For the full copyright and license information, please view the LICENSE
 -  * file that was distributed with this source code.
 -  */
 - 
 - /**
 -  * Represents a set node.
 -  *
 -  * @package    twig
 -  * @author     Fabien Potencier <fabien@symfony.com>
 -  */
 - class Twig_Node_Set extends Twig_Node
 - {
 -     public function __construct($capture, Twig_NodeInterface $names, Twig_NodeInterface $values, $lineno, $tag = null)
 -     {
 -         parent::__construct(array('names' => $names, 'values' => $values), array('capture' => $capture, 'safe' => false), $lineno, $tag);
 - 
 -         /*
 -          * Optimizes the node when capture is used for a large block of text.
 -          *
 -          * {% set foo %}foo{% endset %} is compiled to $context['foo'] = new Twig_Markup("foo");
 -          */
 -         if ($this->getAttribute('capture')) {
 -             $this->setAttribute('safe', true);
 - 
 -             $values = $this->getNode('values');
 -             if ($values instanceof Twig_Node_Text) {
 -                 $this->setNode('values', new Twig_Node_Expression_Constant($values->getAttribute('data'), $values->getLine()));
 -                 $this->setAttribute('capture', false);
 -             }
 -         }
 -     }
 - 
 -     /**
 -      * Compiles the node to PHP.
 -      *
 -      * @param Twig_Compiler A Twig_Compiler instance
 -      */
 -     public function compile(Twig_Compiler $compiler)
 -     {
 -         $compiler->addDebugInfo($this);
 - 
 -         if (count($this->getNode('names')) > 1) {
 -             $compiler->write('list(');
 -             foreach ($this->getNode('names') as $idx => $node) {
 -                 if ($idx) {
 -                     $compiler->raw(', ');
 -                 }
 - 
 -                 $compiler->subcompile($node);
 -             }
 -             $compiler->raw(')');
 -         } else {
 -             if ($this->getAttribute('capture')) {
 -                 $compiler
 -                     ->write("ob_start();\n")
 -                     ->subcompile($this->getNode('values'))
 -                 ;
 -             }
 - 
 -             $compiler->subcompile($this->getNode('names'), false);
 - 
 -             if ($this->getAttribute('capture')) {
 -                 $compiler->raw(" = new Twig_Markup(ob_get_clean(), \$this->env->getCharset())");
 -             }
 -         }
 - 
 -         if (!$this->getAttribute('capture')) {
 -             $compiler->raw(' = ');
 - 
 -             if (count($this->getNode('names')) > 1) {
 -                 $compiler->write('array(');
 -                 foreach ($this->getNode('values') as $idx => $value) {
 -                     if ($idx) {
 -                         $compiler->raw(', ');
 -                     }
 - 
 -                     $compiler->subcompile($value);
 -                 }
 -                 $compiler->raw(')');
 -             } else {
 -                 if ($this->getAttribute('safe')) {
 -                     $compiler
 -                         ->raw("new Twig_Markup(")
 -                         ->subcompile($this->getNode('values'))
 -                         ->raw(", \$this->env->getCharset())")
 -                     ;
 -                 } else {
 -                     $compiler->subcompile($this->getNode('values'));
 -                 }
 -             }
 -         }
 - 
 -         $compiler->raw(";\n");
 -     }
 - }
 
 
  |