Prestashop 1.7 : Correction bug traduction dans controller admin d’un module
La dernière version de Prestashop 1.7 apporte de nombreux changements ( j’ y reviendrais sans doute plus longuement dans un article à venir ), et notamment dans la gestion des traductions dans l’administration.
Celle-ci se base à présent sur Symfony, tout en gardant quand même une rétrocompatibilité (théorique ) avec l’ancien système.
Les dernières recommandations ( à date ) de l’équipe Prestashop étaient de conserver l’ancien système de traduction pour les modules.
Dans le cadre de l’adaptation de l’un de mes module j’ai cependant fait face à la problématique suivante , impossible d’accéder à mon controller Admin, et affichage de la belle page d’erreur suivante :
Après analyse, du code erreur :
FatalErrorException in AdminController.php line 2735:
il s’avère que la fonction de traduction des modules ne marchait pas correctement dans mon cas et j’ai du surcharger cette fonction dans mon controller.
Voici donc le code qui a permis de faire fonctionner le module correctement
/** * Surcharge de la fonction de traduction sur PS 1.7 et supérieur. * La fonction globale ne fonctionne pas * @param type $string * @param type $class * @param type $addslashes * @param type $htmlentities * @return type */ protected function l($string, $class = null, $addslashes = false, $htmlentities = true) { if ( _PS_VERSION_ >= '1.7') { return Context::getContext()->getTranslator()->trans($string); } else { return parent::l($string, $class, $addslashes, $htmlentities); } } |
Si vous avez aussi rencontré ce problème et trouvé une autre solution n’hésitez pas à la partager 😉…
Prestashop 1.7 : Correction bug traduction dans controller admin d’un module Lire la suite »