Asu34 Posted May 12, 2019 Share Posted May 12, 2019 (edited) Bonjour à tous, Je n'arrive pas à créer un override d'un module sur un PS 1.7.5. Les modifications de la function souhaitée ne sont pas prises en compte. J'ai bien copié le .php vers /override/monmodule/monmodule.php (Mes caches sont désactivées et les surcharges autorisées) J'ai tenté d'override la class monModule avec class monMonduleTools extends monModule { public function superFonction { /*mes modifs*/ } } comme recommandé dans la doc PS 1.7.... J'ai sinon également tenté : class monMonduleOverride extends monModule { public function superFonction { /**/ } } Mais idem mes modifications ne sont pas prises en compte. De plus j'ai un autre problème bizarre avec les override, ce module a plusieurs .tpl, les modifications en override dans mon theme ne fonctionnent que pour un seul de ces fichiers... les chemins sont correctes /montheme/modules/monmodules/etc... pour chacun des fichiers.... Je n'avais jamais eu ces soucis en 1.6. Ai-je omis quelque chose ? Je vous remercie par avance, Edited May 13, 2019 by Ric34 (see edit history) Link to comment Share on other sites More sharing options...
joseantgv Posted May 13, 2019 Share Posted May 13, 2019 https://devdocs.prestashop.com/1.7/modules/concepts/overrides/ Link to comment Share on other sites More sharing options...
BeComWeb Posted May 13, 2019 Share Posted May 13, 2019 Bonjour Le chemin est override/modules/monmodule/monmodule.php (pas de majuscule / camel case /etc dans le nom du module). Il faut aussi vider le cache pour que la modif soit prise en compte (ou supprimer le fichier class_index.php dans le répertoire var/cache/dev et/ou var/cache/prod selon que vous soyez en mode debug ou non). Link to comment Share on other sites More sharing options...
BeComWeb Posted May 13, 2019 Share Posted May 13, 2019 Et le nom de l'override doit forcément se terminer par "Override", je ne sais pas où vous avez vu dans la doc que l'on pouvait utiliser "Tools" pour surcharger un module... Link to comment Share on other sites More sharing options...
Asu34 Posted May 13, 2019 Author Share Posted May 13, 2019 (edited) Merci pour vos retours. Je vous confirme ne pas avoir utilisé de majuscule dans le chemin d'accès et nom au fichier .php J'ai bien vidé les caches, via le BO puis manuellement dans /var (avec class_index.php) Je le pensais aussi pour le nom de l'override avec maClassOverride extends maClass, c'est ce que je faisais en 1.6 cela marchait mais en 1.7 non. (Ce n'est également plus mentionné dans la doc...) Je suis donc toujours bloqué en ayant provisoirement modifié la function directement dans le module (donc sans override)... faute de solution Edited May 13, 2019 by Ric34 (see edit history) Link to comment Share on other sites More sharing options...
Asu34 Posted May 13, 2019 Author Share Posted May 13, 2019 Pour récapituler voici ce que j'ai tenté : la class que je veux override est dans /modules/moduleaoverride/classaoverride.php Dans /override j'ai créé le dossier est fichier /override/moduleaoverride/classaoverride.php dans ce nouveau fichier classaoverride.php class classaoverrideOverride extends classaoverride { public function lafonction($variable) { /*ma modif*/ } } J'ai vidé les caches via le bo et manuellement /var/cache/dev Rien ne se passe. En complément d'info cette fonction permet dans le BO d'exporter en CSV certaines données. Link to comment Share on other sites More sharing options...
BeComWeb Posted May 13, 2019 Share Posted May 13, 2019 Donc si je comprends bien c'est un modèle utilisé par le module que vous voulez surcharger, pas le module lui-même. C'est bien ça ? Link to comment Share on other sites More sharing options...
Asu34 Posted May 14, 2019 Author Share Posted May 14, 2019 (edited) Non c'est bien une fonction du module en lui même. En gros dans cet export j'y ai simplement rajouté une colonne avec l'id de ce dont j'avais besoin et supprimé d'autres inutiles via un modele propre au module. ça fonctionne mais pas en override comme essayé ci-dessus. Cette fonction fait appel a une autre fonction du module qui est private, est-ce que ça pourrait être la cause ? Edited May 14, 2019 by Ric34 (see edit history) Link to comment Share on other sites More sharing options...
Asu34 Posted May 14, 2019 Author Share Posted May 14, 2019 private public rien y fait, de toute façon mon override sur ce module n'est pas pris en compte ... (bizarrement idem pour ses .tpl dans /montheme... ça fonctionne avec les autres modules sans soucis) Link to comment Share on other sites More sharing options...
BeComWeb Posted May 15, 2019 Share Posted May 15, 2019 Bonjour Mettez directement les extraits du code que vous essayez d'écrire parce que là c'est beaucoup trop confus. D'un message sur l'autre vous changez les intitulés, vous décrivez des situations différentes,... On y comprend rien, désolé. Link to comment Share on other sites More sharing options...
alexbdev Posted September 9, 2020 Share Posted September 9, 2020 Bonjour, Je me retrouve avec exactement le même problème que Ric34. A savoir : Module initial : Fichier /modules/pm_productsbyattributes/pm_productsbyattributes.php Class class pm_productsbyattributes extends ProductsByAttributesCoreClass Override Fichier /override/modules/pm_productsbyattributes/pm_productsbyattributes.php Class class pm_productsbyattributesOverride extends pm_productsbyattributes Cache rafraichi / fichier class_index.php supprimé mais rien n'y fait, l'override n'est pas pris en compte. Précision importante : cet override fonctionne parfaitement en 1.6. Si quelqu'un a une idée Ou @Ric34 si jamais tu as pu résoudre le problème. Merci 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