Différence de tri entre {id_patate IN ...} et {id_patate?}
Avec un critère {id_patate IN ...}, le compilateur ajoute un ORDER BY FIELD(id_patate,...) à la requête, du coup les résultats sont triés dans l'ordre du IN : joie.
En revanche, avec un critère optionnel {id_patate?} et un array dans l'environnement, ça fait bien un IN dans la requête par contre il n'y a pas ORDER BY et on perd l'ordre de tri : tristesse.
Dans les 2 cas, on devrait avoir cet ORDER BY FIELD fort pratique.
Exemples :
<BOUCLE_joie(ARTICLES){id_article IN 3,1,2}>
SELECT articles.id_article, articles.lang, articles.titre FROM spip_articles AS `articles` WHERE (articles.statut = 'publie') AND ((articles.id_article IN (3,1,2))) ORDER BY FIELD(articles.id_article,3,1,2)
<BOUCLE_tristesse(ARTICLES){id_article?}>
SELECT articles.id_article, articles.lang, articles.titre FROM spip_articles AS `articles` WHERE (articles.statut = 'publie') AND ((articles.id_article IN (3,1,2)))
Testé en SPIP 3.1.3
Modification effectuée par JamesRezo