[PLUGINS] ~formidable 1.3.6 --> 1.9.1
[lhc/web/www.git] / www / plugins / formidable_1_0 / formulaires / formidable.php
index 4198c46..905b4bf 100644 (file)
@@ -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']);