diff --git a/src/Symfony/Framework/TwigBundle/TokenParser/JavascriptTokenParser.php b/src/Symfony/Framework/TwigBundle/TokenParser/JavascriptTokenParser.php new file mode 100644 index 0000000000..eef85f8fbe --- /dev/null +++ b/src/Symfony/Framework/TwigBundle/TokenParser/JavascriptTokenParser.php @@ -0,0 +1,48 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Wrapper for the javascripts helper add() method. + * + * {% javascript 'bundles/blog/css/blog.css' %} + * + * @package Symfony + * @subpackage Framework_TwigBundle + * @author Fabien Potencier + */ +class JavascriptTokenParser extends \Twig_TokenParser +{ + public function parse(\Twig_Token $token) + { + $stream = $this->parser->getStream(); + + $nodes = array($this->parser->getExpressionParser()->parseExpression()); + + if ($stream->test(\Twig_Token::NAME_TYPE, 'with')) { + $stream->next(); + + $nodes[] = $this->parser->getExpressionParser()->parseExpression(); + } + + $stream->expect(\Twig_Token::BLOCK_END_TYPE); + + return new HelperNode('javascripts', 'add', new \Twig_NodeList($nodes), false, $token->getLine(), $this->getTag()); + } + + public function getTag() + { + return 'javascripts'; + } +} diff --git a/src/Symfony/Framework/TwigBundle/TokenParser/JavascriptsTokenParser.php b/src/Symfony/Framework/TwigBundle/TokenParser/JavascriptsTokenParser.php new file mode 100644 index 0000000000..41a24862a6 --- /dev/null +++ b/src/Symfony/Framework/TwigBundle/TokenParser/JavascriptsTokenParser.php @@ -0,0 +1,38 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Wrapper for the javascripts helper output() method. + * + * {% javascripts %} + * + * @package Symfony + * @subpackage Framework_TwigBundle + * @author Fabien Potencier + */ +class JavascriptsTokenParser extends \Twig_TokenParser +{ + public function parse(\Twig_Token $token) + { + $this->parser->getStream()->expect(\Twig_Token::BLOCK_END_TYPE); + + return new HelperNode('javascripts', 'render', new \Twig_NodeList(array()), true, $token->getLine(), $this->getTag()); + } + + public function getTag() + { + return 'javascripts'; + } +} diff --git a/src/Symfony/Framework/TwigBundle/TokenParser/StylesheetTokenParser.php b/src/Symfony/Framework/TwigBundle/TokenParser/StylesheetTokenParser.php index 0af774a7a5..acdff35064 100644 --- a/src/Symfony/Framework/TwigBundle/TokenParser/StylesheetTokenParser.php +++ b/src/Symfony/Framework/TwigBundle/TokenParser/StylesheetTokenParser.php @@ -26,19 +26,19 @@ class StylesheetTokenParser extends \Twig_TokenParser { public function parse(\Twig_Token $token) { - $nodes = array(); + $stream = $this->parser->getStream(); - $lineno = $token->getLine(); - $nodes[] = $this->parser->getExpressionParser()->parseExpression(); + $nodes = array($this->parser->getExpressionParser()->parseExpression()); + + if ($stream->test(\Twig_Token::NAME_TYPE, 'with')) { + $stream->next(); - if ($this->parser->getStream()->test(\Twig_Token::NAME_TYPE, 'with')) { - $this->parser->getStream()->expect(\Twig_Token::NAME_TYPE, 'with'); $nodes[] = $this->parser->getExpressionParser()->parseExpression(); } - $this->parser->getStream()->expect(\Twig_Token::BLOCK_END_TYPE); + $stream->expect(\Twig_Token::BLOCK_END_TYPE); - return new HelperNode('stylesheets', 'add', new \Twig_NodeList($nodes), false, $lineno, $this->getTag()); + return new HelperNode('stylesheets', 'add', new \Twig_NodeList($nodes), false, $token->getLine(), $this->getTag()); } public function getTag()