diff --git a/phpBB/includes/template/twig/extension.php b/phpBB/includes/template/twig/extension.php index c4d36050f9..5ffc45e75a 100644 --- a/phpBB/includes/template/twig/extension.php +++ b/phpBB/includes/template/twig/extension.php @@ -54,7 +54,6 @@ class phpbb_template_twig_extension extends Twig_Extension public function getTokenParsers() { return array( - new phpbb_template_twig_tokenparser_if, new phpbb_template_twig_tokenparser_define, new phpbb_template_twig_tokenparser_include, new phpbb_template_twig_tokenparser_includejs, diff --git a/phpBB/includes/template/twig/lexer.php b/phpBB/includes/template/twig/lexer.php index 394c3077a6..5f76c44481 100644 --- a/phpBB/includes/template/twig/lexer.php +++ b/phpBB/includes/template/twig/lexer.php @@ -24,12 +24,12 @@ class phpbb_template_twig_lexer extends Twig_Lexer $phpbb_tags = array( /*'BEGIN', 'BEGINELSE', - 'END',*/ + 'END', 'IF', 'ELSE', 'ELSEIF', 'ENDIF', - /*'DEFINE', + 'DEFINE', 'UNDEFINE',*/ 'ENDDEFINE', 'INCLUDE', @@ -44,6 +44,10 @@ class phpbb_template_twig_lexer extends Twig_Lexer $twig_tags = array( 'autoescape', 'endautoescape', + 'if', + 'elseif', + 'else', + 'endif', 'block', 'endblock', 'use', diff --git a/phpBB/includes/template/twig/tokenparser/if.php b/phpBB/includes/template/twig/tokenparser/if.php deleted file mode 100644 index 77881ad5f0..0000000000 --- a/phpBB/includes/template/twig/tokenparser/if.php +++ /dev/null @@ -1,87 +0,0 @@ -getLine(); - $expr = $this->parser->getExpressionParser()->parseExpression(); - $stream = $this->parser->getStream(); - $stream->expect(Twig_Token::BLOCK_END_TYPE); - $body = $this->parser->subparse(array($this, 'decideIfFork')); - $tests = array($expr, $body); - $else = null; - - $end = false; - while (!$end) { - switch ($stream->next()->getValue()) { - case 'ELSE': - $stream->expect(Twig_Token::BLOCK_END_TYPE); - $else = $this->parser->subparse(array($this, 'decideIfEnd')); - break; - - case 'ELSEIF': - $expr = $this->parser->getExpressionParser()->parseExpression(); - $stream->expect(Twig_Token::BLOCK_END_TYPE); - $body = $this->parser->subparse(array($this, 'decideIfFork')); - $tests[] = $expr; - $tests[] = $body; - break; - - case 'ENDIF': - $end = true; - break; - - default: - throw new Twig_Error_Syntax(sprintf('Unexpected end of template. Twig was looking for the following tags "ELSE", "ELSEIF", or "ENDIF" to close the "IF" block started at line %d)', $lineno), $stream->getCurrent()->getLine(), $stream->getFilename()); - } - } - - $stream->expect(Twig_Token::BLOCK_END_TYPE); - - return new Twig_Node_If(new Twig_Node($tests), $else, $lineno, $this->getTag()); - } - - public function decideIfFork(Twig_Token $token) - { - return $token->test(array('ELSEIF', 'ELSE', 'ENDIF')); - } - - public function decideIfEnd(Twig_Token $token) - { - return $token->test(array('ENDIF')); - } - - /** - * Gets the tag name associated with this token parser. - * - * @return string The tag name - */ - public function getTag() - { - return 'IF'; - } -}