Où déclarer le fichier pour qu’il soit chargé ?
Y’a 3 solutions à ma connaissance :
1. modules/mon_module/lib/blocks/mon_BlockAction.class.php
mais pour ça il faudra te tourner vers un dev (qui te dire probablement que c’est un mauvais choix car tu chargeras ton JS comme un bourrin malpropre à chaque fois que le bloc sera utilisé, peu importe le thème)
2. themes/mon_theme/install.xml
dans :
1 2 |
<pagetemplate byCodename="responsive/tplNosidebar" doctype="HTML-5" js="themes.mon_theme.js.mon_js" |
Là, tu peux charger ton JS pour un gabarit de page donné; il sera chargé pour toutes les pages de ton thème qui utilisent ce gabarit
3. dans le template de bloc dans lequel tu souhaites l’appeler (si il n’est utilisé que par ce seul template)
- modules/mon_module_spé/templates/mon_template.all.all.html
- ou override/mon_module/templates/mon_template.all.all.html
- ou themes/mon_theme/modules/mon_module/templates/mon_template.all.all.html
Préfixe head
: pour ajouter ton JS au fichier page.js
chargé en en-tête de document et qui regroupe et minifie l’ensemble des JS appelés avec ce préfixe dans les templates de blocs présents dans la page.
1 |
<script change:javascript="head 'modules.mon_module.lib.js.mon_js'"></script> |
Préfixe src
: pour ajouter ton JS en l’état de ta source et directement dans le code HMTL de ton template. Le JS sera visible à l’endroit où tu le déclares dans le DOM.
1 |
<script change:javascript="src 'modules.mon_module.lib.js.mon_js'"></script> |
C’est selon l’utilisation que tu veux faire de ce JS et ça te laisse également le choix de l’emplacement dans lequel tu veux placer ton fichier JS dans l’arbo (en fonction de l’utilisation qui en sera faite). Essaye d’éviter la solution 1, c’est pas flexible.
Et en fonction de ça, tu peux stocker ton fichier JS dans le dossier :
- modules/mon_module/lib/js
- override/modules/mon_module/lib/js
- themes/mon_theme/js