{!id_mot} sous SPIP 3.0.10 ne fonctionne pas
Soit le système de boucle suivant :
<BOUCLE_m(MOTS){id_mot}> <BOUCLE_a(ARTICLES){!id_mot}> #TITRE </BOUCLE_a> </BOUCLE_m>
Sous SPIP2.1 cela m'affichait bien les articles qui n'avaient pas le mot passé en contexte :
SELECT articles.titre, articles.lang FROM spip_articles AS
articles INNER JOIN spip_mots_articles AS L1 ON ( L1.id_article = articles.id_article ) WHERE (articles.statut = 'publie') AND (articles.date < '2138-01-01 00:00:00') AND NOT((L1.id_mot = 6))
Sous SPIP 3.0.10 [20705, en tag], cela ne fonctionne pas :
SELECT articles.titre, articles.lang FROM spip_articles AS
articles INNER JOIN spip_mots_liens AS L1 ON ( L1.id_objet = articles.id_article AND L1.objet='article') WHERE (articles.statut = 'publie') AND NOT((L1.id_mot = 1)) GROUP BY articles.id_article
En revanche le code suivant
<BOUCLE_m(MOTS){id_mot}> <BOUCLE_a(ARTICLES){!id_mot=#ID_MOT}> #TITRE </BOUCLE_a> </BOUCLE_m>
fonctionne :
SELECT articles.titre, articles.lang FROM spip_articles AS
articlesWHERE (articles.statut = 'publie') AND NOT((articles.id_article IN ( SELECT L1.id_objet AS id FROM spip_mots_liens AS
L1 WHERE (L1.id_mot = 1) AND L1.objet='article'))) GROUP BY articles.id_article