mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 14:18:52 +00:00
[feature/twig] Fixing include node
PHPBB3-11598
This commit is contained in:
parent
ecdc73a81a
commit
658d1b6afe
1 changed files with 19 additions and 17 deletions
|
@ -18,28 +18,30 @@ class phpbb_template_twig_node_include extends Twig_Node_Include
|
||||||
{
|
{
|
||||||
$compiler->addDebugInfo($this);
|
$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")
|
->write("\$previous_look_up_order = \$this->env->getNamespaceLookUpOrder();\n")
|
||||||
|
|
||||||
// We set the namespace lookup order to be this namespace first, then the main path
|
// 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);
|
parent::compile($compiler);
|
||||||
|
|
||||||
if ($namespace)
|
|
||||||
{
|
|
||||||
$compiler
|
$compiler
|
||||||
|
->write("if (\$namespace) {\n")
|
||||||
|
->indent()
|
||||||
->write("\$this->env->setNamespaceLookUpOrder(\$previous_look_up_order);\n")
|
->write("\$this->env->setNamespaceLookUpOrder(\$previous_look_up_order);\n")
|
||||||
|
->outdent()
|
||||||
|
->write("}\n")
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue