Bonjour,
Je suis tombé sur le problème avec le plugin agenda qui a une boucle dans agenda-ical.html :
<BOUCLE_evenement2_branche(EVENEMENTS) {branche?}{id_article?}{id_mot?}{statut=publie}{par date_fin} {age_fin<=0} {0,50} {doublons}>
Le code SQL généré quand il n'y a pas de id_rubrique dans l'URL est :
SELECT evenements.date_fin, evenements.titre, evenements.id_evenement, evenements.date_debut, evenements.horaire, evenements.id_article, evenements.descriptif, evenements.lieu, evenements.date_creation, evenements.maj
FROM spip_evenements AS `evenements`
INNER JOIN spip_articles AS L1 ON ( L1.id_article = evenements.id_article )
WHERE ((L1.id_rubrique IN (0,626,630,636,644,647,666,681,923,627,629,648,652,653,624,631,635,926,927,638,645,673,680,825,924,925)))
AND (evenements.statut = 'publie')
AND (TIMESTAMPDIFF(HOUR,evenements.date_fin,NOW())/24 <= 0)
GROUP BY evenements.id_evenement
ORDER BY evenements.date_fin
LIMIT 0,50
Si j'enlève {branche?}
Le code se simplifie en :
SELECT evenements.date_fin, evenements.titre, evenements.id_evenement, evenements.date_debut, evenements.horaire, evenements.id_article, evenements.descriptif, evenements.lieu, evenements.date_creation, evenements.maj
FROM spip_evenements AS `evenements`
WHERE (evenements.statut = 'publie')
AND (TIMESTAMPDIFF(HOUR,evenements.date_fin,NOW())/24 <= 0)
GROUP BY evenements.id_evenement
ORDER BY evenements.date_fin
LIMIT 0,50
Pourquoi est-ce que {branche?} produit un code SQL alors que les autres ne produisent rien ?
PS : ce "bug" fait disparaître les événements des pages uniques (du plugin de même nom)
PS² : j'ai un patch violent qui doublonne les 3 boucle en les entourant d'une boucle condition :
<BOUCLE_Branche(AUTEURS){si #ENV{id_rubrique}}{0,1}>