pagination perdue en aleatoire

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
8 years 6 months ago #240357

-- HikaShop version -- : 263
-- Joomla version -- : 351

Bonjour

si je passe une liste de produit (qui normalement a 4 pages) en tri aléatoire la pagination disparait

savez vous pourquoi ?

merci

Last edit: 8 years 6 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 82906
  • Thank you received: 13378
  • MODERATOR
8 years 6 months ago #240365

Bonjour,

Oui. Lorsque vous passez un listing en tri aléatoire, à chaque fois que vous affichez la page, la requête MySQL recalcule aléatoirement l'ordre des éléments. Mettre plusieurs pages n'aurait aucun sens dans ce cas vu que les produits seraient de toute façon choisis aléatoirement sur chaque page et il serait possible de retrouver plusieurs fois certains produits, et certains autres produits aucune fois, en regardant chaque page une fois.

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
8 years 6 months ago #240396

pour le client ca a du sens d'avoir la sensation de plusieurs page de produits, on pense qu'il y en a 80 ou 100 alors que là on croit qu'il y en a juste que 20
il n'y a pas d'option pour laisser quand meme la pagination ?

merci

Please Log in or Create an account to join the conversation.

  • Posts: 82906
  • Thank you received: 13378
  • MODERATOR
8 years 6 months ago #240408

Pas d'option non, car je trouvais ça illogique.
C'est géré par ce code:

			if(!$this->params->get('random')){
				$this->params->set('show_limit',1);
			}
dans components/com_hikashop/views/product/view.html.php
Donc je suppose qu'un
if($this->params->get('random')){
				$this->params->set('show_limit',1);
}
au début du fichier "listing" de la vue "product" via le menu Affichage>vues devrait permettre cela.

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
8 years 6 months ago #240509

oui c'est vrai que c'est plus logique mais mon client le demande

merci pour le code

l'ideal serait un tri aleatoire des ID et paginer apres en ayant les id differents en memoire

Last edit: 8 years 6 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 26159
  • Thank you received: 4028
  • MODERATOR
8 years 6 months ago #240575

Bonjour,

Heu... non.
Quand un listing peut contenir plusieurs milliers de produits et avoir des centaine d'utilisateur on ne s'amuse pas à faire de l'aléatoire stocké en mémoire du serveur. Et je n'ose même pas imaginer la requête SQL qui doit forcer un order ou alors charger tous les produits pour les ordonner "à la main".
C'est suicidaire.

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
8 years 6 months ago #240585

il suffit d'une colonne en plus dans la table des produits product_rand , et de mettre a jour cette colonne (a définir comment et quand)
et la solution est tout simplement résolue

un truc du genre UPDATE #__hikashop_product SET product_rand = FLOOR(500000 * RAND()) + 1;

Last edit: 8 years 6 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 26159
  • Thank you received: 4028
  • MODERATOR
8 years 6 months ago #240590

Bonjour,

Tout à fait ce n'est plus de l'aléatoire :)
C'est un ordre définit et statique qui a été généré aléatoirement une seule fois.

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

Time to create page: 0.060 seconds
Powered by Kunena Forum