Jump to content

Impossible d'assigner la variable $errors à smarty depuis un hook


Recommended Posts

Bonjour,

 

Je souhaite pouvoir afficher des erreurs sur la page du choix des transporteurs. Dans le thème par défaut, j'ai remarqué qu'il y avait un template errors.tpl qui est inclut dans la page du choix du transporteur. Ce template itère, si existante, une variable $errors pour afficher les erreurs une par une. Dans mon hook, je procède donc comme suit :

<?php

/// ...

public function hookDisplayBeforeCarrier($params)
{
    // ...

    $errors = array();
    $errors[] = Tools::displayError("Something went wrong");

    $this->context->smarty->assign(array('errors' => $errors));
    
    // ...
}

Cependant, aucune erreur ne s'affiche. Lorsque je fais un print_r dans errors.tpl, je constate que $errors est vide. Le problème se situe donc au niveau de $errors qui est mal rempli. Soit la variable n'est jamais remplie, soit elle est écrasée, mais je n'arrive pas à savoir quelle option est la bonne, ni comment faire pour le savoir.

 

Merci par avance !

Link to comment
Share on other sites

Vous n'êtes pas dans le bon niveau smarty là^^

 

Vous affectez une variable $error au niveau du hook de votre module, pas au niveau du controleur supérieur (FrontController) donc le error.tpl ne la "voit" pas

Par contre, le tpl de votre module, s'il y en a un, la verra :-)

Link to comment
Share on other sites

Bonjour Eolia,

 

Y a-t-il une façon de faire ce que je souhaite sans modifier le contrôleur de prestashop ? Comme hériter le contrôleur pour modifier une méthode par exemple ? Quelles solutions s'offrent à moi ?

 

Merci :)

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