Jump to content

[RESOLU ] Avoir un affichage aléatoire des produits sur module Produits phares


Recommended Posts

Bonjour,

J'ai bien lu divers posts sur le sujet et fait des tests
Je n'arrive pas à faire " défiler " les produits phares de manière aléatoire "
J'ai essayé le module homeproducts mais il me décale 1 produit sur les 4
Je suis en version 1.2.5 avec le thème basartronic
Merci pour vos conseils

Link to comment
Share on other sites

Salut,

Pour avoir un affichage aléatoire des produits dans le module "Produits phares", c'est très simple, on commence par regarder dans le fichier "homefeatured.php", on vois que la fonction utilisée et "getProducts()" de la classe "Category", en ligne 69 :

$products = $category->getProducts(intval($params['cookie']->id_lang), 1, ($nb ? $nb : 10));



si on analyse la fonciton getProducts() du fichier Category du dossier Classes, on s'aperçoit qu'on peut passer plusieurs paramètres :

public function getProducts($id_lang, $p, $n, $orderBy = NULL, $orderWay = NULL, $getTotal = false, $active = true, $random = false, $randomNumberProducts = 1)



dont le fameux random qui va permettre une sélection aléatoire des produits, donc la ligne de code 69 du fichier homefeatured.php va devenir :

$products = $category->getProducts(intval($params['cookie']->id_lang), 1, ($nb ? $nb : 10), NULL, NULL, false, true, true, ($nb ? $nb : 10));



maintenant, les produits sélectionnés par le module "Produits phares" seront aléatoires....
@+

  • Like 2
Link to comment
Share on other sites

Re,

Merci infiniment pour cette explication qui fonctionne parfaitement dorénavant

Je vais devoir faire une donation importante pour soutenir toutes / tous les

intervenants qui donnent des réponses claires et exploitables pour un néophyte

comme moi

Bonne journée

Link to comment
Share on other sites

  • 3 weeks later...

bonjour.
J'ai une petite question.
J'aimerai afficher mes produits en aléatoire mais que ce ne soit pas toujours les même d'affichés.
Je m'explique

J'affiche 10 produits, mais j'ai 20 produits dans mes produits phares ( sous entendu avec la case "accueil" cochée)

J'aimerai donc qu'à chaque nouvel affichage, un nouveau set de produits s'affiche parmi les 20 que j'ai.

J'espère que c'est assez clair.
merci d'avance

Link to comment
Share on other sites

  • 3 months later...
  • 5 weeks later...

Bonjour,

J'ai acheté hier un module qui permet d'afficher les produits horizontalement, mais j'aimerai aussi qu'ils s'affichent de façon aléatoire, et j'ai essayé de trouver dans le code de la page mais cela n'est pas pareil..

Je vous donne le code, et pourriez vous me dire quelle ligne il y a à modifier ou à rajouter pour que les produits s'affichent de manière aléatoire ? :


<!-- MODULE Home Featured Products -->
{if isset($products) AND $products}
<!-- Products list -->


<!-- /Products list -->
{/if}


Merci pour votre réponse.
Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...
  • 5 weeks later...

bonjour, s'il vous plaît laissez-moi à comprendre ... Je dois montrer produits aléatoires qui arrivent de TOUTES les catégories. Comment dois-je faire? Entre autres choses je ne peux pas configurer manuellement les produits exposés, car les produits sont importés de .csv de sorte qu'un champ est trop long (caractères), puis je reçois une erreur lorsque je tente de sauver la présentation de produits ... s'il vous plaît aider! Merci!

Link to comment
Share on other sites

La solution marche parfaitement mais en revanche j'ai un autre problème : suivant l'ordre d'affichage de mes produits il y a des gros décalages qui se créent (cf image jointe).
Si quelqu'un a rencontré le problème et a la solution merci d'avance.

47376_uJQWOSU3FscqFGZ0H9aJ_t

Link to comment
Share on other sites

En fait mon problème vient du thème prestashop_alt que j'utilise, j'ai eu la réponse à ma question alors pour ceux que ça intéresse il faut ajouter la ligne
div.v2-homefeatured .float {height:300px !important;}
à la fin du fichier themes/prestashop_alt/css/global.css

Link to comment
Share on other sites

  • 2 months later...

Bonjour,

 

J'ai mis les 2 méthodes et en effet ça shuffle mais malheureusement toujours les mêmes produits. J'ai environ 30 produits en accueil et un affichage de 12 sur la page phare.

