From ea785efb30ced6ab399b290df6f202cb97315f80 Mon Sep 17 00:00:00 2001
From: Nathaniel Guse <nathaniel.guse@gmail.com>
Date: Tue, 25 Jun 2013 14:22:40 -0500
Subject: [feature/twig] PHP token support

PHPBB3-11598
---
 phpBB/includes/template/twig/tokenparser/php.php | 46 ++++++++++++++++++++++++
 1 file changed, 46 insertions(+)
 create mode 100644 phpBB/includes/template/twig/tokenparser/php.php

(limited to 'phpBB/includes/template/twig/tokenparser/php.php')

diff --git a/phpBB/includes/template/twig/tokenparser/php.php b/phpBB/includes/template/twig/tokenparser/php.php
new file mode 100644
index 0000000000..7db57081e2
--- /dev/null
+++ b/phpBB/includes/template/twig/tokenparser/php.php
@@ -0,0 +1,46 @@
+<?php
+/**
+*
+* @package phpBB3
+* @copyright (c) 2013 phpBB Group
+* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+*
+*/
+
+class phpbb_template_twig_tokenparser_php extends Twig_TokenParser
+{
+    /**
+     * 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)
+    {
+        $stream = $this->parser->getStream();
+
+        $stream->expect(Twig_Token::BLOCK_END_TYPE);
+
+		$body = $this->parser->subparse(array($this, 'decideEnd'), true);
+
+        $stream->expect(Twig_Token::BLOCK_END_TYPE);
+
+        return new phpbb_template_twig_node_php($body, $this->parser->getEnvironment(), $token->getLine(), $this->getTag());
+    }
+
+    public function decideEnd(Twig_Token $token)
+    {
+        return $token->test('ENDPHP');
+    }
+
+    /**
+     * Gets the tag name associated with this token parser.
+     *
+     * @return string The tag name
+     */
+    public function getTag()
+    {
+        return 'PHP';
+    }
+}
-- 
cgit v1.2.1