From ba72f05849ef2f15e10952c119a9090b4784e300 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=AFeul=20Rouquette?= Date: Mon, 4 Apr 2022 11:22:07 +0200 Subject: [PATCH] Crayonnage des champs. Pour que WHERE des requete SQL multitable fonctionnent correctement, il faut passer par des alias. Cf. https://git.spip.net/spip/spip/issues/5112 --- controleurs/formulaires_reponses_champ.php | 6 +++++- formidable_pipelines.php | 6 +++++- vues/formulaires_reponses_champ.php | 6 +++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/controleurs/formulaires_reponses_champ.php b/controleurs/formulaires_reponses_champ.php index ee55549..c27ae69 100644 --- a/controleurs/formulaires_reponses_champ.php +++ b/controleurs/formulaires_reponses_champ.php @@ -17,7 +17,11 @@ function controleurs_formulaires_reponses_champ_dist($regs, $c = null) { // Mais // 1. Cela ferait une exception // 2. Des gens utilisent peut ĂȘtre pas #VOIR_REPONSE{xxx,edit} - $data = sql_fetsel('*', 'spip_formulaires_reponses_champs JOIN spip_formulaires_reponses JOIN spip_formulaires', "id_formulaires_reponses_champ=$id_formulaires_reponses_champ AND spip_formulaires_reponses.id_formulaires_reponse = spip_formulaires_reponses_champs.id_formulaires_reponse AND spip_formulaires.id_formulaire = spip_formulaires_reponses.id_formulaire"); + $data = sql_fetsel( + '*', + ['spip_formulaires_reponses_champs AS c', 'spip_formulaires_reponses AS r', 'spip_formulaires AS f'], + ["c.id_formulaires_reponses_champ = $id_formulaires_reponses_champ", 'r.id_formulaires_reponse = c.id_formulaires_reponse', 'f.id_formulaire = r.id_formulaire'] + ); $id_formulaires_reponse = $data['id_formulaires_reponse']; diff --git a/formidable_pipelines.php b/formidable_pipelines.php index 4a137d8..e27756a 100644 --- a/formidable_pipelines.php +++ b/formidable_pipelines.php @@ -357,7 +357,11 @@ function formidable_crayons_verifier($flux) { include_spip('inc/saisies'); $id = $flux['args']['id']; $valeur = $flux['args']['content']['valeur']; - $data = sql_fetsel('nom,saisies', 'spip_formulaires_reponses_champs JOIN spip_formulaires_reponses JOIN spip_formulaires', "id_formulaires_reponses_champ=$id AND spip_formulaires_reponses.id_formulaires_reponse = spip_formulaires_reponses_champs.id_formulaires_reponse AND spip_formulaires.id_formulaire = spip_formulaires_reponses.id_formulaire"); + $data = sql_fetsel( + ['nom', 'saisies'], + ['spip_formulaires_reponses_champs AS c', 'spip_formulaires_reponses AS r', 'spip_formulaires AS f'], + ["id_formulaires_reponses_champ = $id", 'r.id_formulaires_reponse = c.id_formulaires_reponse', 'f.id_formulaire = r.id_formulaire'] + ); $saisies = unserialize($data['saisies']); $saisie = saisies_chercher($saisies, $data['nom']); if (saisies_saisie_est_tabulaire($saisie)) { diff --git a/vues/formulaires_reponses_champ.php b/vues/formulaires_reponses_champ.php index 968a694..3d19d37 100644 --- a/vues/formulaires_reponses_champ.php +++ b/vues/formulaires_reponses_champ.php @@ -16,6 +16,10 @@ */ function vues_formulaires_reponses_champ_dist($type, $modele, $id, $content, $wid) { include_spip('formidable_fonctions'); - $data = sql_fetsel('spip_formulaires.id_formulaire, spip_formulaires_reponses.id_formulaires_reponse, nom', 'spip_formulaires_reponses_champs JOIN spip_formulaires_reponses JOIN spip_formulaires', "id_formulaires_reponses_champ=$id AND spip_formulaires_reponses.id_formulaires_reponse = spip_formulaires_reponses_champs.id_formulaires_reponse AND spip_formulaires.id_formulaire = spip_formulaires_reponses.id_formulaire"); + $data = sql_fetsel( + ['f.id_formulaire', 'r.id_formulaires_reponse', 'nom'], + ['spip_formulaires_reponses_champs AS c', 'spip_formulaires_reponses AS r', 'spip_formulaires AS f'], + ["id_formulaires_reponses_champ = $id", 'r.id_formulaires_reponse = c.id_formulaires_reponse', 'f.id_formulaire = r.id_formulaire'] + ); return calculer_voir_reponse($data['id_formulaires_reponse'], $data['id_formulaire'], $data['nom']); }