Il est fréquent lors de l’intégration d’une charte graphique que l’on doive modifier les templates d’un composant ou d’un module. Auparavant la seule solution était de modifier directement les fichiers de l’extension, mais depuis la nouvelle version et son passage au MVC tout est différent !

Joomla intègre dorénavant le template override ou surcharge de template permettant de modifier tout ou partie des fichiers template d’un composant ou module tant qu’il utilise l’API de Joomla pour gérer son templating. Le plus de ce système est que les fichiers qui surcharge doivent se situer dans le répertoire des templates de site.

La structure des tmpl d’un composant de Joomla :

/components/COMPONENT_NAME/views/VIEW_NAME/tmpl/TMPL_NAME.php

La structure pour surcharger un template composant :

/templates/TEMPLATE_NAME/html/COMPONENT_NAME/VIEW_NAME/TMPL_NAME.php

La structure des tmpl d’un module de Joomla :

/modules/MODULE_NAME/tmpl/TMPL_NAME.php

La structure pour surcharger un template module :

/templates/TEMPLATE_NAME/html/MODULE_NAME/TMPL_NAME.php

Vous remarquerez que la hiérarchie de fichiers n’est pas la même, on va pas s’en plaindre c’est plus court à écrire :D

Maintenant passons a l’exemple ! Pour faire simple, l’exemple portera sur la surcharge des templates du composant de contenus et du module de login.

Structure de com_content :

/components/com_content/views/article/tmpl/default.php

Surcharge de com_content :

/templates/TEMPLATE_NAME/html/com_content/article/default.php

Structure de mod_login :

/modules/mod_login/tmpl/default.php

Surcharge de mod_login

/html/mod_login/default.php

Si vous compter distribuer un template de site qui contient des surcharges de template pensez à mettre à jour le fichier templateDetails.xml en y ajoutant les nouveaux fichiers dans des balises <files> ainsi que cette ligne:

html

NB: Même si un composant ou module est marqué natif 1.5 cela ne garantit pas que la surcharge de template fonctionnera, il semble par exemple que les templates SOBI2 ne puissent être surchargé ! En même temps il faut aimer se faire mal pour toucher au code de SOBI2 :?

3 réponses à “Surcharger les templates des composants et modules de Joomla! 1.5”
  1. Dakine dit :

    Question bete, c’est quoi « surcharger » un template ?

  2. Satevis dit :

    En programmation:

    la surcharge est le mécanisme qui remplace, pour une méthode donnée, le code programme du père par le code du fils. Vu de l’extérieur, le programmeur a l’impression d’effectuer toujours la même action (puisque le nom d’appel est le même).

    En pratique ca permet de ne pas avoir a modifier les templates fournit par Joomla et donc de ne pas avoir de conflit au moment des mise a jours par exemple.

  3.  
Répondre