| Re: Module Contact | Titre du sujet : Re: Module Contact par JJDai sur 28/09/2025 11:07:13
En fait c'est le même problème que j'ai déjà signalé mais qui qui n'a pas été compris. La variable $helper est la même pour la plus part des modules notamment ceux créés avec moduleBuilder (très bon module que j'utilise d'ailleurs). Hors cette variable est propre au module, et modifiée chaque fois qu'un autre module est appelé directement ou indirectement (par un bloc par exemple). La conséquence entre le moment ou $helper est initialisé et celui ou elle est utilisé si un autre module l'a utilisée, elle ne fait plus référence au bon module.
en clair entre le moment ou $helper est instencié dans le fichier header.php :
$hHelper = Helper::getInstance();
et le moment ou elle est utilisée dans "index.php ligne 35"
$recipientHandler = $helper->getHandler('Recipient');
un autre module a pris la main et a ré-instancier $helper avec ses propres paramètres. Du coup le module ne sais plus ou il en est. Pour régler ce problème deux solutions : - instancier $helper chaque fois qu'on en a besoin juste avant de l'utiliser - renommer $helper en le préfixant par le nom du module par exemple.
Perso j'opte pour la 2eme solution systématiquement dans mes modules. J'ai remplacé dans ton module "$helper" par "jscontactHelper", et problème réglé, plus d'erreur. Je te conseil d'en faire autant.
L'inconvénient diront certains est qu'il y a autant de variables $helper instanciées avec des noms différents que de module sur le site, mais ce ne sont que des pointeurs.
JJDai
|
|