Pagination sur plusieurs boucles

Non, ça ne résoud pas mon souci. En fait, je n'ai aucun souci d'affichage des résultats. C'est simplement pour la pagination.
Pour afficher mes résultats de la façon dont je souhaite les afficher, il me faut 2 boucles. Or la pagination ne peut se faire que sur une boucle et non sur l'ensemble des 2. La solution d'afficher les résultats en passant par {doublons xxx} permet de "stocker" dans un premier temps les résultats puis de les afficher via une seule boucle à la fin, ce qui permet du coup de mettre en place la pagination. Mais en optant pour cette solution, il se trouve que les résultats ne sont plus affichés dans l'ordre imposé par les deux premières boucles...

Donc je tourne en rond ! Soit j'affiche correctement les résultats mais sans pouvoir mettre en oeuvre la pagination. Soit j'affiche les résultats dans un ordre qui ne me convient pas et avec la pagination. Personne n'aurait d'idée pour une chose qui paraît pourtant toute bête ?

Message du 02/02/09 à 20h37
De : "Jean-Christophe Villeneuve" <jcvilleneuve@cegetel.net>
A : c.derancourt@voila.fr
Copie à : spip@rezo.net
Objet : Re: [Spip] Pagination sur plusieurs boucles

c.derancourt@voila.fr a écrit :
> Oui, je pourrais faire ceci, mais c'ets là mon problème : je souhaiterais que les 15 plus récents s'affichent, SUIVIS des 15 au hasard. Je ne veux pas qu'il affiche l'ensemble des 30 du plus récent au plus ancien, mais les 30 dans l'ordre où il les a trouvés. Est-ce possible ou dois-je renoncer ?
>
Ben alors affiche tes articles dans les 2 premières boucles et vire la 3e !
Ou alors j'ai pas compris ?
Sinon, c'est contradictoire, ce que tu veux.
Ou alors si tu veux les 15 plus récents des 2 premières boucles puis 15
au hasard venant des 2 premières boucles, tu fais
Boucle 1 qui va chercher tous les articles avec mot-clé 1 stocké dans
doublons_un ET dans doublons_deux
Boucle 2 qui va chercher tous les articles avec mot-clé 2 stocké dans
doublons_un ET dans doublons_deux
Boucle 3 qui affiche les 15 + récents pris dans doublons_un avec {doublons}
Boucle 4 qui affiche 15 articles au hasard pris dans doublons_deux avec
{doublons} pour pas réafficher les mêmes
ça doit fonctionner ça si j'ai bien pigé ton souhait.

>
>
>> Message du 02/02/09 à 17h35
>> De : "Jean-Christophe Villeneuve" <jcvilleneuve@cegetel.net>
>> A : c.derancourt@voila.fr
>> Copie à : spip@rezo.net
>> Objet : Re: [Spip] Pagination sur plusieurs boucles
>>
>>
>> c.derancourt@voila.fr a écrit :
>>
>>> Aïe... en fait, je souhaitais afficher les résultats de la BOUCLE1 avec les critères {par date} {inverse}, puis ceux de la BOUCLE2 avec le critère {par hasard}, le tout grâce à la BOUCLE3, mais en respectant critères précédents et l'ordre. Aucun moyen en ne passant pas par les doublons alors ? Moi qui croyais que tout trouvait une solution en SPIP ! :wink:
>>>
>>>
>>>
>>>
>> rien ne t'empeche de faire par exemple, en passant par les doublons
>>
>> boucle 1 qui va chercher les 15 plus récents avec {par date}
>> {inverse}{0.15)
>> boucle 2 qui va en chercher 15au hasard avec {par hasard}{0.15)
>> puis
>> boucle 3 qui affiche le tout des plus récents aux plus anciens avec {par
>> date} {inverse}
>>
>>

____________________________________________________

Ecoutez le dernier single de U2 "Get on your boots" sur http://musiline.voila.fr !

Bon, il ne reste plus que les tableaux de spip-bonux alors.
Boucle1 range les articles dans un tableau
Boucle2 idem
Boucle3 affiche le tableau.
Va voir spipbonux sur spip-contrib.
ca donnerait qq chose comme
<BOUCLE1(SITES){id_mot=1}{par age}{0,15}>
    #SET_PUSH{tabsites,#ID_ARTICLE}
</BOUCLE1>
<BOUCLE2(SITES){id_mot=2}{par hasard}>
    #SET_PUSH{tabsites,#ID_ARTICLE}
</BOUCLE2>

puis

