Je commence cet article par la définition du terme héritage, car dans la Joomlasphère, ce n'est pas ce terme "normalisé" qui est utilisé mais on parle plutôt de substitution. On utilise aussi le terme overloading, voire redéfinition. Il est possible d'entendre d'autres termes, tous sont issus de terminologies propres à différents langages de programmation mais le rôle est exactement le même.
Pour revenir à la question du pourquoi, le rôle de la surcharge et de pouvoir modifier certains fichiers de vos modules, templates ou encore plugins, tout en gardant l'original. Ainsi, si vous fabriquez un problème ou un bug relativement complexe au cours de vos modifications du code, en supprimant totalement le dossier qui a été créé, Joomla reprendra celui d'origine pour fonctionner correctement. C'est le rôle de la surcharge.
Comment faire une surcharge de vos plugins ?
Je vais commencer par expliquer la surcharge d'un plugin. En effet, pour tout le reste, Joomla propose une interface pour faire une surcharge.
![firefox o38YZu9bFC](/images/images_tutos/firefox_o38YZu9bFC.jpg)
Toutefois, pour un plugin, rien n'est préconfiguré dans la console d'administration de Joomla. Ainsi, pour overrider un plugin, vous devez vous rendre dans le répertoire de votre plugin sur le serveur, et récupérer les fichiers à surcharger, et effectuer votre surcharge à la main en copiant l'intégralité du dossier de votre plugin se trouvant généralement dans le dossier plugin ->(sous dossier du type)->(dossier de votre plugin) dans votre dossier template->(dossier de votre plugin). Voilà, votre surcharge est faite, et c'est cet ensemble de fichiers qu'il faudra que vous modifiez pour surcharger votre plugin.
L'interface de Joomla propose de faire des substitutions, toutefois, nous ne pouvons substituer que des choses qui sont dans le core de Joomla
Comment faire une surcharge de module ou de composants ?
Une interface graphique se trouve dans le menu extension -> templates -> templates, rentrez dans la tempalte que vous utilisez sur votre site en cliquant sur son nom, sélectionnez le module ou le composant que vous souhaitez surcharger. Ce composant est désormais surcharg, de ce fait, rendez-vous dans le dossier de la template sur votre serveur, vous trouverez le nom de l'élément que vous venez de surcharger dans votre dossier de votre template.
![explorer CovcToNixM](/images/images_tutos/explorer_CovcToNixM.jpg)
Je reprécise encore une fois, c'est bien dans les fichiers qui viennent d'être créés par la manipulation que je viens de décrire qu'il faut modifier pour apporter vos propres spécifications dans vos éléments à surcharger. En aucun cas il faut modifier les éléments de départ car en cas de souci, vous ne pourriez pas "revenir en arrière", (sauf éventuellement à avoir effectué avec un logiciel externe de versionning un "commit" comme tout bon développeur).