aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/includes/template/twig/extension.php1
-rw-r--r--phpBB/includes/template/twig/lexer.php8
-rw-r--r--phpBB/includes/template/twig/tokenparser/if.php87
3 files changed, 6 insertions, 90 deletions
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 @@
-<?php
-/**
-*
-* @package phpBB3
-* @copyright (c) 2013 phpBB Group, sections (c) 2009 Fabien Potencier
-* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
-*
-*/
-
-/**
-* @ignore
-*/
-if (!defined('IN_PHPBB'))
-{
- exit;
-}
-
-
-class phpbb_template_twig_tokenparser_if extends Twig_TokenParser_If
-{
- /**
- * Parses a token and returns a node.
- *
- * @param Twig_Token $token A Twig_Token instance
- *
- * @return Twig_NodeInterface A Twig_NodeInterface instance
- */
- public function parse(Twig_Token $token)
- {
- $lineno = $token->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';
- }
-}