X-Git-Url: http://git.cyclocoop.org/?p=lhc%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fplugins%2Fformidable_1_0%2Fformulaires%2Fformidable.php;fp=www%2Fplugins%2Fformidable_1_0%2Fformulaires%2Fformidable.php;h=905b4bf1e7939b223b33e80c87a81461415e5cd0;hp=4198c4682596725e32514b82fc2dfd6033e46b8e;hb=3b34d0137e672387909494967123983d45db1ffd;hpb=e302f5262d689fd50b5d8ed424ab1cb71f837751 diff --git a/www/plugins/formidable_1_0/formulaires/formidable.php b/www/plugins/formidable_1_0/formulaires/formidable.php index 4198c468..905b4bf1 100644 --- a/www/plugins/formidable_1_0/formulaires/formidable.php +++ b/www/plugins/formidable_1_0/formulaires/formidable.php @@ -43,15 +43,17 @@ function formulaires_formidable_charger($id_formulaire, $valeurs=array(), $id_fo // On cherche si le formulaire existe if ($formulaire = sql_fetsel('*', 'spip_formulaires', $where)) { - // on ajoute un point d'entrée avec les infos de ce formulaire + // On ajoute un point d'entrée avec les infos de ce formulaire // pour d'eventuels plugins qui en ont l'utilité - $contexte += array('_formidable' => $formulaire); + $contexte['_formidable'] = $formulaire; + // Est-ce que la personne a le droit de répondre ? if (autoriser('repondre', 'formulaire', $formulaire['id_formulaire'], null, array('formulaire'=>$formulaire))){ $saisies = unserialize($formulaire['saisies']); $traitements = unserialize($formulaire['traitements']); - // On déclare les champs - $contexte += array_fill_keys(saisies_lister_champs($saisies), ''); + + // On déclare les champs avec les valeurs par défaut + $contexte = array_merge(saisies_lister_valeurs_defaut($saisies), $contexte); $contexte['mechantrobot'] = ''; // On ajoute le formulaire complet $contexte['_saisies'] = $saisies; @@ -72,7 +74,7 @@ function formulaires_formidable_charger($id_formulaire, $valeurs=array(), $id_fo } } - // On regarde si maintenant on a un tableau + // Si on a un tableau, alors on écrase avec les valeurs données depuis l'appel if ($valeurs and is_array($valeurs)){ $contexte = array_merge($contexte, $valeurs); } @@ -91,13 +93,15 @@ function formulaires_formidable_charger($id_formulaire, $valeurs=array(), $id_fo } else { // calcul des paramètres d'anonymisation + $options = isset($traitements['enregistrement']) ? $traitements['enregistrement'] : null; + $anonymisation = (isset($options['anonymiser']) && $options['anonymiser'] == true) ? isset($options['anonymiser_variable']) ? $options['anonymiser_variable'] : '' : ''; // Si multiple = non mais que c'est modifiable, alors on va chercher // la dernière réponse si elle existe - if ($options = $traitements['enregistrement'] + if ($options and !$options['multiple'] and $options['modifiable'] and $reponses = formidable_verifier_reponse_formulaire($formulaire['id_formulaire'], $options['identification'], $anonymisation) @@ -205,8 +209,7 @@ function formulaires_formidable_verifier($id_formulaire, $valeurs=array(), $id_f * Tableau des erreurs **/ function formulaires_formidable_traiter($id_formulaire, $valeurs=array(), $id_formulaires_reponse=false){ - $retours = array(); - + $retours = array(); $id_formulaire = intval(_request('id_formulaire')); $formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = '.$id_formulaire); $traitements = unserialize($formulaire['traitements']);