Jump to content

Fatal error: Call to a member function assign() on a non-object


Recommended Posts

Bonjour a tous!

j'ai reussi a faire une grosse erreur en bidouillant des modules.
Voici l'erreur :
Fatal error: Call to a member function assign() on a non-object in prestashop\modules\blockwishlist\blockwishlist.php on line 219.

Elle intervient en fait entre2 modules : le blockwishlist (de base dans l'install prestashop) et le Filter Search 2.0 Community Edition.
J'ai du modifier un peu le module de recherche pour y mettre le HOOK_PRODUCT_ACTION. mon vrai but était que sur la liste de produits, on puisse avoir directement le bouton 'ajouter a ma liste'. j'ai donc ajouté le tag dans le tpl

{if $HOOK_PRODUCT_ACTIONS}
{$HOOK_PRODUCT_ACTIONS} cuicui
{/if}


et de la meme maniere j'ai rajouté ca

'HOOK_PRODUCT_ACTIONS' => Module::hookExec('productActions')

dans mon smarty->assign (enfin l'équivalent, parce que le module de recherche bosse avec un coremanager, donc il y a plein de fonctions qui sont rééditées).

enfin bon, du coup quand je met le hook en action, j'ai cette grosse erreur, et j'ai pas le fonctionnement voulu...

quelqu'un pourrait m'aider? :D

d'avance merci.
pour note, c'est un prestashop 1.3.6 qui tourne (je peux pas encore passer au 1.4, les modules sont pas compatibles...)

Link to comment
Share on other sites

Bonjour,

Dans le module que tu as modifié, tu as certainement ajouté une fonction qui doit s'appeler hookProductActions.
Dans cette fonction, il faut bien vérifier que cette ligne est présente : global $smarty;

Sans cette ligne de code, tu n'as pas accès à la variable Smarty car celle-ci n'est pas déclarée dans le scope de ta fonction mais dans l'espace des variables globales. Grâce à cette ligne, la déclaration globale de $smarty sera "incluse" dans ta fonction et la variable sera ainsi utilisable à l'intèrieur de celle-ci.

Je me trompe peut-être mais à mon avis le problème viens de là.

Link to comment
Share on other sites

Alors il y a vraiment un gros problème quelque part...

Juste pour essayer d'identifier la source de l'erreur, peux-tu essayer ces quelques manipulations/modifications :
- Désactiver le module de recherche (Filter Search 2.0 Community Edition) et regarder si tu obtiens toujours cette erreur
- Dans la méthode BlockWishList::hookProductActions($params), peux-tu ajouter var_dump($smarty) et poster ce que tu observes dans les deux cas, sachant que le premier cas est celui où tes 2 modules sont actifs et le second cas est celui où tu as désactivé le module de recherche.

Comme tu le dis dans ton premier message, tu as l'impression que cette erreur provient d'un conflit entre ces modules, nous allons donc voir, avec ces tests, si cette hypothèse est vraie.

Link to comment
Share on other sites

en fait, le fonctionnement du hook est tout a fait fonctionnel (dans un page produit, par exemple, aucun problème.)

c'est quand j'essaye d’insérer le hook dans un module que ca plante.

globalement l’idée originale, c’était de passer le bouton 'ajouter a ma liste' (module blockwhishlist de prestashop natif) directement sur la liste de produits.
quand on désactive le module de recherche, aucun problème, mon affichage est clean.
dès qu'on l'active -> aie!

je teste tes modifs, et je te tiens au courant ;-)

merci de te pencher sur mon problème!

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...