From: Fabien Potencier Date: Thu, 18 Oct 2012 07:25:09 +0000 (+0200) Subject: moved some logic from the sandbox node visitor to the sandbox node X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=191c9220c3a9271203869af05b46704a9753ee60;p=web%2Fkonrad%2Ftwig.git moved some logic from the sandbox node visitor to the sandbox node --- diff --git a/lib/Twig/Node/Sandbox.php b/lib/Twig/Node/Sandbox.php index cbfcb41..fbafd99 100644 --- a/lib/Twig/Node/Sandbox.php +++ b/lib/Twig/Node/Sandbox.php @@ -20,6 +20,19 @@ class Twig_Node_Sandbox extends Twig_Node public function __construct(Twig_NodeInterface $body, $lineno, $tag = null) { parent::__construct(array('body' => $body), array(), $lineno, $tag); + + // in a sandbox tag, only include tags are allowed + if (!$this->getNode('body') instanceof Twig_Node_Include) { + foreach ($this->getNode('body') as $node) { + if ($node instanceof Twig_Node_Text && ctype_space($node->getAttribute('data'))) { + continue; + } + + if (!$node instanceof Twig_Node_Include) { + throw new Twig_Error_Syntax('Only "include" tags are allowed within a "sandbox" section', $node->getLine()); + } + } + } } /** diff --git a/lib/Twig/NodeVisitor/Sandbox.php b/lib/Twig/NodeVisitor/Sandbox.php index 61ef0c6..1957f8a 100644 --- a/lib/Twig/NodeVisitor/Sandbox.php +++ b/lib/Twig/NodeVisitor/Sandbox.php @@ -32,19 +32,6 @@ class Twig_NodeVisitor_Sandbox implements Twig_NodeVisitorInterface */ public function enterNode(Twig_NodeInterface $node, Twig_Environment $env) { - // in a sandbox tag, only include tags are allowed - if ($node instanceof Twig_Node_Sandbox && !$node->getNode('body') instanceof Twig_Node_Include) { - foreach ($node->getNode('body') as $n) { - if ($n instanceof Twig_Node_Text && ctype_space($n->getAttribute('data'))) { - continue; - } - - if (!$n instanceof Twig_Node_Include) { - throw new Twig_Error_Syntax('Only "include" tags are allowed within a "sandbox" section', $n->getLine()); - } - } - } - if ($node instanceof Twig_Node_Module) { $this->inAModule = true; $this->tags = array();