Comment afficher aléatoirement les produits phares de Prestashop 1.5.6.2 ?

Petit tutoriel Prestashop 1.5.6.2 qui explique comment afficher de façon aléatoire des produits du bloc produits phares

Logo de Prestashop sur fond blanc

Article publié le 07/10/2014 par Thomas Gottvalles dans la catégorie Développement web et logiciel. Cet article a été modifé le 07/02/2021.

Nous allons voir dans ce tutoriel comment afficher de manière aléatoire des produits phares sur une boutique Prestashop version 1.5.6.2. Pour information, Prestashop est un système de gestion de contenu Open Source permettant de créer une boutique en ligne.

Le module produits phares de Prestashop est un module natif qui permet d’afficher des produits affectés à la catégorie accueil. Le bloc produits phares se situe donc en principe sur la page d’accueil de la boutique. Il existe deux méthodes pour pouvoir afficher les produits phares aléatoirement : en installant un module tiers ou en modifiant le code source du module installé par défaut dans Prestashop. Nous allons voir la deuxième méthode, en modifiant directement le code source (script PHP).

Modification du script PHP

Le module produits aléatoires se nomme homefeatured et se situe dans le répertoire modules :

modules/homefeatured

 

Il faut ouvrir et éditer un seul fichier du module pour arriver à nos fins, c’est le fichier homefeatured.php :

modules/homefeatured/homefeatured.php

 

Comme vous pouvez le constater, le fichier PHP contient une classe HomeFeatured qui hérite de la classe Module. Nous allons modifier deux lignes de code dans une méthode de classe qui a pour fonction de récupérer les produits et de les afficher dans le template situé sur la page d’accueil (bloc produits phares). La méthode de classe en question est la méthode hookDisplayHome(). Rendez-vous donc dans la méthode de classe hookDisplayHome à la ligne 123 :

$products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 8));

 

$products contient les produits phares (normalement des objets) qui ont été retournés par la méthode getProducts() de l’objet $category. Nous allons ajouter des paramètres à cette méthode comme ceci :

$products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 8), NULL, NULL, false, true, true, ($nb ? $nb : 8), ‘position’);

 

Si vous voulez en savoir plus sur les paramètres de la méthode getProducts() de la classe Category, rendez-vous à la ligne 539 du fichier :

classes/Category.php

 

Nous allons ensuite modifier la ligne 131 :

return $this->display(__FILE__, ‘homefeatured.tpl’, $this->getCacheId(‘homefeatured’));

 

Ce code retourne le template homefeatured.tpl grâce à la méthode display() de la classe HomeFeatured. Pour pouvoir afficher les produits phares à chaque rafraichissement de la page accueil, nous allons supprimer le deuxième paramètre de la méthode comme ceci :

return $this->display(__FILE__, ‘homefeatured.tpl’);

 

Voilà, en modifiant ces deux lignes (123 et 131) de code, les produits phares devraient s’afficher de manière aléatoire à chaque rafraichissement de la page accueil. N’oubliez pas que pour afficher les produits phares, vous devez affecter les produits à la catégorie accueil dans le back office de Prestashop.


Cette page a été ouverte 29 fois par 26 visiteurs

Partager sur les réseaux sociaux

Lire des commentaires

Information

Aucun commentaire enregistré dans la base de données.

Poster un commentaire

Besoin d'aide ?
04 11 93 87 09