Vinum Posted March 1, 2011 Share Posted March 1, 2011 Je n'ai pas trouvé de tutoriel sur l'override de Prestashop 1.4.Quelqu'un pourrait il expliquer comment cela fonctionne ? Link to comment Share on other sites More sharing options...
mathieu2 Posted March 29, 2011 Share Posted March 29, 2011 le override permet de réécrire une fonctionnalité de classe ou de controller sans toucher au coeur de prestashop.Cela signifie que si demain tu mets à jour ton prestashop, les seules modifs de développement que tu as dû faire se situent dans le theme ou dans ce dossier override. Override utilise la fonctionnalité "extends" du php objet.Prenons l'exemple du controlleur de la homepage de prestashop.Tu ne souhaites par exemple plus que le template qui soit affiché soit index.tpl mais home.tpl par exemple :La manière "sale" serait de modifier IndexController.php dans /controllers/IndexController.php et de changer dans la fonction displayContent le index.tpl par home.tpl...La manière "propre", utilisant l'override est de créer dans /override/controllers/ le fichier IndexController.php dans lequel on mettra le code ci-dessous : <?php class IndexController extends IndexControllerCore { public function displayContent() { self::$smarty->display(_PS_THEME_DIR_.'home.tpl'); } } De cette manière, tu n'as pas touché au fichier original.. Link to comment Share on other sites More sharing options...
Vinum Posted March 29, 2011 Author Share Posted March 29, 2011 merci pour cette réponse Link to comment Share on other sites More sharing options...
mathieu2 Posted March 29, 2011 Share Posted March 29, 2011 elle te conviens? Link to comment Share on other sites More sharing options...
ckarone Posted March 29, 2011 Share Posted March 29, 2011 Et pour modifier un tab de l'admin c'est possible? Link to comment Share on other sites More sharing options...
mathieu2 Posted March 29, 2011 Share Posted March 29, 2011 c'est justement l'objet d'une question que j'ai posé sur un autre post,mais je n'ai pas de réponse... Link to comment Share on other sites More sharing options...
Vinum Posted March 30, 2011 Author Share Posted March 30, 2011 et y a t il un moyen d'overrider sans recréer un tpl? Link to comment Share on other sites More sharing options...
Olecorre Posted March 30, 2011 Share Posted March 30, 2011 Bonjour,L'override ne concerne que les class et les controllers, pas le tpl. si vous surclasser le ordercontroler par exemple, il utilisera les tpl de votre thème par défaut sauf si dans votre code vous lui dites d'utiliser un autre tpl.Pour les tabs de l'admin, vous pouvez mettre en tab une class qui se trouve dans vos modules. Il suffit de mettre à jour la table ps_tab. si vous voulez redéfinir l'onglet "customers" de l'admin, mettez à jour sa ligne (2 je crois) en mettant dans le champ module, le nom du module ou vous avez mis la class AdminCustomers.php. Prestashop ne prendra plus la class dans admin/tab mais la class de votre module.Cdt Link to comment Share on other sites More sharing options...
Nuvish Posted April 11, 2011 Share Posted April 11, 2011 Olecore, donne nous un exemple complet en action stp. Link to comment Share on other sites More sharing options...
Broceliande Posted April 11, 2011 Share Posted April 11, 2011 Olecore, donne nous un exemple complet en action stp. Salut,L'exemple de mathieu est un exemple complet en soi :<?php class IndexController extends IndexControllerCore { public function displayContent() { self::$smarty->display(_PS_THEME_DIR_.'home.tpl'); } } Sinon un autre exemple complet ICI Link to comment Share on other sites More sharing options...
Julien Breux Posted April 11, 2011 Share Posted April 11, 2011 Cela permet par exemple d'étendre les "active record" class Customer extends CustomerCore { /** @var bool Said if customer is pro */ public $is_professional = false; // ... } 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