Skip to content
Extraits de code Groupes Projets
Valider 7757e831 rédigé par Maïeul's avatar Maïeul
Parcourir les fichiers

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.
2. 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.
parent 6f7d0d2f
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -12,26 +12,19 @@ function controleurs_formulaires_reponses_champ_dist($regs, $c = null) { ...@@ -12,26 +12,19 @@ function controleurs_formulaires_reponses_champ_dist($regs, $c = null) {
list(,$crayon, $type, $champ, $id) = $regs; list(,$crayon, $type, $champ, $id) = $regs;
$id_formulaires_reponses_champ = $regs[4]; $id_formulaires_reponses_champ = $regs[4];
// Cas 1. On est sur un champ déjà enregistreé
if (strpos($id_formulaires_reponses_champ, 'new') === false) {
// Recuperer id_formulaires_reponse et id_formulaire // Recuperer id_formulaires_reponse et id_formulaire
// Note, sans doute pourrait-on passer directement cela en classe // Note, sans doute pourrait-on passer directement cela en classe
// Mais // Mais
// 1. Cela ferait une exception // 1. Cela ferait une exception
// 2. Des gens utilisent peut être pas #VOIR_REPONSE{xxx,edit} // 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('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"); $id_formulaires_reponse = $data['id_formulaires_reponse'];
$nom = $data['nom'];
$valeur = $data['valeur'];
} else {
$valeur = '';
preg_match('#new-(.*)-(.*)#', $id_formulaires_reponses_champ, $match);
$nom = $match[1];
$id_formulaires_reponse = $match[2];
$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");
}
$nom = $data['nom'];
$valeur = $data['valeur'];
$saisie = saisies_chercher(unserialize($data['saisies']), $nom); $saisie = saisies_chercher(unserialize($data['saisies']), $nom);
$valeur = $data['valeur'];
$n = new Crayon( $n = new Crayon(
$type . '-valeur-' . $id_formulaires_reponses_champ, $type . '-valeur-' . $id_formulaires_reponses_champ,
......
...@@ -102,7 +102,7 @@ function calculer_voir_reponse($id_formulaires_reponse, $id_formulaire, $nom, $s ...@@ -102,7 +102,7 @@ function calculer_voir_reponse($id_formulaires_reponse, $id_formulaire, $nom, $s
if (isset($reponses_valeurs[$id_formulaires_reponse][$nom]['id'])) { if (isset($reponses_valeurs[$id_formulaires_reponse][$nom]['id'])) {
$valeur = $reponses_valeurs[$id_formulaires_reponse][$nom]['id']; $valeur = $reponses_valeurs[$id_formulaires_reponse][$nom]['id'];
} else { } else {
$valeur = "new-$nom-$id_formulaires_reponse"; $valeur = sql_insertq('spip_formulaires_reponses_champs', array('id_formulaires_reponse' => $id_formulaires_reponse, 'nom' => $nom));
} }
return 'crayon '.'formulaires_reponses_champ-valeur-'. $valeur; return 'crayon '.'formulaires_reponses_champ-valeur-'. $valeur;
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter