[spip-dev] [Agenda vs Compositions] Erreur SQL 1052 en SPIP 3.3

Salut,

je reposte sur spip-dev (initialement posté sur user) avec une précision car “C’est plus compliqué de ça™” : c’est l’activation de Compositions qui déclenche l’erreur. Je suis remonté jusqu’en 2018 dans les révisions de Compositions mais pas mieux…

Quelqu’un reproduit avec simplement Agenda et Compositions ?

Testé depuis avec agenda 4.1.4 et SPIP 3.3.0-dev SVN [24545].

jeanmarie

Ok.

Alors, pas besoin de compositions.

Le problème semble venir de prive/liste/articles.html, utilisé sur le bloc "Dans la même rubrique". Il liste les articles avec le critère {id_?} et {where?} ; id_ développe plusieurs identifiants, dont {id_evenement?} et le {where?} contient 'id_article!=1'.

Le where n’indiquant pas l’alias de table (article.id_article!=1), cela crée pour mysql un champ ambigu.

La solution simple semble être de modifier prive/squelettes/extra/article.html la ligne :

- #SET{where,#VAL{id_article!=}|concat{#ID_ARTICLE}}
+ #SET{where,#VAL{articles.id_article!=}|concat{#ID_ARTICLE}}

Cela dit, le cadre des articles "dans la même rubrique", qui filtre la liste d’articles sur d’autres ids que id_rubrique, je sais pas si c’est une bonne idée en soit.

Et effectivement avant l’introduction du critère `{id_?}` on ne voyait pas entrer `{id_evenement?}` dans cette liste d’articles, donc le bug ne se produit qu’à partir de SPIP 3.3.

MM.

https://git.spip.net/spip/spip/commit/eccd3c8d1e700c3979e0a6aa861432c88e2e3006

Bon, ça c’était pas compliqué.

MM.