Shonen Posted October 19, 2015 Share Posted October 19, 2015 (edited) Bonjour à tous, J'ai migré un site marchand sous prestashop version 1.4.9 vers la version 1.6.1.1 J'ai mis un peu de temps mais avec le module 1-Click Upgrade j'ai fait un grand pas en avant ! Mais comme souligné sur pas mal de forum, ce module ne se suffit pas si on souhaite migrer avec son thème déjà fait main. Voici donc mes soucis après la migration, ainsi que les étapes que j'ai suivi : 1.4 : Copie du presta en local (wamp), modification des config pour pouvoir accéder au BO (bdd, chemin du presta..) Modification des images dans préférences => images. Nouvelle arborescence de dossier. Téléchargement du module 1-Click Upgrade et configuration => pas de sauvegarde, choix du thème déjà existant (et non pas thème par défaut), activation des modules non-officiel, version majeure 1.6.1 Lancement.. Ainsi je me retrouve avec mon presta 1.6.1, dont le BO fonctionne bien (mis à part la lenteur de TOUT le backoffice, et encore plus des boutons Enregistrer dans l'arborescence produit ~30s, mais cela est déjà souligné partout et je suppose qu'il faut attendre une nouvelle mis à jour de la part de prestashop). Néanmoins, mon thème a quelque peu explosé Avec le mode dev activé, j'ai d'abord un message d'erreur assez gênant sur chaque page. Strict standards: Declaration of myModule::_clearCache() should be compatible with ModuleCore::_clearCache($template, $cache_id = NULL, $compile_id = NULL) in C:\wamp\www\mySite\modules\myModule\myModule.php on line 396 Je me doute bien qu'il faut que ma fonction clearCache se rapproche de la fonction Core, mais je ne vois pas comment. Voici le code : protected function _clearCache() { $this->_clearCache(NULL, 'myModule'); Tools::restoreCacheSettings(); } J'ai un peu tout essayé : laisser clearCache() sans paramètres, mettre uniquement le param du template etc, mais rien n'y fait. Qu'est-ce qui a changé depuis la 1.4.9 ? Que dois-je modifier ? Ensuite, un plus gros problème puisque cette fois c'est une fatal error, le module blockcategories ne fonctionne plus. Il a été modifié dans le thème maison, mais même si je récupère le code du thème par défaut ça ne fonctionne toujours pas ! Notice: Undefined index: blockCategTree in C:\wamp\www\mySite\tools\smarty\sysplugins\smarty_internal_templatebase.php(157) : eval()'d code on line 42 Evidemment c'est le smarty qui me met l'erreur, mais c'est bien le code du fichier blockcategories.tpl qui est mis en cause. Sauf que dans blockcategories.php j'ai bien la déclaration de blockCategTree $blockCategTree = $this->getTree($resultParents, $resultIds, $maxdepth, ($category ? $category->id : null)); $this->smarty->assign('blockCategTree', $blockCategTree); $blockCategTree = $this->getTree($resultParents, $resultIds, Configuration::get('BLOCK_CATEG_MAX_DEPTH')); unset($resultParents, $resultIds); $isDhtml = (Configuration::get('BLOCK_CATEG_DHTML') == 1 ? true : false); $id_category = (int)Tools::getValue('id_category'); $id_product = (int)Tools::getValue('id_product'); $this->smarty->assign('blockCategTree', $blockCategTree); Du coup je suis un peu bloqué... Pourquoi ne reconnait-il pas blockCategTree ? Voici les seuls appel que j'en fait dans le tpl {foreach from=$blockCategTree.children item=child name=blockCategTree} {if $smarty.foreach.blockCategTree.last} Comme dans le thème par défaut quoi. Si quelqu'un a une solution, ça me serait utile Merci bien Edited October 19, 2015 by Shonen (see edit history) Link to comment Share on other sites More sharing options...
Shonen Posted October 20, 2015 Author Share Posted October 20, 2015 Petite nouveauté : Mon module blockcategories est ancré en topHead. Sauf qu'il est normalement impossible de l'ancrer ici, et je ne sais pas comment il a fait pour être ancré. Lorsque je met le module en position Left, là il fonctionne. Sauf que je le veux en haut comme avant. Je ne vois pas trop comment faire pour cibler le problème. Link to comment Share on other sites More sharing options...
Johann Posted October 20, 2015 Share Posted October 20, 2015 Je pense que ton pb de smarty vient du fait que dans PS 1.4.x c'était la v2 de Smarty qui était utilisée, et dans PS 1.6, c'est la version 3. Du coup, il y a du code qui n'est plus tout à fait compatible.De plus, c'est un peu dangereux de "simplement" vouloir re-rendre ton thème PS 1.4 opérationnel sur PS 1.6, car il te manquera des pages relatives aux nouvelles fonctionnalités (commandes groupées, livraisons partielles, etc...) Link to comment Share on other sites More sharing options...
Shonen Posted October 20, 2015 Author Share Posted October 20, 2015 (edited) Je pense que ton pb de smarty vient du fait que dans PS 1.4.x c'était la v2 de Smarty qui était utilisée, et dans PS 1.6, c'est la version 3. Du coup, il y a du code qui n'est plus tout à fait compatible. De plus, c'est un peu dangereux de "simplement" vouloir re-rendre ton thème PS 1.4 opérationnel sur PS 1.6, car il te manquera des pages relatives aux nouvelles fonctionnalités (commandes groupées, livraisons partielles, etc...) Merci de ta réponse Johann, A partir du moment où je ne fais pas appel aux commandes groupées ou livraisons partielles je ne devrais pas avoir de problème justement, si ? Grace au module 1-Click Upgrade le code smarty a logiquement dû être upgradé lui aussi. Après sûrement que le développement n'est plus bon, mais je n'arrive pas à savoir dans quel fichier je dois aller taper. J'ai mes fichiers modules/blockcategories/* qui fonctionnent, et mes fichiers thème/monthème/modules/blockcategories qui fonctionnent eux aussi mais uniquement en position LeftColumn. La position Top (qui a été assigné par je ne sais quel miracle, j'ai intérêt à ne pas le dégreffer d'ailleurs), ne fonctionne pas et m'affiche cette erreur. Peut être n'arrive t'il pas à récupérer le .php, je ne sais pas. Quel fichier peut gérer les Hook que je puisse vérifier s'il manque un include ou autre ? Edited October 20, 2015 by Shonen (see edit history) Link to comment Share on other sites More sharing options...
Johann Posted October 22, 2015 Share Posted October 22, 2015 Oui, Smarty est passé en V3 sur ton site, mais le code Smarty de ton template PS 1.4 non As tu essayé en activant le thème par défaut ? Link to comment Share on other sites More sharing options...
Shonen Posted October 22, 2015 Author Share Posted October 22, 2015 (edited) Oui j'ai essayé avec le thème par défaut et ça ne fonctionnait toujours pas. La position avait l'air de jouer un jeu important, et j'ai donc fait beaucoup de test (je me suis pas tourné les pouces ) Dans le fichier blockcategories.php, j'ai la fonction public function hookLeftColumn($params) Dans laquelle il y'avait ma variable que je n'arrive pas à accéder. Par contre, j'avais aussi une fonction public function hookHeader() qui elle n'avait pas grand chose, à vrai dire presque rien. Je l'ai donc transformée ainsi. public function hookHeader($params) { $this->context->controller->addJS(_THEME_JS_DIR_.'tools/treeManagement.js'); $this->context->controller->addCSS(($this->_path).'blockcategories.css', 'all'); return $this->hookLeftColumn($params); } Du coup le menu est apparu avec tous les paramètres. Ensuite j'ai triché le css pour qu'il s'affiche au bon endroit etc... Du coup je n'ai aucune idée de comment le module apparaissait avant puisque même en dés-ancrant le module de toutes les positions il était toujours là... Certes ça ne corrige pas mon problème initial, mais ça le détourne ! Merci du soutien en tout cas Edited October 22, 2015 by Shonen (see edit history) 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