Shimrra Posted April 8, 2013 Share Posted April 8, 2013 Bonjour, J'ai installé un module permettant d'intégrer un moteur à facette dans ma page. A présent je cherche à le personnaliser. Mais j'ai un soucis (si non je ne ferai pas ce post ^^) J'ai suivis les instructions présentes ici. Mais ça ne prend pas en compte mes changements :/ J'ai vérifié les chemins : /modules/pm_advancedsearch4/views/templates/hook/pm_advancedsearch_results.tpl /themes/mytheme/modules/pm_advancedsearch4/views/templates/hook/pm_advancedsearch_results.tpl J'ai viré le cache :/ toujours rien. J'ai fais la modif dans le .tpl du module, elle est bien prise en compte (et directement). Sur de vieux tuto (de l'époque de 1.4) j'ai vu qu'il fallait mettre les .tpl à la racine du nom du module : ça fonctionne ... mais je trouve ça bizarre vu que ça ne correspond pas à la doc :/ Faut-il copier tout le contenu du dossier ? on ne peut pas juste redéfinir ce que l'on veut ? La doc est-elle incorrecte ? Link to comment Share on other sites More sharing options...
Gring Posted April 12, 2013 Share Posted April 12, 2013 Bonjour, J'ai également fait plusieurs tests et impossible de surcharger un module en suivant les indications de la documentation, je n'y parviens qu'en mettant le template à la racine du module, comme l'a indiqué Shimrra : "/themes/montheme/modules/monmodule/montemplate.tpl" Je pencherai donc pour une erreur dans la documentation (peut-être que ce fonctionnement sera mis en place dans une future version), d'autant plus que ce n'est pas la première fois que je rencontre ce genre de "coquille" dans la doc... Quelqu'un en sait plus à ce sujet ? Link to comment Share on other sites More sharing options...
Whoami Posted April 12, 2013 Share Posted April 12, 2013 Bonjour, Le mieux ne serait-il pas de demander directement aux auteurs de PM_ADVS voir ce qu'ils en pensent ? Ils sont généralement assez réactifs même sur des questions assez complexes Je pencherai donc pour une erreur dans la documentation (peut-être que ce fonctionnement sera mis en place dans une future version), d'autant plus que ce n'est pas la première fois que je rencontre ce genre de "coquille" dans la doc... Il suffirait juste de surcharger un autre module (voir un autre module tiers) et voir si le problème se reproduit ? Link to comment Share on other sites More sharing options...
Shimrra Posted April 15, 2013 Author Share Posted April 15, 2013 Je regarde ça aujourd'hui, si le temps me le permet. Mais je pense que Gring a du tester avec un autre module que le miens et obtenir le même soucis. Link to comment Share on other sites More sharing options...
Gring Posted April 15, 2013 Share Posted April 15, 2013 Oui c'est bien ça, je n'ai pas essayé avec le module de Shimrra mais avec d'autres modules et à chaque fois cela ne fonctionne pas. En fait je souhaitais créer un post pour indiquer l'erreur dans la doc où savoir si cela venait de moi quand je suis tombé sur le post de Shimrra... Link to comment Share on other sites More sharing options...
Shimrra Posted April 15, 2013 Author Share Posted April 15, 2013 Je pense que c'est une erreur de la doc du coup. Ou alors que c'est prévu dans une proche version (peut-etre la 1.5.4, je suis encore sous 1.5.3). Link to comment Share on other sites More sharing options...
codeurWeb Posted May 7, 2013 Share Posted May 7, 2013 Je confirme que le problème est toujours là en version 1.5.4.1. La doc explique qu'il faut mettre tous les tpl du module dans un répertoire /views mais la surcharge du module dans le thème ne fonctionne plus. Il me semble que ça fonctionnait jusqu'à la version 1.5.1. Du coup, je ne sais pas quelle méthode employer car je peux mettre tous les tpl des hooks à la racine des modules mais c'est plus pratique d'avoir le répertoire /views pour gérer les tpl des contrôleurs front-office et back-office. Link to comment Share on other sites More sharing options...
codeurWeb Posted May 7, 2013 Share Posted May 7, 2013 (edited) J'ai trouvé le problème et comment le contourner. (J'ai proposé les modifications sur Github.) En attendant, la solution est de surcharger les classes "Module" et "ModuleFrontController". Pour cela il faut créer un fichier si il n'existe pas dans /override/classes/module/Module.php et copier la fonction : <?php abstract class Module extends ModuleCore { public function getTemplatePath($template) { $overloaded = $this->_isTemplateOverloaded($template); if ($overloaded === null) return null; /*startHack*/ if(file_exists(_PS_THEME_DIR_.'modules/'.$this->name.'/views/templates/hook/'.$template)) return _PS_THEME_DIR_.'modules/'.$this->name.'/views/templates/hook/'.$template; /*endHack*/ if($overloaded) return _PS_THEME_DIR_.'modules/'.$this->name.'/'.$template; else if (file_exists(_PS_MODULE_DIR_.$this->name.'/views/templates/hook/'.$template)) return _PS_MODULE_DIR_.$this->name.'/views/templates/hook/'.$template; else return _PS_MODULE_DIR_.$this->name.'/'.$template; } } Puis, créer un fichier si il n'existe pas dans /override/classes/controller/ModuleFrontController.php et copier la fonction : <?php class ModuleFrontController extends ModuleFrontControllerCore { public function setTemplate($template) { /*startHack*/ if(Tools::file_exists_cache(_PS_THEME_DIR_.'modules/'.$this->module->name.'/views/templates/front/'.$template)) $this->template = _PS_THEME_DIR_.'modules/'.$this->module->name.'/views/templates/front/'.$template; /*endHack*/ elseif (Tools::file_exists_cache(_PS_THEME_DIR_.'modules/'.$this->module->name.'/'.$template)) $this->template = _PS_THEME_DIR_.'modules/'.$this->module->name.'/'.$template; elseif (Tools::file_exists_cache($this->getTemplatePath().$template)) $this->template = $this->getTemplatePath().$template; else throw new PrestaShopException("Template '$template'' not found"); } } Edited May 7, 2013 by codeurWeb (see edit history) Link to comment Share on other sites More sharing options...
Shimrra Posted May 7, 2013 Author Share Posted May 7, 2013 Okey, merci bcp pour l'info en espérant qu'il corrige ça rapidement. Link to comment Share on other sites More sharing options...
Shimrra Posted May 7, 2013 Author Share Posted May 7, 2013 (edited) A supprimer, l'envoie de message a bugguer --' Edited May 7, 2013 by Shimrra (see edit history) Link to comment Share on other sites More sharing options...
presta-fun Posted June 20, 2013 Share Posted June 20, 2013 Bonjour, je me permet de répondre à ce topic pour éviter d'en créer un nouveau. Mon problème est similaire car en voulant installer un module (qui marchait bien il y a deux semaines -mais j'ai tout réinstallé depuis -) j'obtiens le message d'erreur suivant: "Le ou les modules suivants n'ont pas été correctement installés : - blockhomeproductslide :Impossible d'installer la surcharge : La méthode initContent dans la classe SearchController est déjà surchargé." Je n'ai toujours pas pu résoudre le problème avec la méthode préconisée plus haut, ni avec ce que j'ai pu voir sur internet. Lorsque je modifie différents fichiers plus rien ne marche, j'obtiens une page blanche dans mon back-office. Quant à la documentation, elle nous dit: "Surcharger un contrôleur Grâce à l'héritage objet, vous pouvez modifier le comportement d'un contrôleur, ou en ajouter de nouveaux. Les contrôleurs de PrestaShop sont tous stockés dans le dossier /controllers, et utilise le suffixe "Core". Par exemple, lorsque vous travaillez avec le contrôleur de catégorie : Fichier : /controllers/CategoryController.php Classe : CategoryControllerCore Si vous souhaitez modifier un contrôleur, vous devez d'abord créer une nouvelle classe sans le suffixe "Core", et placer ce fichier dans le dossier /override/controllers. Par exemple, lorsque vous surchargez le contrôleur de catégorie : Fichier : /override/controllers/front/CategoryController.php Classe : CategoryController" Et bien je n'y comprends rien. Si quelqu'un peut me venir en aide, je l'attends tel un messie Merci et bonne journée. Link to comment Share on other sites More sharing options...
codeurWeb Posted June 20, 2013 Share Posted June 20, 2013 Bonjour @coquoricot, le problème que vous rencontrez avec l'installation du module "blockhomeproductslide" est différent du problème énoncé. Ce topic concerne la surcharge des fichiers tpl d'un module dans un thème. Dans votre cas, l'installation du module essaie de placer du code dans le fichier /override/controllers/front/SearchController.php mais le fichier a déjà été modifié par un autre module ou par un prestataire et il faut donc intervenir manuellement pour installer ce module. Il faut comparer les fichiers /modules/blockhomeproductslide/override/controllers/front/SearchController.php avec le fichier /override/controllers/front/SearchController.php et placer le code au bon endroit. Link to comment Share on other sites More sharing options...
presta-fun Posted June 21, 2013 Share Posted June 21, 2013 (edited) Bonjour @coquoricot, le problème que vous rencontrez avec l'installation du module "blockhomeproductslide" est différent du problème énoncé. Ce topic concerne la surcharge des fichiers tpl d'un module dans un thème. Dans votre cas, l'installation du module essaie de placer du code dans le fichier /override/controllers/front/SearchController.php mais le fichier a déjà été modifié par un autre module ou par un prestataire et il faut donc intervenir manuellement pour installer ce module. Il faut comparer les fichiers /modules/blockhomeproductslide/override/controllers/front/SearchController.php avec le fichier /override/controllers/front/SearchController.php et placer le code au bon endroit. Bonjour, j'étais donc à côté de la plaque et je m'en excuse. Si à tout hasard vous aviez l'occasion de m'aiguiller pour la modification du fichier, n'hésitez pas à répondre à mon précédent MP pour ne pas polluer plus encore ce topic. J'ai en effet tenté une modification à l'instant, mais sans succès. J'ai sans doute placé le morceau de code de telle façon qu'il était inactif. Edit: après avoir bien regardé, les deux document ont un contenu parfaitement identique... Merci à vous, Bonne soirée. Edit 2: mon problème a été résolu en supprimant simplement le fichier searchcontroller du dossier override. Edited June 23, 2013 by coquoricot (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