aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/template/twig/lexer.php
diff options
context:
space:
mode:
authorNathan Guse <nathaniel.guse@gmail.com>2013-09-09 11:26:40 -0500
committerNathan Guse <nathaniel.guse@gmail.com>2013-09-09 11:26:40 -0500
commit5166240d628e19ba0db13e5dc0de8153e80d4c44 (patch)
tree484b0e13c193b52507e6eff3e56abda7cb2fef2f /phpBB/phpbb/template/twig/lexer.php
parent0cb4ceabf435499df6648d357d872f5347c8862f (diff)
downloadforums-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.php6
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);
}