From 02a8150bb615b6319bcdfd170e3febe34117f16c Mon Sep 17 00:00:00 2001 From: Nathaniel Guse Date: Tue, 2 Jul 2013 11:08:52 -0500 Subject: [PATCH] [feature/twig] INCLUDEPHP behavior now supports local relative paths As a last resort, now we use the Twig Loader to find the correct file to include to (most specific file first, then parent styles). Also allows using @namespace convention. This is ONLY done if the specified path is not an absolute path AND the file does not exist relative to the phpBB root path. PHPBB3-11598 --- phpBB/includes/template/twig/node/includephp.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/phpBB/includes/template/twig/node/includephp.php b/phpBB/includes/template/twig/node/includephp.php index 33142bf05a..a19ce43653 100644 --- a/phpBB/includes/template/twig/node/includephp.php +++ b/phpBB/includes/template/twig/node/includephp.php @@ -52,11 +52,18 @@ class phpbb_template_twig_node_includephp extends Twig_Node ->raw(";\n") ->write("if (phpbb_is_absolute(\$location)) {\n") ->indent() + // Absolute path specified ->write("require(\$location);\n") ->outdent() + ->write("} else if (file_exists(\$this->getEnvironment()->get_phpbb_root_path() . \$location)) {\n") + ->indent() + // PHP file relative to phpbb_root_path + ->write("require(\$this->getEnvironment()->get_phpbb_root_path() . \$location);\n") + ->outdent() ->write("} else {\n") ->indent() - ->write("require(\$this->getEnvironment()->get_phpbb_root_path() . \$location);\n") + // Local path (behaves like INCLUDE) + ->write("require(\$this->getEnvironment()->getLoader()->getCacheKey(\$location));\n") ->outdent() ->write("}\n") ;