[spip-dev] [3.1] Debug impossible

Bonjour,

Soit le squelette suivant :
<ul>
<BOUCLE_Articles_Exclus(ARTICLES spip_mots_liens spip_mots){id_objet=#ID_RUBRIQUE}{objet=rubrique}{mots.titre=PasDansQuoiDeNeuf}{lang}>
<li>#ID_ARTICLE #TITRE</li>
</BOUCLE_Articles_Exclus>
</ul>

J'ai 2 erreurs affichées :
Numéro Message squelette boucle Ligne
1 Critère inconnu = squelettes/tp.html _Articles_Exclus 2
2 Critère inconnu = squelettes/tp.html _Articles_Exclus

Mais quand je clique en mode debug sur résultat, ça me réaffiche cette erreur au lieu de me montrer la requête SQL qu'il essait de faire.

PS : En SPIP 2.1, la boucle qui fonctionnait :
<BOUCLE_Articles_Exclus(ARTICLES mots_rubriques mots){mots.titre=PasDansQuoiDeNeuf}{doublons}{lang} />

Ta boucle ne peut pas marcher.
En 2.1 tu forçait la jointure sur mots_rubriques et ça marchait en prenant id_rubrique de la table spip_articles car c'est la seule clé qui fonctionnait.

En 3.x tu force la jointure sur mots_liens et ça prendra obligatoirement un id_objet=id_article AND objet='article' en joignant donc sur la clé primaire id_article.
Ta syntaxe est fausse car avec {id_objet=#ID_RUBRIQUE} tu veux référer le champ id_rubrique de la table spip_articles mais en fait la balise reference le #ENV{id_rubrique} et rien d'autre.
Et tu ne peux pas faire ce que tu faisais en 2.1 sans ecrire un critère spécique qui fera la jointure sur la clé id_rubrique au lieu de la faire sur id_article.

Ça ne répond pas à ta question initiale, mais c'est déjà ça...

RealET a écrit:

Le 10/06/2015 19:14, Cédric Morin a écrit :> Ta boucle ne peut pas marcher.
> En 2.1 tu forçait la jointure sur mots_rubriques et ça marchait en
> prenant id_rubrique de la table spip_articles car c'est la seule clé qui
> fonctionnait.
>
> En 3.x tu force la jointure sur mots_liens et ça prendra obligatoirement
> un id_objet=id_article AND objet='article' en joignant donc sur la clé
> primaire id_article.
> Ta syntaxe est fausse car avec {id_objet=#ID_RUBRIQUE} tu veux référer
> le champ id_rubrique de la table spip_articles mais en fait la balise
> reference le #ENV{id_rubrique} et rien d'autre.
> Et tu ne peux pas faire ce que tu faisais en 2.1 sans ecrire un critère
> spécique qui fera la jointure sur la clé id_rubrique au lieu de la faire
> sur id_article.
>
> Ça ne répond pas à ta question initiale, mais c'est déjà ça...
Merci beaucoup pour cette piste.

Ce qui est très déstabilisant, c'est d'avoir une erreur affichée alors que je suis sensé utiliser le mode debug.
C'était aussi l'objet de mon message initial.
Il me semble que l'erreur ne devrait pas être affichée ainsi, en masquant le mode debug.

Sur faire le critère, je vais essayer, mais si tu as une piste évidente à me donner, je suis preneur :wink: