protected function TwigNodeVisitor::doLeaveNode in Drupal 8
Same name and namespace in other branches
- 9 core/lib/Drupal/Core/Template/TwigNodeVisitor.php \Drupal\Core\Template\TwigNodeVisitor::doLeaveNode()
File
- core/lib/Drupal/Core/Template/TwigNodeVisitor.php, line 26
Class
- TwigNodeVisitor
- Provides a Twig_NodeVisitor to change the generated parse-tree.
Namespace
Drupal\Core\Template
Code
protected function doLeaveNode(\Twig_Node $node, \Twig_Environment $env) {
if ($node instanceof \Twig_Node_Print) {
if (!empty($this->skipRenderVarFunction)) {
unset($this->skipRenderVarFunction);
return $node;
}
$class = get_class($node);
$line = $node
->getTemplateLine();
return new $class(new \Twig_Node_Expression_Function('render_var', new \Twig_Node([
$node
->getNode('expr'),
]), $line), $line);
}
elseif ($node instanceof \Twig_Node_Expression_Filter) {
$name = $node
->getNode('filter')
->getAttribute('value');
if ('escape' == $name || 'e' == $name) {
$node
->getNode('filter')
->setAttribute('value', 'drupal_escape');
$this->skipRenderVarFunction = TRUE;
}
}
return $node;
}