Bonjour à tous,
J'ai déjà envoyé un message sur spip.user qui n'a pas eu beaucoup de succès
et comme ce que j'ai découvert ressemble à un petit bug (en tout cas un
comportement qui n'est pas documenté), je le rapporte ici.
Voir http://thread.gmane.org/gmane.comp.web.spip.user/128423 pour le message
originel.
J'ai remarqué sur Spip stable (1.9.2d par ex.), que le critère conditionnel
{recherche ?} a un comportement étrange quand la recherche passée en
contexte ne donne pas de résultat :
en effet, si le(s) mot(s) passé(s) dans le contexte de recherche
(#ENV{recheche}) n'existe(ent) pas dans le site, les boucles qui utilisent
{recherche ?} retournent l'ensemble des objets au lieu d'aucun ! Alors que
si ce qui est passé en contexte existe sur le site, la boucle renvoie bien
seulement les objets dans lesquels la recherche a été fructueuse.
Ex:
<BOUCLE_Articles(ARTICLES){recherche?}{"<br>"}>
<a href="#URL_ARTICLE">#TITRE</a>
</BOUCLE_Articles>
Retourne tous les articles de la base si on passe en
contexte «recherche=dkjsbv» (qu'on a aucune chance de trouver sur le
site... enfin sur la plupart en tout cas !). Alors que cette boucle ne
devrait retourner aucun article. Mais un contexte
contenant «recherche=spip» donnera bien une sélection de résultats
pertinents.
Est-ce que quelqu'un avait déjà remarqué ça ? Si oui, avez-vous un moyen
joli de contourner ce problème (en évitant de multiplier les boucles, ce
qui était l'objectif des critères conditionnels) ?