From 658d1b6afe7816ba92c30e227ebdef0db427ce53 Mon Sep 17 00:00:00 2001 From: Nathaniel Guse Date: Mon, 1 Jul 2013 09:20:46 -0500 Subject: [PATCH] [feature/twig] Fixing include node PHPBB3-11598 --- phpBB/includes/template/twig/node/include.php | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/phpBB/includes/template/twig/node/include.php b/phpBB/includes/template/twig/node/include.php index df7a95af44..2a90dc19e4 100644 --- a/phpBB/includes/template/twig/node/include.php +++ b/phpBB/includes/template/twig/node/include.php @@ -18,28 +18,30 @@ class phpbb_template_twig_node_include extends Twig_Node_Include { $compiler->addDebugInfo($this); - $location = $this->getNode('expr')->getAttribute('value'); - $namespace = false; - - if (strpos($location, '@') === 0) - { - $namespace = substr($location, 1, strpos($location, '/') - 1); - - $compiler + $compiler + ->write("\$location = ") + ->subcompile($this->getNode('expr')) + ->raw(";\n") + ->write("\$namespace = false;\n") + ->write("if (strpos(\$location, '@') === 0) {\n") + ->indent() + ->write("\$namespace = substr(\$location, 1, strpos(\$location, '/') - 1);\n") ->write("\$previous_look_up_order = \$this->env->getNamespaceLookUpOrder();\n") // We set the namespace lookup order to be this namespace first, then the main path - ->write("\$this->env->setNamespaceLookUpOrder(array('" . $namespace . "', '__main__'));\n") - ; - } + ->write("\$this->env->setNamespaceLookUpOrder(array(\$namespace, '__main__'));\n") + ->outdent() + ->write("}\n") + ; parent::compile($compiler); - if ($namespace) - { - $compiler - ->write("\$this->env->setNamespaceLookUpOrder(\$previous_look_up_order);\n") - ; - } + $compiler + ->write("if (\$namespace) {\n") + ->indent() + ->write("\$this->env->setNamespaceLookUpOrder(\$previous_look_up_order);\n") + ->outdent() + ->write("}\n") + ; } }