Skip to content

Commit

Permalink
Merge pull request #1509 from EXreaction/ticket/11388
Browse files Browse the repository at this point in the history
Ticket/11388 INCLUDECSS
  • Loading branch information
naderman committed Jul 11, 2013
2 parents 59f34be + 9f5c1e0 commit bdd1d4d
Show file tree
Hide file tree
Showing 11 changed files with 107 additions and 1 deletion.
1 change: 1 addition & 0 deletions phpBB/includes/template/twig/extension.php
Expand Up @@ -57,6 +57,7 @@ public function getTokenParsers()
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,
Expand Down
2 changes: 2 additions & 0 deletions phpBB/includes/template/twig/lexer.php
Expand Up @@ -35,6 +35,7 @@ public function tokenize($code, $filename = null)
'INCLUDE',
'INCLUDEPHP',
'INCLUDEJS',
'INCLUDECSS',
'PHP',
'ENDPHP',
'EVENT',
Expand Down Expand Up @@ -78,6 +79,7 @@ public function tokenize($code, $filename = null)
'INCLUDE',
'INCLUDEPHP',
'INCLUDEJS',
'INCLUDECSS',
), $code);

// Fix our BEGIN statements
Expand Down
30 changes: 30 additions & 0 deletions 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" />')
;
}
}
38 changes: 38 additions & 0 deletions 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';
}
}
2 changes: 2 additions & 0 deletions phpBB/styles/prosilver/template/overall_header.html
Expand Up @@ -76,6 +76,8 @@

<!-- EVENT overall_header_head_append -->

{$STYLESHEETS}

</head>
<body id="phpbb" class="section-{SCRIPT_NAME} {S_CONTENT_DIRECTION}">

Expand Down
2 changes: 2 additions & 0 deletions phpBB/styles/subsilver2/template/overall_header.html
Expand Up @@ -132,6 +132,8 @@

<!-- EVENT overall_header_head_append -->

{$STYLESHEETS}

</head>
<body class="{S_CONTENT_DIRECTION}">

Expand Down
Empty file.
28 changes: 28 additions & 0 deletions tests/template/template_includecss_test.php
@@ -0,0 +1,28 @@
<?php
/**
*
* @package testing
* @copyright (c) 2013 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/

require_once dirname(__FILE__) . '/template_test_case_with_tree.php';

class phpbb_template_template_includecss_test extends phpbb_template_template_test_case_with_tree
{
public function test_includecss_compilation()
{
// Reset the engine state
$this->setup_engine(array('assets_version' => 1));

// Prepare correct result
$scripts = array(
'<link href="' . $this->test_path . '/templates/child_only.css?assets_version=1" rel="stylesheet" type="text/css" media="screen, projection" />',
'<link href="' . $this->test_path . '/parent_templates/parent_only.css?assets_version=1" rel="stylesheet" type="text/css" media="screen, projection" />',
);

// Run test
$this->run_template('includecss.html', array(), array(), array(), implode('', $scripts));
}
}
Empty file.
3 changes: 3 additions & 0 deletions tests/template/templates/includecss.html
@@ -0,0 +1,3 @@
<!-- INCLUDECSS child_only.css -->
<!-- INCLUDECSS parent_only.css -->
{$STYLESHEETS}
2 changes: 1 addition & 1 deletion tests/template/templates/twig_parent.html
Expand Up @@ -4,4 +4,4 @@

<!-- BLOCK overwritten -->
2
<!-- ENDBLOCK -->
<!-- ENDBLOCK -->

0 comments on commit bdd1d4d

Please sign in to comment.