Dotclear

source: inc/libs/Twig/Node/Expression/GetAttr.php @ 1149:1657e862089c

Revision 1149:1657e862089c, 2.2 KB checked in by dsls, 13 years ago (diff)

Fixed unix case-sensitive twig directory

Line 
1<?php
2
3/*
4 * This file is part of Twig.
5 *
6 * (c) 2009 Fabien Potencier
7 * (c) 2009 Armin Ronacher
8 *
9 * For the full copyright and license information, please view the LICENSE
10 * file that was distributed with this source code.
11 */
12class Twig_Node_Expression_GetAttr extends Twig_Node_Expression
13{
14    public function __construct(Twig_Node_Expression $node, Twig_Node_Expression $attribute, Twig_Node_Expression_Array $arguments, $type, $lineno)
15    {
16        parent::__construct(array('node' => $node, 'attribute' => $attribute, 'arguments' => $arguments), array('type' => $type, 'is_defined_test' => false, 'ignore_strict_check' => false, 'disable_c_ext' => false), $lineno);
17    }
18
19    public function compile(Twig_Compiler $compiler)
20    {
21        if (function_exists('twig_template_get_attributes') && !$this->getAttribute('disable_c_ext')) {
22            $compiler->raw('twig_template_get_attributes($this, ');
23        } else {
24            $compiler->raw('$this->getAttribute(');
25        }
26
27        if ($this->getAttribute('ignore_strict_check')) {
28            $this->getNode('node')->setAttribute('ignore_strict_check', true);
29        }
30
31        $compiler->subcompile($this->getNode('node'));
32
33        $compiler->raw(', ')->subcompile($this->getNode('attribute'));
34
35        if (count($this->getNode('arguments')) || Twig_TemplateInterface::ANY_CALL !== $this->getAttribute('type') || $this->getAttribute('is_defined_test') || $this->getAttribute('ignore_strict_check')) {
36            $compiler->raw(', ')->subcompile($this->getNode('arguments'));
37
38            if (Twig_TemplateInterface::ANY_CALL !== $this->getAttribute('type') || $this->getAttribute('is_defined_test') || $this->getAttribute('ignore_strict_check')) {
39                $compiler->raw(', ')->repr($this->getAttribute('type'));
40            }
41
42            if ($this->getAttribute('is_defined_test') || $this->getAttribute('ignore_strict_check')) {
43                $compiler->raw(', '.($this->getAttribute('is_defined_test') ? 'true' : 'false'));
44            }
45
46            if ($this->getAttribute('ignore_strict_check')) {
47                $compiler->raw(', '.($this->getAttribute('ignore_strict_check') ? 'true' : 'false'));
48            }
49        }
50
51        $compiler->raw(')');
52    }
53}
Note: See TracBrowser for help on using the repository browser.

Sites map