Bonjour,
Je commence à regarder comment fonctionne Symfony2 (j'ai déjà travaillé avec Symfony1) et je n'arrive pas à trouver la réponse à la question suivante:
Dans Symfony1, pour ajouter une feuille CSS ou un fichier Javascript, on avait les helper de type use_...
Ca permettait par exemple de placer le helper dans la vue d'un composant et ainsi, lorsqu'une page devait inclure le composant, le composant lui-même ajoutait ses ressources à la pile qui était donc rendue globalement via les include_stylsheets() dans la layout de base.
Ex:
Code layout.php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <!doctype html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <?php include_title() ?> <?php include_stylesheets() ?> </head> <body> <?php include_component('base','example') ?> <?php include_javascripts(); /* rend les balises <script> */ ?> </body> </html>
Code .../module/base/templates/_example.php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php use_javascript("lien/vers/mon/fichier.js"); // ajoute le fichier à la pile ?> <div id="mondiv"></div> <!-- mon JS travail sur cet élément par exemple -->
La question est donc: comment reproduire ce comportement avec Symfony2 ?
Si j'ai:
Code layout.php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <!doctype html> <html lang="{{ 'fr' }}"> {% block body %} <head> <title>{% block title %}Test{% endblock %}</title> {% block stylesheets %} {% stylesheets filter='cssrewrite' 'bundles/monbundle/css/fichier.css' %} <link rel="stylesheet" href="{{ asset_url }}" type="text/css" /> {% endstylesheets %} {% endblock %} </head> <body> {{ render(controller("monbundle:base:example")) }} {% block javascripts %} {% javascripts 'bundles/monbundle/jquery.js' %} <script type="text/javascript" src="{{ asset_url }}"></script> {% endjavascripts %} {% endblock %} </body> {% endblock %} </html>
Comment faire en sorte que si j'inclue mon action monbundle:base:example, les CSS et JS dont dépend l'action soit ajoutés au {% block javascripts %} ?
Partager