[spip-dev] Bug avec une boucle mots [17275]

Hello,

En SPIP 2.3.0-dev SVN [17275], la boucle mots indique une belle erreur de jointure.

Le cas minimal de reproduction semble être (squelette a.html appelé avec ?page=a&objet=article

<BOUCLE_liste_mot(MOTS){objet}>
#TITRE<br />
</BOUCLE_liste_mot>

Qui génère «Unknown column 'mots.id_breve' in 'on clause'
SELECT mots.titre FROM spip_mots AS `mots` INNER JOIN spip_mots_liens AS L1 ON ( L1.id_objet = mots.id_breve AND L1.objet='breve') WHERE (L1.objet = 'article') GROUP BY mots.id_mot»

le ON est assez ennuyant dans notre cas :slight_smile:

2011/2/20 Matthieu Marcillaud <marcimat@rezo.net>

Hello,

En SPIP 2.3.0-dev SVN [17275], la boucle mots indique une belle erreur de jointure.

Le cas minimal de reproduction semble être (squelette a.html appelé avec ?page=a&objet=article

<BOUCLE_liste_mot(MOTS){objet}>
#TITRE

</BOUCLE_liste_mot>

Qui génère «Unknown column ‹ mots.id_breve › in ‹ on clause ›
SELECT mots.titre FROM spip_mots AS mots INNER JOIN spip_mots_liens AS L1 ON ( L1.id_objet = mots.id_breve AND L1.objet=‹ breve ›) WHERE (L1.objet = ‹ article ›) GROUP BY mots.id_mot»

le ON est assez ennuyant dans notre cas :slight_smile:


MM.


liste: http://listes.rezo.net/mailman/listinfo/spip-dev
doc: http://www.spip.net/
dev: http://trac.rezo.net/trac/spip/
irc://irc.freenode.net/spip

Oui, la dernière version que je trouve ‹ utilisable › pour le moment est la [17247] combiné à [44775] (seul la pagination privée déconne un peu sur cette combinaison).
Les urls publiques ne fonctionnent plus non plus (articleXX ou rubriqueXX ou objetXX, on reste sur sommaire), l’as tu constaté aussi ?

Je crois que c’est à cause des travaux en cours sur declarer_tables_objets_sql, il faut encore un peu d’adaptation des squelettes privés et / ou des déclarations.

Tu reproduis cette erreur SQL également ?
car chez moi je ne la reproduis pas, et là tout devrait être utilisable.

Cédric

2011/2/20 cedric.morin@yterium.com <cedric.morin@yterium.com>

Non... actives le plugin «mediabox» :stuck_out_tongue:

Mais reste qu'il faut corriger le problème :slight_smile:

2011/2/20 Matthieu Marcillaud <marcimat@rezo.net>

2011/2/20 Guy Cesaro <guy.cesaro@gmail.com>

2011/2/20 Matthieu Marcillaud <marcimat@rezo.net>

Oui, sur les pages d’edition d’article/rubrique dans le privé, et sur
les boucles mots dans une page article par exemple (sur l’extension
dist2007). Tu a besoin d’un accès ?

Non… actives le plugin «mediabox» :stuck_out_tongue:

Mais reste qu’il faut corriger le problème :slight_smile:


MM.

!! Ok après install du plugins mediabox et vidange des caches effectivement, y a plus de problèmes ni dans le privé ni dans le public ?! merci !

Par contre, pour les urls, si dans les autres types d’url ça fonctionne (arbo, propre…), en url « page — spip.php?article12 » c’est niet chez moi. Il faut que l’url soit ainsi construite : spip.php?page=article&id_article=12 et ça fonctionne. J’ai pas touché à rien pourtant.

Personne n’a ce soucis d’urls publiques avec la conf en url « page » ?

Et pour les jointures non explicites, c’est juste moi ou bien ? par exemple :
Une boucle documents va chercher une jointure sur spip_mots_liens ?
Par exemple dans le portfolio d’un article :

<BOUCLE_documents_portfolio(DOCUMENTS) {id_article?}{id_rubrique?} {mode=document}{extension IN png,jpg,gif} {par num titre, date}{vu=non}>

donne dans le debug

SELECT 0+documents.titre AS num, documents.date, documents.id_document, L4.mime_type, documents.titre, documents.fichier
FROM spip_documents AS documents
INNER JOIN spip_types_documents AS L4 ON ( L4.extension = documents.extension )
INNER JOIN spip_documents_liens AS L3 ON ( L3.id_document = documents.id_document )
INNER JOIN spip_mots_liens AS L1 ON ( L1.id_objet = documents.id_document AND L1.objet=‹ document ›)
WHERE ((documents.statut = « publie »))
AND (documents.taille > 0 OR documents.distant=‹ oui ›)
AND (L1.id_objet = 2)
AND (L1.objet = ‹ article ›)
AND (documents.mode = ‹ document ›)
AND ((documents.extension IN (‹ png ›,‹ jpg ›,‹ gif ›)))
AND (L3.vu = ‹ non ›)
GROUP BY documents.id_document

ORDER BY num, documents.date

Par contre, celle-ci fonctionnera pour les articles :
<BOUCLE_documents_portfolio(DOCUMENTS articles) {id_article?}{id_rubrique?} {mode=document}{extension IN png,jpg,gif} {par num titre, date}{vu=non}>

Nb : Y a le même soucis genre de soucis avec

<BOUCLE_b(ARTICLES){id_groupe=1}>
#TITRE
</BOUCLE_b>

il faut mettre

<BOUCLE_b(ARTICLES mots_liens){id_groupe=1}>
#TITRE
</BOUCLE_b>

et c’est ok.

Mets à jour 17279. Ça devrait t'enlever quelques épines.

et http://core.spip.org/projects/spip/repository/revisions/17280
doit solder le problème des urls aussi

ouf !
Cédric