<BOUCLE3(POUR){tableau #ENV{tabsites}} {pagination}>
      ICI les sites qui sont pass és soit
      dans la Boucle1, soit dans la Boucle2
        dans l'ordre où ils ont été pushés...

        <BOUCLE0(ARTICLES){id_article=#VALEUR}>
        </BOUCLE0>
</BOUCLE3>

ATTENTION, non testé.
Cordialement
MJ

<c.derancourt@voila.fr> wrote:

Non, ça ne résoud pas mon souci. En fait, je n'ai aucun souci d'affichage
des résultats. C'est simplement pour la pagination. Pour afficher mes
résultats de la façon dont je souhaite les afficher, il me faut 2 boucles.
Or la pagination ne peut se faire que sur une boucle et non sur l'ensemble
des 2. La solution d'afficher les résultats en passant par {doublons xxx}
permet de "stocker" dans un premier temps les résultats puis de les
afficher via une seule boucle à la fin, ce qui permet du coup de mettre en
place la pagination. Mais en optant pour cette solution, il se trouve que
les résultats ne sont plus affichés dans l'ordre imposé par les deux
premières boucles...

Donc je tourne en rond ! Soit j'affiche correctement les résultats mais
sans pouvoir mettre en oeuvre la pagination. Soit j'affiche les résultats
dans un ordre qui ne me convient pas et avec la pagination. Personne
n'aurait d'idée pour une chose qui paraît pourtant toute bête ?

> Message du 02/02/09 à 20h37 De : "Jean-Christophe Villeneuve"
> <jcvilleneuve@cegetel.net> A : c.derancourt@voila.fr Copie à :
> spip@rezo.net Objet : Re: [Spip] Pagination sur plusieurs boucles
>
>
> c.derancourt@voila.fr a écrit : > Oui, je pourrais faire ceci, mais
> c'ets là mon problème : je souhaiterais que les 15 plus récents
> s'affichent, SUIVIS des 15 au hasard. Je ne veux pas qu'il affiche
> l'ensemble des 30 du plus récent au plus ancien, mais les 30 dans
> l'ordre où il les a trouvés. Est-ce possible ou dois-je renoncer ? > Ben
> alors affiche tes articles dans les 2 premières boucles et vire la 3e !
> Ou alors j'ai pas compris ? Sinon, c'est contradictoire, ce que tu veux.
> Ou alors si tu veux les 15 plus récents des 2 premières boucles puis 15
> au hasard venant des 2 premières boucles, tu fais Boucle 1 qui va
> chercher tous les articles avec mot-clé 1 stocké dans doublons_un ET
> dans doublons_deux Boucle 2 qui va chercher tous les articles avec
> mot-clé 2 stocké dans doublons_un ET dans doublons_deux Boucle 3 qui
> affiche les 15 + récents pris dans doublons_un avec {doublons} Boucle 4
> qui affiche 15 articles au hasard pris dans doublons_deux avec
> {doublons} pour pas réafficher les mêmes ça doit fonctionner ça si j'ai
> bien pigé ton souhait.
>
> >
> >
> >> Message du 02/02/09 à 17h35 De : "Jean-Christophe Villeneuve"
> >> <jcvilleneuve@cegetel.net> A : c.derancourt@voila.fr Copie à :
> >> spip@rezo.net Objet : Re: [Spip] Pagination sur plusieurs boucles
> >>
> >>
> >> c.derancourt@voila.fr a écrit :
> >>
> >>> Aïe... en fait, je souhaitais afficher les résultats de la BOUCLE1
> >>avec les critères {par date} {inverse}, puis ceux de la BOUCLE2 avec
> >>le critère {par hasard}, le tout grâce à la BOUCLE3, mais en
> >>respectant critères précédents et l'ordre. Aucun moyen en ne passant
> >>pas par les doublons alors ? Moi qui croyais que tout trouvait une
> >>solution en SPIP ! :wink: > > > > rien ne t'empeche de faire par exemple,
> >>en passant par les doublons
> >>
> >> boucle 1 qui va chercher les 15 plus récents avec {par date}
> >> {inverse}{0.15) boucle 2 qui va en chercher 15au hasard avec {par
> >> hasard}{0.15) puis boucle 3 qui affiche le tout des plus récents aux
> >> plus anciens avec {par date} {inverse}
> >>
> >>
>
>
>

____________________________________________________

Ecoutez le dernier single de U2 "Get on your boots" sur
http://musiline.voila.fr !

Michel JORDA a écrit :

Bon, il ne reste plus que les tableaux de spip-bonux alors.

malheureusement le probleme ne changera pas, le seul moyen fiable de faire une pagination avec un critère hasard, c'est de tout remonter et de faire une pagination javascript.

sinon, entre 2 pages, le tirage au hasard risque d'etre fait (ca depend du cache)

lire le thread Discuter chez rezo.net

@++

Je pense que tu te trompes....
avec les tableaux, selon les boucles que j'ai postées la dernière fois, les ID-ARTICLES sont poussés dans l'ordre de la boucle, et tu affiches ensuite dans ta boucle de pagination, les articles dans l'ordre du tableau.
Aucune raison donc que ça se mélange encore ? D'autant que les 3 boucles étant dans la même page, elles vont etre calculées dans la même passe.
As-tu essayé ? (je suis en formation SPIP justement, donc pas trop le temps).
Cordialement

Le 4 févr. 09 à 23:03, Stephane a écrit :

Michel JORDA a écrit :

Bon, il ne reste plus que les tableaux de spip-bonux alors.

malheureusement le probleme ne changera pas, le seul moyen fiable de faire une pagination avec un critère hasard, c'est de tout remonter et de faire une pagination javascript.

sinon, entre 2 pages, le tirage au hasard risque d'etre fait (ca depend du cache)

lire le thread Discuter chez rezo.net

@++
_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

irc://irc.freenode.net/spip ou http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip

Michel Jorda a écrit :

Je pense que tu te trompes....
avec les tableaux, selon les boucles que j'ai postées la dernière fois, les ID-ARTICLES sont poussés dans l'ordre de la boucle, et tu affiches ensuite dans ta boucle de pagination, les articles dans l'ordre du tableau.
Aucune raison donc que ça se mélange encore ? D'autant que les 3 boucles étant dans la même page, elles vont etre calculées dans la même passe.
As-tu essayé ? (je suis en formation SPIP justement, donc pas trop le temps).

non, pas besoin, il suffit de reflechir à comment marche spip.
lorsque tu vas appeler la page 2, le cache va etre recalculé (contexte different) et donc l'ordre de ta deuxieme boucle va changer (tu auras bien la page 2, mais d'une autre liste).