diff options
author | Nathan Guse <nathaniel.guse@gmail.com> | 2013-09-09 11:26:40 -0500 |
---|---|---|
committer | Nathan Guse <nathaniel.guse@gmail.com> | 2013-09-09 11:26:40 -0500 |
commit | 5166240d628e19ba0db13e5dc0de8153e80d4c44 (patch) | |
tree | 484b0e13c193b52507e6eff3e56abda7cb2fef2f /phpBB/phpbb/template/twig/lexer.php | |
parent | 0cb4ceabf435499df6648d357d872f5347c8862f (diff) | |
download | forums-5166240d628e19ba0db13e5dc0de8153e80d4c44.tar forums-5166240d628e19ba0db13e5dc0de8153e80d4c44.tar.gz forums-5166240d628e19ba0db13e5dc0de8153e80d4c44.tar.bz2 forums-5166240d628e19ba0db13e5dc0de8153e80d4c44.tar.xz forums-5166240d628e19ba0db13e5dc0de8153e80d4c44.zip |
[ticket/11833] Prevent Twig errors from invalid template loops using BEGINELSE
PHPBB3-11833
Diffstat (limited to 'phpBB/phpbb/template/twig/lexer.php')
-rw-r--r-- | phpBB/phpbb/template/twig/lexer.php | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/phpBB/phpbb/template/twig/lexer.php b/phpBB/phpbb/template/twig/lexer.php index 7ab569313c..ba822e7545 100644 --- a/phpBB/phpbb/template/twig/lexer.php +++ b/phpBB/phpbb/template/twig/lexer.php @@ -161,6 +161,9 @@ class phpbb_template_twig_lexer extends Twig_Lexer $subset = trim(substr($matches[2], 1, -1)); // Remove parenthesis $body = $matches[3]; + // Replace <!-- BEGINELSE --> + $body = str_replace('<!-- BEGINELSE -->', '{% else %}', $body); + // Is the designer wanting to call another loop in a loop? // <!-- BEGIN loop --> // <!-- BEGIN !loop2 --> @@ -205,9 +208,6 @@ class phpbb_template_twig_lexer extends Twig_Lexer return "{% for {$name} in {$parent}{$name}{$subset} %}{$body}{% endfor %}"; }; - // Replace <!-- BEGINELSE --> correctly, only needs to be done once - $code = str_replace('<!-- BEGINELSE -->', '{% else %}', $code); - return preg_replace_callback('#<!-- BEGIN ([!a-zA-Z0-9_]+)(\([0-9,\-]+\))? -->(.+?)<!-- END \1 -->#s', $callback, $code); } |