DevNet Posted March 23, 2015 Share Posted March 23, 2015 (edited) Salut à tous, J'ai un petit soucis que je n'arrive pas à débug. Un phénomène propre à la dernière version PrestaShop 1.6.0.14 . Lorseque j'utilise le hookDisplayNav avec rien de plus qu'une sortie smarty tpl de base depuis un module (pour ajouter un menu par exemple), après le switch de la langue sur le front, la page me renvoi une erreur l'assign du smarty : juste après au moment du parse hook dans le header.tpl du : <nav>{hook h="displayNav"}</nav> Comme ceci : <nav><br /> <b>Fatal error</b>: Call to a member function assign() on a non-object in <b>/home/guillaume/.../classes/module/Module.php</b> on line <b>2090</b><br /> Avec une sortie bisarre dans le header : <link rel="stylesheet" href="/themes/default-bootstrap/css/modules/blocktopmenu/css/superfish-modified.css" type="text/css" media="all" /> js_def <script type="text/javascript" src="/js/jquery/jquery-1.11.0.min.js"></script> En lieu et place des sorties habituelles : <link rel="stylesheet" href="/themes/default-bootstrap/css/modules/blocktopmenu/css/superfish-modified.css" type="text/css" media="all" /> <script type="text/javascript"> var CUSTOMIZE_TEXTFIELD = 1; var FancyboxI18nClose = 'Close'; ... var usingSecureMode = false; var wishlistProductsIds = false; </script> <script type="text/javascript" src="/js/jquery/jquery-1.11.0.min.js"></script> Ceci se produit à chaque fois qu'on souhaite changer la langue, via depuis le module de langue par exemple. Une fois la langue en cookie, ceci ne se produit plus. Je n'arrive pas à trouver pourquoi, sachant que ça fonctionne très bien sur PS < 1.6.0.11 Merci pour ceux qui ont une avis sur le sujet. A+ Edited March 23, 2015 by DevNet (see edit history) Link to comment Share on other sites More sharing options...
DevNet Posted March 23, 2015 Author Share Posted March 23, 2015 (edited) A noter aussi que ce phénomène ne se produit que sur FireFox et pas sur Chrome. Comme s'il s'agissait d'un relation direct avec un cache des données en cookie. Au regard du traitement output du js_def normalement, j'arrive sur une méthode de la classe ./classes/controller/Controller.php, ligne 430 : protected function smartyOutputContent($content) { $this->context->cookie->write(); $js_tag = 'js_def'; $this->context->smarty->assign($js_tag, $js_tag); ... Ce qui est bizarre, c'est que cette méthode est pourtant inchangée depuis la 1.6.0.11 . Mais il s'agit bien d'une écriture de cookie en amont, et d'une sortie plutôt surprenante en mode verbose : 'js_def' Edited March 23, 2015 by DevNet (see edit history) Link to comment Share on other sites More sharing options...
DevNet Posted March 23, 2015 Author Share Posted March 23, 2015 Ca ne m'étonne pas que j'arrive pas à faire le debug ... pfffff Merci firefox qui avait fait une maj... La faute effectivement au cookie ! Un RAZ et ça repars. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now