Yoann NOGUES (zerax) a écrit :
Stephane a écrit :
Yoann NOGUES (zerax) a écrit :
Salut,
Je cherche à faire une boucle d'articles ordonnés par hasard et avec une pagination.
par hasard ne peut pas marcher avec de la pagination, sauf à calculer toutes les pages en meme temps...
sinon, nouvelle page = nouveau contexte = nouveau calcul = nouveau hasard.
et si je fais 3 niveaux de boucles d'articles ( imbriquées dans la partie conditionnelle )
le premier niveau avec {par hasard}, le second avec {pagination 10}
et le dernier avec {doublons}
et que je fais une autre boucle avec {!doublons}, je ne peux pas trier et ca ressort selon l'id_article ...
c'est pareil, c'est une question de contexte qui change et donc provoque le recalcul
mais ca aurait été une bonne astuce de sioux ...
et avec ce principe la d'imbrication, je ne pourrais pas, avec des INCLURE faire ce que je cherche ?
pas mieux puisque c'est le recalcul de la boucle par hasard qui pose probleme
J'ai ma boucle dans un inclure donc je lui passe bien le {self=#SELF}.
Par contre sur ma page 2 je retrouve des articles de ma page 1 et vis et versa...
Cela fonctionne apparement comme si le par hasard fonctionne bien mais sur toute la liste et pas seulement sur la page
en page 1 tu as les 10 premiers tirés au hazard, en page 2 tu as du 11em au 20em d'un autre tirage.
c'est pas comme au loto, on peut pas jouer une grille pour plusieurs tirages...
c'est bien ce qu'il se produit
et a l'euromillions ca marche pas non plus ?
en fait, pour etre juste ca correspond plutot à jouer plusieurs grille sur un meme tirage, et ca on peut au loto...
Alors disons que tu ne peux pas gratter 2 fois le meme morpion
pour que la pagination marche, il faut un self (pour avoir des contextes differents entre 2 pages, sinon le cache de la page 1 est renvoyé en page 2
mais un nouveau contexte implique un nouveau calcul don un nouveau hasard.
pour que ca marche, il faut faire le calcul du hasard dans un contexte qui reste stable d'une page à l'autre et faire le calcul de la pagination dans un contexte qui change d'une page à l'autre et a acces au resultat de la premiere boucle (doublons ou clause IN construite avec des SET).
je crois qu'une solution est :
- de mettre faire une boucle par hasard dans un contexte sans self en y construisant la liste des id
- de mettre la pagination dans un inclure avec un cache à 0 (sans self mais en passant de quoi faire la clause IN)
c'est pas parfait : si le recalcul est fait (expiration du cache ou modif d'un article) entre 2 pages, ca refera la meme chose, mais ca devrait le faire moins souvent.
Je n'ai pas trop d'idées pouyr résoudre mon probléme ...
certains d'entre vous ont déjà fait un tri par hasard sur une boucle paginée ?
la pagination javascript pour ca, je pense que c'est le mieux.
un plugin jquery ? j'en connais un mais il ne trie que sur des <table> ( la flemme de refaire tout l'html
)
Au pire, je pourrai me faire un cron qui renomme tous les articles en rajoutant le numéro devant et trie par num_titre ?
le pensais plutot à un truc du genre des onglets (http://www.sunsean.com/idTabs/)
au moins, la tu es sur que les pages sont cohérentes puisqu'elles sont toutes chargées en meme temps.
c'est juste une question de CSS pour que ca ressemble à une pagination, et il suffit de mettre l'onglet avec un #COMPTEUR_BOUCLE|alterner
@++