Jump to content

Les hooks custom à la désinstallation d'un module


Recommended Posts

Bonjour,

J’ai une question un peu naïve je suppose

Je sais comment créer un hook personnalisé dans un module Prestashop. Cependant, lorsque ce hook est, par exemple, un hook d’affichage qui doit être inséré dans un fichier de template précis (prenons product.tpl), il faut généralement modifier ce fichier dans le thème enfant pour y ajouter le hook en question en smarty.

Seulement voilà, si le module est désinstallé, et que cette action est effectuée par une autre personne (comme un prestataire externe), comment cette personne peut-elle savoir qu’un hook a été ajouté dans product.tpl ? En toute logique, pour garder un code propre, il faudrait également retirer cette modification du fichier template comme le hook ne sert plus ( et le réajouter si on le réinstalle bien sûr).

Comment procédez-vous dans ce cas ?

Est-ce que vous implémentez une méthode d’ajout et de suppression automatique à l’installation et à la désinstallation du module, avec un système de sauvegarde et restauration du fichier modifié ?

Est-ce que vous affichez un avertissement lorsque l’on clique sur le bouton "Désinstaller", pour signaler que des modifications ont été apportées au thème ?

Merci pour votre lecture et vos éventuelles réponses
Bonne journée 

Link to comment
Share on other sites

Il est préférable de créer une fonction d'install/desinstall de la ligne comportant le hook.

Il suffit de chercher l'élément précédent ou suivant l'endroit où l'on veut ajouter la ligne dans le tpl (un preg_replace fait l'affaire).

Problème possible: certains thèmes ne comporteront pas l'élément concerné, dans ce cas il faut ajouter un contrôle qui va chercher dans le tpl si la ligne du hook existe (a été créée) et si non, mettre un message d'alerte dans la config du module en expliquant comment (et où) ajouter la ligne.

Link to comment
Share on other sites

Est-ce que c'est quelque chose dont vous pensez et que vous faites du coup ?
Le prognostique m'intéresse comme j'ai jamais vu aucun module le faire

En tout cas merci pour votre réponse, je vais coder en pensant à cette solution

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...