Les modifications d’un module écrasées à chaque mise à jour
Un module acheté fait presque ce que vous voulez. Quelqu’un a ouvert son fichier, changé trois lignes, et tout allait bien — jusqu’à la mise à jour qui a remis les fichiers d’origine. Ce n’est pas un accident : c’est le fonctionnement normal d’une mise à jour, et il existe des façons de s’en protéger.
Pourquoi la modification directe ne survit jamais
Une mise à jour remplace les fichiers du module par ceux de la nouvelle version. Elle ne compare pas, elle ne fusionne pas, elle écrase. Tout ce qui a été écrit à l’intérieur du dossier du module disparaît, sans avertissement et sans trace. Le symptôme est reconnaissable : une fonction sur mesure qui disparaît deux fois par an, toujours après une opération de maintenance, et que personne ne relie à la mise à jour parce que l’intervalle est long.
Le second effet est plus vicieux : tant que la modification tient, elle bloque de fait les mises à jour. Comme personne ne veut la reperdre, le module reste sur une vieille version, accumule les incompatibilités et finit par poser un problème bien plus large que celui qu’on avait voulu régler.
Quatre façons d’adapter un module sans le modifier
-
Passer par les points d’extension prévus
Beaucoup de modules déclarent leurs propres points d’accroche. Un module tiers écrit correctement se laisse compléter de l’extérieur, sans qu’aucune de ses lignes ne soit touchée.
-
Surcharger le gabarit depuis le thème
Sur PrestaShop, un thème peut fournir sa propre version du gabarit d’un module. Sur WooCommerce, le mécanisme équivalent passe par un dossier dédié dans le thème enfant. La modification vit alors dans le thème, pas dans le module.
-
Écrire un petit module complémentaire
Un module dédié qui s’accroche après le module d’origine et modifie son résultat. C’est la solution la plus propre quand la modification touche un comportement et pas seulement un affichage.
-
Utiliser le système de traduction
Quand la modification ne concerne qu’un texte, elle passe par le système de traduction de la plateforme, qui est prévu pour cela et qui survit aux mises à jour.
Quand le module ne laisse aucune prise
Certains modules ne déclarent aucun point d’extension et construisent leur affichage sans passer par un gabarit surchargeable. Dans ce cas, il n’y a pas de solution élégante, et je préfère l’annoncer plutôt que de laisser croire l’inverse. Restent trois options, dans cet ordre de préférence.
Demander l’ajout d’un point d’extension à l’éditeur du module : c’est gratuit, c’est parfois accepté, et c’est la seule solution qui règle le problème définitivement. Sinon, dupliquer le module sous un autre nom et l’assumer comme un module à vous, en sachant que vous renoncez à ses mises à jour et que vous en devenez le mainteneur. Enfin, conserver la modification à part sous forme de correctif documenté, à réappliquer après chaque mise à jour — c’est la moins bonne, mais au moins la modification est écrite quelque part et ne se perd pas.
Ce que je ne fais pas : modifier un module et ne rien dire. Une modification non documentée dans un code que quelqu’un mettra à jour dans six mois est un piège pour la personne suivante, y compris quand cette personne, c’est moi.
Pages liées
-
Créer un thème enfant WordPress
Le mécanisme qui permet de modifier un affichage sans toucher au thème d’origine.
-
Override ou module sur PrestaShop
Les deux manières d’altérer un comportement natif, et laquelle choisir.
-
Maintenir un module sur mesure dans le temps
Comment un module écrit pour vous se conçoit pour rester modifiable.
-
Un module cassé par sa propre mise à jour
L’autre face du problème : la mise à jour qui casse au lieu d’écraser.
Décrivez votre besoin en 1 minute
Quelques questions ciblées pour que je vous réponde avec une estimation, pas avec un questionnaire de plus.