Skip to content

Commit

Permalink
General update
Browse files Browse the repository at this point in the history
Update syntax to add and display assets:
  Before:
    {% javascript 'js/jquery/jquery.js' %}
    {% javascript 'js/main.js' %}
    {% stylesheet 'css/main.css' %}
    {% stylesheet 'css/form.css' %}

    {% javascripts %}
    {% stylesheets %}

  After:
    {{ javascript(['js/jquery/jquery.js', 'js/main.js']) }}
    {{ stylesheet(['css/main.css', 'css/form.css']) }}

    {{ javascripts }}
    {{ stylesheets }}
  • Loading branch information
francisbesset committed May 8, 2011
1 parent 39ffe5d commit 182c7eb
Show file tree
Hide file tree
Showing 12 changed files with 38 additions and 406 deletions.
20 changes: 4 additions & 16 deletions README.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -98,20 +98,8 @@ The files merged can be minify.

### Twig

{% javascript 'js/jquery/jquery.js' %}
{% javascript 'js/main.js' %}
{% stylesheet 'css/main.css' %}
{% stylesheet 'css/form.css' %}
{{ javascript(['js/jquery/jquery.js', 'js/main.js'] }}
{{ stylesheet(['css/main.css', 'css/form.css') }}

{% javascripts %}
{% stylesheets %}

### PHP

<?php $view['javascripts']->add('js/jquery/jquery.js') ?>
<?php $view['javascripts']->add('js/main.js') ?>
<?php $view['stylesheets']->add('css/main.css') ?>
<?php $view['stylesheets']->add('css/form.css') ?>

<?php echo $view['javascripts'] ?>
<?php echo $view['stylesheets'] ?>
{{ javascripts }}
{{ stylesheets }}
6 changes: 4 additions & 2 deletions Templating/Helper/JavascriptsHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,11 @@ public function __construct(AssetsHelper $assetHelper, Minifier $minifier, array
* @param string $javascript A javascript file path
* @param array $attributes An array of attributes
*/
public function add($javascript, $attributes = array())
public function add(array $javascripts, $attributes = array())
{
$this->javascripts[$javascript] = $attributes;
foreach ($javascripts as $javascript) {
$this->javascripts[$javascript] = $attributes;
}
}

/**
Expand Down
6 changes: 4 additions & 2 deletions Templating/Helper/StylesheetsHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,11 @@ public function __construct(AssetsHelper $assetHelper, MinifierInterface $minifi
* @param string $stylesheet A stylesheet file path
* @param array $attributes An array of attributes
*/
public function add($stylesheet, $attributes = array())
public function add($stylesheets, $attributes = array())
{
$this->stylesheets[$stylesheet] = $attributes;
foreach ($stylesheets as $stylesheet) {
$this->stylesheets[$stylesheet] = $attributes;
}
}

/**
Expand Down
46 changes: 26 additions & 20 deletions Twig/Extension/AssetsExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,36 +30,42 @@ public function __construct(ContainerInterface $container)
$this->container = $container;
}

public function getContainer()
public function getFunctions()
{
return $this->container;
return array(
'stylesheet' => new \Twig_Function_Method($this, 'addStylesheet'),
'stylesheets' => new \Twig_Function_Method($this, 'renderStylesheet', array('is_safe' => array('html'))),
'javascript' => new \Twig_Function_Method($this, 'addJavascript'),
'javascripts' => new \Twig_Function_Method($this, 'renderJavascript', array('is_safe' => array('html'))),
);
}

public function getTemplating()
public function addStylesheet($stylesheets)
{
return $this->container->get('templating.engine');
if (!is_array($stylesheets)) {
$stylesheets = array($stylesheets);
}

$this->container->get('templating.helper.stylesheets')->add($stylesheets);
}

/**
* Returns the token parser instance to add to the existing list.
*
* @return array An array of Twig_TokenParser instances
*/
public function getTokenParsers()
public function renderStylesheet()
{
return array(
// {% javascript 'bundles/blog/js/blog.js' %}
new JavascriptTokenParser(),
return $this->container->get('templating.helper.stylesheets')->render();
}

// {% javascripts %}
new JavascriptsTokenParser(),
public function addJavascript($javascripts)
{
if (!is_array($javascripts)) {
$javascripts = array($javascripts);
}

// {% stylesheet 'bundles/blog/css/blog.css' with { 'media': 'screen' } %}
new StylesheetTokenParser(),
$this->container->get('templating.helper.javascripts')->add($javascripts);
}

// {% stylesheets %}
new StylesheetsTokenParser(),
);
public function renderJavascript()
{
return $this->container->get('templating.helper.javascripts')->render();
}

/**
Expand Down
42 changes: 0 additions & 42 deletions Twig/Node/JavascriptNode.php

This file was deleted.

38 changes: 0 additions & 38 deletions Twig/Node/JavascriptsNode.php

This file was deleted.

42 changes: 0 additions & 42 deletions Twig/Node/StylesheetNode.php

This file was deleted.

38 changes: 0 additions & 38 deletions Twig/Node/StylesheetsNode.php

This file was deleted.

57 changes: 0 additions & 57 deletions Twig/TokenParser/JavascriptTokenParser.php

This file was deleted.

46 changes: 0 additions & 46 deletions Twig/TokenParser/JavascriptsTokenParser.php

This file was deleted.

Loading

0 comments on commit 182c7eb

Please sign in to comment.