ademus Posted March 28, 2013 Share Posted March 28, 2013 (edited) ce doit surement être une question idiote vu que je n'ai trouvé aucune réponse par ailleurs. J'avais un module qui utilisait dans une page 'a part': require(dirname(__FILE__).'/../../../config/config.inc.php'); ControllerFactory::getController('ProductController')->MaMethode(); ça ne marche plus avec la version 1.5 qui me renvoit une une erreur 500 Le site Web a rencontré une erreur lors de l'extraction de http://localhost/pre...97159609012306. Comment puis je accéder à la méthode d un Controller (overridé ou pas) avec Prestashop 1.5 Merci Edited March 28, 2013 by ademus (see edit history) Link to comment Share on other sites More sharing options...
2FR3 Posted March 28, 2013 Share Posted March 28, 2013 Vue la tete du lien, je pense que l'affichage reclamme un cache qui n'existe pas. Essayé de désactivé ce dernier pour voir Sinon voir aussi le mode Debug. Link to comment Share on other sites More sharing options...
ademus Posted March 28, 2013 Author Share Posted March 28, 2013 Non ce n est pas une question de cache. mais ma question était aussi d'ordre général : comment instancier un controller dans prestashop 1.5, depuis une classe et hors d'une classe ? Link to comment Share on other sites More sharing options...
ademus Posted April 1, 2013 Author Share Posted April 1, 2013 (edited) J'ai trouvé 3 pistes pour instancier un controller afin d'utiliser une de ses méthodes, voire (mieux encore) une méthode overridée : Methode 1 : Création d'une nouvelle page blanche. http://www.prestasho...11#entry1048811 Cette méthode un peu lourde car elle oblige à la création de nouveaux fiohiers hors des repertoires réversés à l'override. Méthode 2 : On peut se servir de : Controller::getController('MapageController')->maFunction mais cette méthode ne fonctionne pas avec les overrides Methode 3 : Enfin ma méthode perso préférée : dans un fiohier 1, on crée une classe étendant le controller qu'on veut utiliser : class MonController extends ProductControllerCore { public function maMethode() { echo 'OK'; return 'OK'; [spam-filter] Dans un fiohier 2 on inclut le fichier 1 et on crée un nouveau MonController qui nous permettra d'avoir accès à toutes les méthodes du controller visé, y compris les méthodes overridées. // inclut le fichier ocnfig de prestashiop pour avoir accés à tout le systéme require(dirname(__FILE__).'/../../../config/config.inc.php'); require(dirname(__FILE__).'/fichier1.php'); $monController = new MonController(); $monController ->maMethode(); Edited April 2, 2013 by ademus (see edit history) 1 Link to comment Share on other sites More sharing options...
sadiki.abdou Posted May 11, 2013 Share Posted May 11, 2013 Bravo ademus c'est la bonne solution ça marche aussi pour moi : <?php require_once(dirname(__FILE__).'/config/config.inc.php'); //ControllerFactory::getController('J2tcrosssellsController')->run(); require_once(dirname(__FILE__).'/controllers/J2tcrosssellsController.php'); $monController = new J2tcrosssellsControllerCore(); $monController ->run(); 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