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 !