Salut,
j'ai vue cela il y a pas longtemps avec la 1.9.2 et viens de tester sur la 2.0. Il faut que j'essaie avec une vieille version pour voir si c'est cassé "recemment" ou si ca a toujours été comme cela et c'est la doc qui ne va pas.
Pour le critère {a,n-b}, la documentation dit:
"
{a,n-b} à partir de [SPIP 1.8], est une variante de {a,b} qui limite l’affichage en fonction du nombre de résultats dans la boucle. a est le résultat à partir duquel commencer à faire l’affichage ; b indique le nombre de résultats à ne pas afficher à la fin de la boucle.
{0,n-10} affichera tous les résultats de la boucle sauf les 10 derniers.
"
{0,n-10} marche bien, mais si on commence après 0, il y a un problème.
Disons que j'ai 35 résultats dans ma boucle sans {a,n-b}:
<B_test>
#TOTAL_BOUCLE<br/>
<BOUCLE_test(ARTICLES) {id_rubrique=22} {"<br/>"}>
#COMPTEUR_BOUCLE - #TITRE
</BOUCLE_test>
je vais voir:
35
1 - Flickr Photo Compass 0.9
2 - Flickr More info in mails 0.6
3 - Flickr, Move Additional Info on top 0.3
...
30 - Aider à traduire les scripts pour Flickr
31 - Flickr Interestingness Rapide
32 - Pagination Automatique Flickr 0.9
33 - Flickr Plus d’info dans les mails
34 - Flickr: Buddy Last Activity
35 - Flickr: Comentários Rápidos
Maintenant, je limite la boucle:
<B_test2>
#TOTAL_BOUCLE<br/>
<BOUCLE_test2(ARTICLES) {id_rubrique=22} {"<br/>"} {30,n-1}>
#COMPTEUR_BOUCLE - #TITRE
</BOUCLE_test2>
pour n'afficher qu'à partir du 30e résultat mais ne pas afficher le dernier (le 35e). C'est là que ça bug, ce que SPIP retourne est:
5
31 - Flickr Interestingness Rapide
32 - Pagination Automatique Flickr 0.9
33 - Flickr Plus d’info dans les mails
34 - Flickr: Buddy Last Activity
35 - Flickr: Comentários Rápidos
pour que ça marche, je dois mettre {30,n-31}. Dans un cas général, il faut écrire le critère: {a, n-(a+b)} pour que le critère marche correctement:
4
31 - Flickr Interestingness Rapide
32 - Pagination Automatique Flickr 0.9
33 - Flickr Plus d’info dans les mails
34 - Flickr: Buddy Last Activity
On remarquera aussi que #COMPTEUR_BOUCLE commence à 31 et non à 1 si on utilise une limite de ce genre.
Alors, le critère marche dans un sens, mais c'est vraiment pas intuitif et ça va à l'encontre de la doc.
Ca ne doit pas être un code très neuf vue l'historique de http://trac.spip.org/trac/spip/log/spip/ecrire/public/compiler.php
et personne ne s'est plaint avant à ce que je sache, alors peut etre que personne n'utilise vraiment ça.
Pierre