Changeset 124316 in spip-zone


Ignore:
Timestamp:
Apr 24, 2020, 1:58:01 PM (3 months ago)
Author:
Maïeul Rouquette
Message:

On revient totalement sur la manière de gérer les crayons pour des
champs qui n'existeraient pas encore en base pour une réponse donnée.

Partant du constat

  1. Que lorsque formidable reçoit une réponse vide (soit par

afficher_si, soit par non remplissage) pour un champ donné, il insère ce
champ en base quand même.

  1. Que les seuls cas où le champ non rempli n'est pas présent en base

pour une réponse donnée, c'est quand il a été ajouté dans le formulaire
après l'enregistrement de la réponse.

Il ne paraît pas gênant lorsqu'on appel un crayon sur un champ
inexistant en base pour une réponse donnée de le créer en base, cela
revient juste à faire 1.

Location:
_plugins_/formidable/branches/issue21
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/formidable/branches/issue21

    • Property subgit:lock:6f7d0d2fe141158dbc37701a9695b2ee8f022025 deleted
    • Property subgit:lock:7757e8319b2e7a79353319a97b8fa847599caf9c set to 2020-04-24T15:59:15.526
  • _plugins_/formidable/branches/issue21/controleurs/formulaires_reponses_champ.php

    r124315 r124316  
    1313        $id_formulaires_reponses_champ = $regs[4];
    1414
    15         // Cas 1. On est sur un champ déjà enregistreé
    16         if (strpos($id_formulaires_reponses_champ, 'new') === false) {
    1715        // Recuperer id_formulaires_reponse et id_formulaire
    1816        // Note, sans doute pourrait-on passer directement cela en classe
     
    2018        // 1. Cela ferait une exception
    2119        // 2. Des gens utilisent peut être pas #VOIR_REPONSE{xxx,edit}
    22                 //
    23                 $data = sql_fetsel('saisies, nom, valeur', '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");
    24                 $nom = $data['nom'];
    25                 $valeur = $data['valeur'];
    26         } else {
    27                 $valeur = '';
    28                 preg_match('#new-(.*)-(.*)#', $id_formulaires_reponses_champ, $match);
    29                 $nom = $match[1];
    30                 $id_formulaires_reponse = $match[2];
    31                 $data = sql_fetsel('saisies', 'spip_formulaires_reponses JOIN spip_formulaires', "id_formulaires_reponse=$id_formulaires_reponse  AND spip_formulaires.id_formulaire = spip_formulaires_reponses.id_formulaire");
    32         }
     20        $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");
     21        $id_formulaires_reponse = $data['id_formulaires_reponse'];
    3322
     23
     24        $nom = $data['nom'];
     25        $valeur = $data['valeur'];
    3426        $saisie = saisies_chercher(unserialize($data['saisies']), $nom);
     27        $valeur = $data['valeur'];
    3528
    3629        $n = new Crayon(
  • _plugins_/formidable/branches/issue21/formidable_fonctions.php

    r124315 r124316  
    103103                        $valeur = $reponses_valeurs[$id_formulaires_reponse][$nom]['id'];
    104104                } else {
    105                         $valeur = "new-$nom-$id_formulaires_reponse";
     105                        $valeur = sql_insertq('spip_formulaires_reponses_champs', array('id_formulaires_reponse' => $id_formulaires_reponse, 'nom' => $nom));
    106106                }
    107107                return 'crayon '.'formulaires_reponses_champ-valeur-'. $valeur;
Note: See TracChangeset for help on using the changeset viewer.