Bonjour,
Pour afficher la liste des articles syndiqués de sites en proposition, j'utilise les jointures et écris ceci :
<BOUCLE_refsites(SYNDIC_ARTICLES spip_syndic){syndic.statut=prop}>
<p>#TITRE</p>
</BOUCLE_refsites>
Résultat vide car au debug on obtient :
SELECT syndic_articles.titre
FROM deco_syndic_articles AS `syndic_articles`
INNER JOIN deco_syndic AS L1
ON ( L1.id_syndic = syndic_articles.id_syndic )
WHERE (L1.statut = 'publie')
AND (syndic_articles.statut = 'publie')
AND (L1.statut = 'prop')
On remarque 2 conditions contradictoires :
(L1.statut = 'publie')
(L1.statut = 'prop')
Donc on se dit que la première est automatique et qu'on pourrait la supprimer par un critère {tout}. J'essaie donc :
<BOUCLE_refsites(SYNDIC_ARTICLES spip_syndic){tout}{syndic.statut=prop}>
Sans plus de résultat.
La page http://www.spip.net/fr_article4250.html montrerait que le critère {tout} ne serait pas implémenté sur la table spip_syndic.
On pourrait utiliser la remarque de fin d'article :
En SPIP 2.0 et en SPIP 2.1 :
Pour faire sauter les dernières restrictions de sélection (“where statut=publie” par exemple) et sélectionner véritablement tous les éléments d’une table, on peut utiliser la notation <BOUCLE_yy(prefixe_table)> où l’on précise en bas de casse le nom exact —préfixe compris— de la table de recherche.
par exemple pour afficher tous les articles quel que soit leur statut (prepa, prop, publie, poubelle, refuse) : <BOUCLE_yy(spip_articles)>
Donc
<BOUCLE_refsites(deco_syndic_articles deco_syndic)>
<li>#ID_SYNDIC : #TITRE</li>
</BOUCLE_refsites>
est OK, mais j'ai tout, même les publiés. Et
<BOUCLE_refsites(deco_syndic_articles deco_syndic){deco_syndic.statut=prop}>
<li>#ID_SYNDIC : #TITRE</li>
</BOUCLE_refsites>
donne une erreur de compilation : Critère inconnu =
N'est-il donc pas possible d'uniformiser le traitement de l'objet syndic avec les autres objets qui disposent d'un champ statut, afin qu'un critère {tout} retire cette contrainte (statut='publie') ?
Merci