titre mot
Bonjour,
La boucle suivante
<BOUCLE_art(ARTICLES) {id_rubrique=242} {titre_mot=diffusion_professeurs} {!titre_mot IN mediathèque,affiche} {par titre}{doublons special}
qui devrait sélectionner tout les articles de la rubrique 242 avec le mot clef diffusion_professeurs mais pas le mot clef médiathèque ou affiche ne fonctionne pas en SPIP3
en 2.1.14 j'obtiens bien ce qu'attendu et la requete suivante:
spip
.spip_articles AS articles
INNER JOIN spip
.spip_mots_articles AS L1 ON ( L1.id_article =
articles.id_article )
INNER JOIN spip
.spip_mots AS L2 ON ( L2.id_mot = L1.id_mot )
WHERE (articles.statut = 'publie')
AND (articles.date < '2138-01-01 00:00:00')
AND (articles.id_rubrique = 242)
AND (L2.titre = 'diffusion_professeurs')
AND NOT(
(articles.id_article IN
( SELECT L3.id_article
FROM spip
.spip_mots_articles AS L3
INNER JOIN spip
.spip_mots AS L4 ON ( L4.id_mot = L3.id_mot )
WHERE ((L4.titre IN ('mediathèque','affiche')))))
)
GROUP BY articles.id_article ORDER BY articles.titre
SELECT articles.id_article, articles.titre, articles.texte,
articles.id_rubrique, articles.lang
FROM en 3.0.1 ça donne cette requète:
SELECT articles.id_article, articles.titre, articles.texte,
articles.id_rubrique, 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')
INNER JOIN spip_mots AS L2 ON ( L2.id_mot = L1.id_mot )
WHERE (articles.statut = 'publie')
AND (articles.id_rubrique = 242)
AND (L2.titre = 'diffusion_professeurs')
AND NOT(
(articles.id_article IN
( SELECT L3.id_objet AS id
FROM spip_mots_liens AS L3
INNER JOIN spip_mots AS L4 ON ( L4.id_mot = L3.id_mot )
INNER JOIN spip_mots_liens AS L1 ON ( L1.id_objet =
articles.id_article )
WHERE ((L4.titre IN ('mediathèque','affiche')))
AND L1.objet='article'
AND L3.objet='article'))
)
GROUP BY articles.id_article ORDER BY articles.titre
et le message Unknown column 'articles.id_article' in 'on clause'.
Bon courage.