aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes')
-rw-r--r--phpBB/includes/template/twig/extension.php1
-rw-r--r--phpBB/includes/template/twig/lexer.php2
-rw-r--r--phpBB/includes/template/twig/node/includecss.php30
-rw-r--r--phpBB/includes/template/twig/tokenparser/includecss.php38
4 files changed, 71 insertions, 0 deletions
diff --git a/phpBB/includes/template/twig/extension.php b/phpBB/includes/template/twig/extension.php
index 5ffc45e75a..c279726434 100644
--- a/phpBB/includes/template/twig/extension.php
+++ b/phpBB/includes/template/twig/extension.php
@@ -57,6 +57,7 @@ class phpbb_template_twig_extension extends Twig_Extension
new phpbb_template_twig_tokenparser_define,
new phpbb_template_twig_tokenparser_include,
new phpbb_template_twig_tokenparser_includejs,
+ new phpbb_template_twig_tokenparser_includecss,
new phpbb_template_twig_tokenparser_event,
new phpbb_template_twig_tokenparser_includephp,
new phpbb_template_twig_tokenparser_php,
diff --git a/phpBB/includes/template/twig/lexer.php b/phpBB/includes/template/twig/lexer.php
index d0a84a8b7f..46412ad048 100644
--- a/phpBB/includes/template/twig/lexer.php
+++ b/phpBB/includes/template/twig/lexer.php
@@ -35,6 +35,7 @@ class phpbb_template_twig_lexer extends Twig_Lexer
'INCLUDE',
'INCLUDEPHP',
'INCLUDEJS',
+ 'INCLUDECSS',
'PHP',
'ENDPHP',
'EVENT',
@@ -78,6 +79,7 @@ class phpbb_template_twig_lexer extends Twig_Lexer
'INCLUDE',
'INCLUDEPHP',
'INCLUDEJS',
+ 'INCLUDECSS',
), $code);
// Fix our BEGIN statements
diff --git a/phpBB/includes/template/twig/node/includecss.php b/phpBB/includes/template/twig/node/includecss.php
new file mode 100644
index 0000000000..01fda44aad
--- /dev/null
+++ b/phpBB/includes/template/twig/node/includecss.php
@@ -0,0 +1,30 @@
+<?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_node_includecss extends phpbb_template_twig_node_includeasset
+{
+ public function get_definition_name()
+ {
+ return 'STYLESHEETS';
+ }
+
+ /**
+ * Compiles the node to PHP.
+ *
+ * @param Twig_Compiler A Twig_Compiler instance
+ */
+ public function append_asset(Twig_Compiler $compiler)
+ {
+ $compiler
+ ->raw("<link href=\"' . ")
+ ->raw("\$asset_file . '\"")
+ ->raw(' rel="stylesheet" type="text/css" media="screen, projection" />')
+ ;
+ }
+}
diff --git a/phpBB/includes/template/twig/tokenparser/includecss.php b/phpBB/includes/template/twig/tokenparser/includecss.php
new file mode 100644
index 0000000000..6c24dda647
--- /dev/null
+++ b/phpBB/includes/template/twig/tokenparser/includecss.php
@@ -0,0 +1,38 @@
+<?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_includecss 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)
+ {
+ $expr = $this->parser->getExpressionParser()->parseExpression();
+
+ $stream = $this->parser->getStream();
+ $stream->expect(Twig_Token::BLOCK_END_TYPE);
+
+ return new phpbb_template_twig_node_includecss($expr, $this->parser->getEnvironment(), $token->getLine(), $this->getTag());
+ }
+
+ /**
+ * Gets the tag name associated with this token parser.
+ *
+ * @return string The tag name
+ */
+ public function getTag()
+ {
+ return 'INCLUDECSS';
+ }
+}