[spip-dev] Bug sur le critère vu

Hello,

Je relance ce topic qui date d’une semaine et que nous avons investigué sans succès avec Matthieu.
Il concerne le critère {vu}. Voila la description qu’en a fait Matthieu:

Hello,

SarkaSmel vient de trouver un tit bug en voulant utiliser le critère
{vu=non} d’une boucle document sur une rubrique.

Cela peut donner (ma rubrique 10 contient des documents inclus au texte,
et d’autres non) :

<BOUCLE_un(RUBRIQUES){id
_rubrique=10}>
<BOUCLE_documents_rubrique**(DOCUMENTS){id_rubrique}{vu****=non}>**
#TITRE</a**>**
</BOUCLE_documents_rubrique>
</BOUCLE_un>

Le compilateur génère une requete dont le champ vu est pris sur une
table L2 (spip_documents_articles) au lieu de L1 uniquement
(spip_documents_rubriques) :

SELECT documents.id_document, documents.titre
FROM mutu_naya.spip_documents
AS documents
INNER JOIN mutu_naya.spip_documents _articles
AS L2 ON ( L2.id_document = documents.id_document )
INNER JOIN mutu_naya.spip_documents**_rubriques**
AS L1 ON ( L1.id_document = documents.id_document )
WHERE (documents.mode != ‹ vignette ›)
AND (documents.taille > 0 OR documents.distant=‹ oui ›)
AND (L1.id_rubrique = 10)
AND (L2.vu = ‹ non ›)
GROUP BY documents.id_document

C’est un phénomène qui me dépasse ^^

Hello,

Je relance ce topic

...

<BOUCLE_un(RUBRIQUES){id
_rubrique=10}>
<BOUCLE_documents_rubrique(DOCUMENTS){id_rubrique}{vu=non}>
       <a href="#URL_DOCUMENT">#TITRE</a>
</BOUCLE_documents_rubrique>
</BOUCLE_un>

Le compilateur génère une requete dont le champ vu est pris sur une
table L2 (spip_documents_articles) au lieu de L1 uniquement
(spip_documents_rubriques)

J'ai regardé pourquoi et c'est toujours le meme problème: les squelettes de SPIP se croient malins avec leur syntaxe où la déclaration des jointures n'apparait pas, mais cette rétention d'information a ses limites: parfois on tombe à côté.
Je suis assez pessimiste sur l'avenir de cet aspect des squelettes: ce n'est plus possible d'avoir un langage aussi puissant par bien des aspects mais dans lequel certaines requêtes SQL sont impossibles à écrire. Je crois qu'il faudra y renoncer tôt ou tard.

Committo,Ergo:Sum

Hello,

Si je comprends bien c’est le même problème que celui dont je t’avais parlé avec le nom des groupes de mots.
Bon alors on fait quoi ? On change la boucle en attendant mieux ?

A+
Eric

Yep

Committo,Ergo:Sum