A chaque rafraichissement il les met aléatoire mais toujours les 12 mêmes produits.

 

ou est le hic?

 

merci et salutations

Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...

Bonjour,

 

Et merci pour cette méthode qui marche très bien sauf que....

Comme d'autre, j'aimerais que les produits s'affichent aléatoirement et pas toujours les 12 premiers (dans mon cas).

 

Est il possible de faire afficher, par exemple, 12 ( ou autre) produits différents à chaque fois parmi tous ceux de la boutique aléatoirement?

 

D'autre part, peut on simplifier l'affichage avec simplement le nom, l'image et le prix sans tous les boutons?

Ce qui permettrait de formater plus facilement l'affichage, je pense.

Quelque chose de très simple.

merci par avance

Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...

Vu sur le forum en italien

dans le homefeatured.php

Remplacer :

$products = $category->getProducts((int)($params['cookie']->id_lang), 1, ($nb ? $nb : 10));

Par

$products = $category->getProducts((int)($params['cookie']->id_lang), 1, ($nb ? $nb : 50),NULL,NULL,false,true,true,($nb ? $nb : 10));

 

50 étant le nombre de produits possibles dans la catégorie accueil

et 10 le nb de produits affichés en page d'accueil.

 

Ca semble fonctionner avec PS: 1.4.6.2

  • Like 2
Link to comment
Share on other sites

bonjour

ça marche nickel pour moi aussi, et je veux ajouté une autre fonctionnalités pour les nouveaux produits.

chaque nouveaux produit et attribué à la catégorie accueil donc il sera affiché dans le homefeuatred, ce que je veux c'est afficher une petite icône "NEW" pour les nouveaux produits en page d’accueil.

merci d'avance

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 months later...
  • 3 weeks later...
  • 2 weeks later...
  • 2 months later...
  • 3 months later...

Bonjour 0Sabrina0,

 

que voulez-vous dire par "aleatoire" les produits changent combien de fois ?

Aléatoire veut dire que l'ordre de présentation des produits phares sera différent.

 

A chaque connexions ?

L'ordre d'affichage des produits phares sera différent à chaque fois que la page sera affichée.

 

@+

Link to comment
Share on other sites

  • 1 month later...

Bonjour à tous, je remonte ce topic pour apporté ma petite contrib pour la version 1.5.2.0....

 

Recherchez (Ligne 107) :

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

 

Remplacez par :

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

 

Ou pour avoir 50 produits aléatoire (50 étant le maximum) :

$products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 50),NULL,NULL,false,true,true,($nb ? $nb : 10));

 

Voilà, à bientôt :)

Link to comment
Share on other sites

  • 3 weeks later...

Bonjour tout le monde,

 

J'aimerai exploiter ces astuces pour récupérer et afficher des produits sur la page d'accueil provenant d'autres catégories que la catégorie "Accueil".

 

Est-ce que vous auriez une piste à me proposer? Je nage complètement là :unsure:

 

Merci d'avance!

 

++

Link to comment
Share on other sites

Bonsoir cedrickb,

 

Je ne pense pas que ce soit possible d'afficher sur la page d'accueil dans le module d'autres produits n'appartenant pas à la catégorie accueil. Pourquoi ne pas mettre ces produits dans la catégorie Accueil en plus de leur catégorie d'appartenance ?

 

Ou alors je n'ai pas compris ton souhait :)

 

@+

Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...
  • 3 weeks later...

Bonjour tout le monde,

 

J'aimerai exploiter ces astuces pour récupérer et afficher des produits sur la page d'accueil provenant d'autres catégories que la catégorie "Accueil".

 

Est-ce que vous auriez une piste à me proposer? Je nage complètement là :unsure:

 

Merci d'avance!

 

++

 

Salut Cédric,

 

Pour changer la catégorie affichée tu dois changer l'ID de la catégorie dans la ligne suivante (1 étant par défaut la catégorie Accueil):

 

$category = new Category(1, Configuration::get('PS_LANG_DEFAULT'));

 

:)

  • Like 1
Link to comment
Share on other sites

Bonjour,

que dois je modifier pour avoir une autre catégorie que accueil:

public function hookDisplayHome($params)

{

$category = new Category(Context::getContext()->shop->getCategory(), (int)Context::getContext()->language->id);

$nb = (int)(Configuration::get('HOME_FEATURED_NBR'));

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

shuffle($products);

$this->smarty->assign(array(

'products' => $products,

'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),

'homeSize' => Image::getSize(ImageType::getFormatedName('home')),

));

 

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

}

 

est ce qu'il est possible de mettre plusieurs catégorie, pour ne pas toujours avoir le même style de produits.

 

Merci

Link to comment
Share on other sites

j'ai trouvé ma réponse pour PS 1.5

 

Dans la ligne suivante,

Code:

$category = new Category(Context::getContext()->shop->getCategory(), (int)Context::getContext()->language->id);

 

 

Il faudra remplacer Context::getContext()->shop->getCategory() par l'id de la catégorie de ton choix.

 

icon_exclaim.gif Attention : Si tu utilises le multiboutique, l'id de catégorie pourrait ne pas être le même d'une boutique à l'autre. Cette méthode sera donc inappropriée.

Link to comment
Share on other sites

  • 2 months later...
  • 2 months later...

Bonjour

j'ai mis à jour avec la version 1.5.5 de prestashop et du coup dans le fichier modules/homefeatured/homefeatured.php alors que le

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

ou le

		shuffle($products);

au dessus de $this->smarty->assign(array(
fonctionnaient très bien sous la version précédente de prestashop là plus rien ne fonctionne!

Je n'ai plus rien d'afficher en aléatoire sur la page d'accueil

Merci de votre aide

Link to comment
Share on other sites

  • 2 weeks later...

Déplacé section Développement

Bonjour à tous,

J'ai effectué les modifs sur le code du fichier homefeatured.php

l'affichage aléatoire fonctionne parfaitement.

Cependant, en rafraichissant ma page pour tester,et de temps à autres ( une fois sur 3 ce qui est énorme) il arrive que certain produits ne s'affiche pas et laisse place a un espace vide.

ce qui décale mon affichage linéaire ( de 5 produits ) et décale l'intégralité du module homefeature et donc de ma page d'accueil

je suis en version 1.5

Quelqu'un a t'il rencontré ce problème? ou pense a une solution?

merci par avance

a bientot :)

Link to comment
Share on other sites

  • 3 weeks later...

Bonjour

j'ai mis à jour avec la version 1.5.5 de prestashop et du coup dans le fichier modules/homefeatured/homefeatured.php alors que le

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

ou le

		shuffle($products);

au dessus de $this->smarty->assign(array(

fonctionnaient très bien sous la version précédente de prestashop là plus rien ne fonctionne!

Je n'ai plus rien d'afficher en aléatoire sur la page d'accueil

Merci de votre aide

Bonjour,

 

Avez vous trouvé une solution à votre problème j'ai exactement la même chose.

Tout fonctionnait très bien avant l'update et depuis la mise à jour, malgré que le code soit tjs correcte plus d'affichage aléatoire ??

 

Merci.

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 months later...
  • 1 month later...

Salut,

 

Ceci marche bien avec les version antérieur à 1.5.

Comment arriver à faire la même chose avec la version 1.5.6 puisque les fichiers sont modifiés?

 

Merci

 

Salut,

Pour avoir un affichage aléatoire des produits dans le module "Produits phares", c'est très simple, on commence par regarder dans le fichier "homefeatured.php", on vois que la fonction utilisée et "getProducts()" de la classe "Category", en ligne 69 :
 

$products = $category->getProducts(intval($params['cookie']->id_lang), 1, ($nb ? $nb : 10));

si on analyse la fonciton getProducts() du fichier Category du dossier Classes, on s'aperçoit qu'on peut passer plusieurs paramètres :

public function getProducts($id_lang, $p, $n, $orderBy = NULL, $orderWay = NULL, $getTotal = false, $active = true, $random = false, $randomNumberProducts = 1)

dont le fameux random qui va permettre une sélection aléatoire des produits, donc la ligne de code 69 du fichier homefeatured.php va devenir :

$products = $category->getProducts(intval($params['cookie']->id_lang), 1, ($nb ? $nb : 10), NULL, NULL, false, true, true, ($nb ? $nb : 10));

maintenant, les produits sélectionnés par le module "Produits phares" seront aléatoires....
@+

 

 

Link to comment
Share on other sites

  • 2 weeks later...

bonjour

 

avant qu'on le demande pour la version 1.6  :)

 

la transformation est celle ci

 

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

remplacer par 

 

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

et voila tout fonctionne  :rolleyes:  :rolleyes:

Link to comment
Share on other sites

  • 6 months later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...