diff options
| author | Savetheinternet <savetheinternet@tinyboard.org> | 2011-10-05 15:22:53 +1100 |
|---|---|---|
| committer | Savetheinternet <savetheinternet@tinyboard.org> | 2011-10-05 15:22:53 +1100 |
| commit | 1b136555d279bf2cfb28f5661225c010426754f5 (patch) | |
| tree | 01a4dd290f3f8010dc7ed6f0c4e58032a6aef2b6 /inc/contrib/Twig/Node/Expression/Name.php | |
| parent | e077166030a8609bc0c364fdbf8fc3f99c595d32 (diff) | |
transition to Twig
Diffstat (limited to 'inc/contrib/Twig/Node/Expression/Name.php')
| -rw-r--r-- | inc/contrib/Twig/Node/Expression/Name.php | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/inc/contrib/Twig/Node/Expression/Name.php b/inc/contrib/Twig/Node/Expression/Name.php new file mode 100644 index 00000000..fceda2b7 --- /dev/null +++ b/inc/contrib/Twig/Node/Expression/Name.php @@ -0,0 +1,41 @@ +<?php + +/* + * This file is part of Twig. + * + * (c) 2009 Fabien Potencier + * (c) 2009 Armin Ronacher + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +class Twig_Node_Expression_Name extends Twig_Node_Expression +{ + public function __construct($name, $lineno) + { + parent::__construct(array(), array('name' => $name), $lineno); + } + + public function compile(Twig_Compiler $compiler) + { + static $specialVars = array( + '_self' => '$this', + '_context' => '$context', + '_charset' => '$this->env->getCharset()', + ); + + $name = $this->getAttribute('name'); + + if ($this->hasAttribute('is_defined_test')) { + if (isset($specialVars[$name])) { + $compiler->repr(true); + } else { + $compiler->raw('array_key_exists(')->repr($name)->raw(', $context)'); + } + } elseif (isset($specialVars[$name])) { + $compiler->raw($specialVars[$name]); + } else { + $compiler->raw(sprintf('$this->getContext($context, \'%s\')', $name)); + } + } +} |
