Agence web et solutions IT, Experts Symfony contact@avanim-prod.com

Surcharger un controlleur, un modele ou une vue sous Prestashop

6 décembre 2011 jravouna Prestashop Étiquettes : , , , 1 Comment

XACQG4BA4KNM

Prestashop version 1.4 offre un framework intégré permettant de gérer vos développements en modèle MVC (modèle, vue, controlleur) et donc de surcharger tout les modules ou les composants du core.

Pourquoi surcharger ? Tout simplement pour ne pas toucher au core et permettre de conserver les mises à jour du site Internet. La surcharge de class permet entre autre de redéfinir des variables ou de créer des fonctions qui ne seront pas écrasés par une mise à jour.

1/ Surcharger une vue (thème)

Les vues sous prestashop sont sous forme de fichier template smarty (dans sa version 3, pour Prestashop 1.4). Ainsi vous pourrez modifier le template d’un fichier core directement dans le repertoire template de votre site internet.
Afin de modifier un template de module, il vous faut créer un répertoire du nom du module dans le répertoire theme de votre site Internet. Ensuite y créer votre fichier .tpl qui remplacera le fichier tpl du template de base du module.

Par exemple : pour modifier l’apparence du module « homefeatured » (module permettant d’afficher les produits en page d’accuei) il vous suffit de créer les répertoires

/CHEMINDUSITE/themes/milpau/modules/homefeatured/

Et d’y créer les le fichier template (dans notre exemple : homefeatured.tpl) ainsi que les fichiers nécessaires au thème.

2/ Surcharger une classe

Les classes sont normalement situées dans le repertoire classes de votre site Internet. Il est possible de surcharger ces classes en copiant le nom du fichier dans le repertoire « override ». Ainsi pour surcharger la classe « Cart.php » (pour modifier les fonctions du pannier) il vous suffit de créer un fichier « Cart.php » dans le répertoire /classes. Attention toutefois de procéder à l’héritage du fichier de base.

Exemple de surcharger (fichier /override/classes/Cart.php) :

class Cart extends  CartCore
{

3/ Surcharger un controlleur

La surcharge du controlleur est basée sur le même système que celui des classes. Il suffit de créer un fichier se nommant du nom du controlleur dans le répertoire /override/controller/. Toujours en héritant du controlleur de base :

class ProductController extends ProductControllerCore
{

Voilà pour ce petit tuto qui aidera les premiers pas des développeurs prestashop !

1 Comment

  1. Tout a fait d’accord ! on faut garder le core inchangé au maximum