Browse Source

Crayonnage des champs. Pour que WHERE des requete SQL multitable fonctionnent correctement, il faut passer par des alias.

Cf. spip/spip#5112
pull/98/head
Maïeul 6 months ago
parent
commit
ba72f05849
  1. 6
      controleurs/formulaires_reponses_champ.php
  2. 6
      formidable_pipelines.php
  3. 6
      vues/formulaires_reponses_champ.php

6
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'];

6
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)) {

6
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']);
}

Loading…
Cancel
Save