From adea589a3df4047055c6bcb002180080f21eb406 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sun, 25 Dec 2011 22:36:00 +0100 Subject: [PATCH] [Twig] made code compatible with Twig 1.5 --- src/Symfony/Bridge/Twig/Node/TransNode.php | 25 +++++++++++++++------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/Symfony/Bridge/Twig/Node/TransNode.php b/src/Symfony/Bridge/Twig/Node/TransNode.php index 3a831829ff..0d09918c5b 100644 --- a/src/Symfony/Bridge/Twig/Node/TransNode.php +++ b/src/Symfony/Bridge/Twig/Node/TransNode.php @@ -89,15 +89,24 @@ class TransNode extends \Twig_Node return array($body, $vars); } - $current = array(); - foreach ($vars as $name => $var) { - $current[$name] = true; - } - preg_match_all('/(?setNode('%'.$var.'%', new \Twig_Node_Expression_Name($var, $body->getLine())); + + if (version_compare(\Twig_Environment::VERSION, '1.5', '>=')) { + foreach ($matches[1] as $var) { + $key = new \Twig_Node_Expression_Constant('%'.$var.'%', $body->getLine()); + if (!$vars->hasElement($key)) { + $vars->addElement(new \Twig_Node_Expression_Name($var, $body->getLine()), $key); + } + } + } else { + $current = array(); + foreach ($vars as $name => $var) { + $current[$name] = true; + } + foreach ($matches[1] as $var) { + if (!isset($current['%'.$var.'%'])) { + $vars->setNode('%'.$var.'%', new \Twig_Node_Expression_Name($var, $body->getLine())); + } } }