Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
2 / 2 |
CRAP | |
100.00% |
16 / 16 |
definenode | |
100.00% |
1 / 1 |
|
100.00% |
2 / 2 |
3 | |
100.00% |
16 / 16 |
__construct | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
compile | |
100.00% |
1 / 1 |
2 | |
100.00% |
14 / 14 |
<?php | |
/** | |
* | |
* This file is part of the phpBB Forum Software package. | |
* | |
* @copyright (c) phpBB Limited <https://www.phpbb.com> | |
* @copyright Portions (c) 2009 Fabien Potencier, Armin Ronacher | |
* @license GNU General Public License, version 2 (GPL-2.0) | |
* | |
* For full copyright and license information, please see | |
* the docs/CREDITS.txt file. | |
* | |
*/ | |
namespace phpbb\template\twig\node; | |
class definenode extends \Twig_Node | |
{ | |
public function __construct($capture, \Twig_NodeInterface $name, \Twig_NodeInterface $value, $lineno, $tag = null) | |
{ | |
parent::__construct(array('name' => $name, 'value' => $value), array('capture' => $capture, 'safe' => false), $lineno, $tag); | |
} | |
/** | |
* Compiles the node to PHP. | |
* | |
* @param \Twig_Compiler A Twig_Compiler instance | |
*/ | |
public function compile(\Twig_Compiler $compiler) | |
{ | |
$compiler->addDebugInfo($this); | |
if ($this->getAttribute('capture')) | |
{ | |
$compiler | |
->write("ob_start();\n") | |
->subcompile($this->getNode('value')) | |
; | |
$compiler->write("\$value = ('' === \$value = ob_get_clean()) ? '' : new \Twig_Markup(\$value, \$this->env->getCharset());\n"); | |
} | |
else | |
{ | |
$compiler | |
->write("\$value = ") | |
->subcompile($this->getNode('value')) | |
->raw(";\n") | |
; | |
} | |
$compiler | |
->write("\$context['definition']->set('") | |
->raw($this->getNode('name')->getAttribute('name')) | |
->raw("', \$value);\n") | |
; | |
} | |
} |