Je cherche à savoir s'il existe un moyen propre d'ajouter JS et CSS à partir des modèles inclus.
Ainsi, par exemple, si layout.html.twig a:
{% include 'GenericBundle:Generic:page.html.twig' with {'data': data} %}
...
{% block javascript %}
{% javascripts
'@GenericBundle/Resources/public/js/app/jquery/jquery.min.js'
'@GenericBundle/Resources/public/js/lib/bootstrap/bootstrap.min.js'
%}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock %}
Et dans la page générique du bundle, j'aimerais inclure un peu plus de Javascript mais l'ajouter au bloc Javascript établi pour respecter les meilleures pratiques HTML et JS.
Existe-t-il un moyen propre de procéder? J'utilise Symfony2, et je pourrais probablement trouver une solution en utilisant Singletons et autres, mais je préfère une méthode plus propre s'il y en a une de disponible.
Je sais que je suis un peu en retard à la fête, mais avec Twig 1.2, vous pouvez utiliser la balise se et la fonction block :
GenericBundle: Generic: page.html.twig
{% block javascripts %}
<script src="..."></script>
{% endblock %}
{% block included_content %}
Bar
{% endblock %}
layout.html.twig
{% use 'GenericBundle:Generic:page.html.twig' with javascripts as page_javascripts %}
{% block javascript %}
{% javascripts
'@GenericBundle/Resources/public/js/app/jquery/jquery.min.js'
'@GenericBundle/Resources/public/js/lib/bootstrap/bootstrap.min.js'
%}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
{{ block('page_javascript') }} // Don't forget the 'braces'
{% endblock %}
...
{{ block('included_content') }} // Don't forget the 'braces'