pagination et doublons : SPIP ne sait pas faire ?

Soit la situation d'articles qu'on souhaite classer par "période"
par exemple : ceux de moins de 7 jours puis ceux de moins de 15 jours puis ceux du mois etc...

on peut imaginer une première boucle avec critère {age <=7}{doublons} pour avoir les articles des 7 premiers jours
puis une deuxième avec {age<15}{doublons} pour avoir ceux des 8 jours suivant
puis une troisième {age<30}{doublons} puis ceux qui ont entre deux et 4 semaines etc..
etc...

Ça marche très bien et on a un affichage du style

LES ARTICLES DE LA SEMAINE
article 1a
article 1b
article 1c
article 1 d
article 1e
etc...

LES AUTRES ARTICLES DATANT DE MOINS DE 15 JOURS
article 2a
article 2b
article 2c
article 2d
article 2e
etc...

Si on glisse une pagination, ça ne fonctionne plus correctement !!!!
Par exemple si dans la boucle "7 jours" on met {age<=7}{doublons}{pagination 2}
on obtient

LES ARTICLES DE LA SEMAINE
article 1a
article 1b
1|2|3 (<<<-----la pagination)
etc...

LES AUTRES ARTICLES DATANT DE MOINS DE 15 JOURS
article 1c
article 1 d
article 1e
article 2a
article 2b
article 2c
article 2d
article 2e

les articles "paginés" mais non affichés se glissent dans la boucle suivante : tout se passe comme si {doublons} n'affectait que les liens "affichés" et non pas déjà présents (on est d'accord que les résultats paginés ne sont pas tous affichés - c'est bien l'intérêt d'une pagination - mais devraient être pris en compte puisque rattachés à la boucle qui est à leur origine.

C'est quoi : un bug ? Une limite à la pagination ?

manu a écrit :

Soit la situation d'articles qu'on souhaite classer par "période"
par exemple : ceux de moins de 7 jours puis ceux de moins de 15 jours puis ceux du mois etc...

on peut imaginer une première boucle avec critère {age <=7}{doublons} pour avoir les articles des 7 premiers jours
puis une deuxième avec {age<15}{doublons} pour avoir ceux des 8 jours suivant
puis une troisième {age<30}{doublons} puis ceux qui ont entre deux et 4 semaines etc..
etc...

Ça marche très bien et on a un affichage du style

LES ARTICLES DE LA SEMAINE
article 1a
article 1b
article 1c
article 1 d
article 1e
etc...

LES AUTRES ARTICLES DATANT DE MOINS DE 15 JOURS
article 2a
article 2b
article 2c
article 2d
article 2e
etc...

Si on glisse une pagination, ça ne fonctionne plus correctement !!!!
Par exemple si dans la boucle "7 jours" on met {age<=7}{doublons}{pagination 2}
on obtient

LES ARTICLES DE LA SEMAINE
article 1a
article 1b
1|2|3 (<<<-----la pagination)
etc...

LES AUTRES ARTICLES DATANT DE MOINS DE 15 JOURS
article 1c
article 1 d
article 1e
article 2a
article 2b
article 2c
article 2d
article 2e

les articles "paginés" mais non affichés se glissent dans la boucle suivante : tout se passe comme si {doublons} n'affectait que les liens "affichés" et non pas déjà présents (on est d'accord que les résultats paginés ne sont pas tous affichés - c'est bien l'intérêt d'une pagination - mais devraient être pris en compte puisque rattachés à la boucle qui est à leur origine.

C'est quoi : un bug ? Une limite à la pagination ?

_______________________________________________

et si tu rajoutes le critère {age>7} dans ta 2eme boucle ?

Le 10/07/2009 14:58, manu a écrit :

les articles "paginés" mais non affichés se glissent dans la boucle
suivante : tout se passe comme si {doublons} n'affectait que les liens
"affichés" et non pas déjà présents (on est d'accord que les résultats
paginés ne sont pas tous affichés - c'est bien l'intérêt d'une
pagination - mais devraient être pris en compte puisque rattachés à la
boucle qui est à leur origine.

C'est quoi : un bug ? Une limite à la pagination ?

Oui et non ... ni l'un ni l'autre ... ca dépends ... enfin peut-être ... ou pas...

fait un truc dans le genre :
<BOUCLE_article(ARTICLES){age <=7}{doublons septjour}> </BOUCLE_article> // la sélection
<BOUCLE_article(ARTICLES){age <=7}{!doublons septjour}{pagination 2}>#TITRE</BOUCLE_article> // l'affichage

<BOUCLE_article2(ARTICLES){age <=15}{doublons septjour}{doublons quinzejours}> </BOUCLE_article> //selection
<BOUCLE_article2(ARTICLES){age <=15}{!doublons quinzejours}{pagination 2}>#TITRE</BOUCLE_article> //l'affichage

et si tu rajoutes le critère {age>7} dans ta 2eme boucle ?

finalement ... c'est moins co. que ce que j'ai dit ...

Yoann Nogues a écrit :

et si tu rajoutes le critère {age>7} dans ta 2eme boucle ?

finalement ... c'est moins co. que ce que j'ai dit ...

ah ben c'est sûr que ça marche en ce sens que rajouter un critère {agexxxx) supplémentaire contourne l'obstacle et il n'y a plus besoin de {doublons} mais je trouvais le principe initial assez rationnel... au détail près que {doublons} et {pagination} ne font pas bon ménage.
C'est tout de même strange que les éléments paginés (mais non affichés = ceux qui seront affichés en cliqaunt sur les liens de pagination) ne soient pas "stockés" dans leur boucle et apparaissent dans la boucle suivante malgrès {doublons}

manu <manu <at> mine-de-rien.fr> writes:

C'est tout de même strange que les éléments paginés (mais non affichés =
ceux qui seront affichés en cliqaunt sur les liens de pagination) ne
soient pas "stockés" dans leur boucle et apparaissent dans la boucle
suivante malgrès {doublons}

Les doublons ne notent que les contenu effectivement affiches par la boucle.
C'est le principe, depuis toujours (c'etait deja le cas avec les criteres du
type {1/2}, {1,10} ...)
La pagination ne deroge pas à la règle.

Cédric

Hum... ce qui veut dire que si l'on veut que les éléments non affichés dans une boucle paginée soient pris en compte dans {doublons}
il faut faire une succession de boucles du style
<BOUCLE_1exclus(TABLE){critèrede la boucle1}{doublons }></BOUCLE_1exclus>
<BOUCLE1(TABLE){mes criteres}{pagination}>
mon code qui va bien
</BOUCLE1>

puis
  <BOUCLE2(TABLE){mes criteres}{doublons}>
mon code qui va bien
</BOUCLE2>

Pour que la boucle 2 ne puisse pas récupérer des éléments "doublonnés" mais non affichés (= affichés dans une pagination en arrière plan) dans la boucle 1 si c'était elle qui avait {doublons} ?