From 3a270ef48d63b7b40e1232b9c1e2c5c1489e8234 Mon Sep 17 00:00:00 2001
From: "maieul@maieul.net" <>
Date: Sun, 1 Jan 2017 16:01:03 +0000
Subject: [PATCH] =?UTF-8?q?lorsqu'on=20affiche=20le=20formulaire=20=C3=A0?=
 =?UTF-8?q?=20nouveau=20apr=C3=A8s=20qu'il=20ait=20=C3=A9t=C3=A9=20post?=
 =?UTF-8?q?=C3=A9,=20et=20que=20ce=20formulaire=20n'autorise=20pas=20la=20?=
 =?UTF-8?q?modification=20des=20r=C3=A9ponses,=20afficher=20les=20infos=20?=
 =?UTF-8?q?sur=20les=20fichiers=20pr=C3=A9c=C3=A9dements=20envoy=C3=A9s,?=
 =?UTF-8?q?=20comme=20on=20fait=20pour=20les=20autres=20champs?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 formulaires/formidable.php | 47 ++++++++++++++++++++++++++++++++++----
 1 file changed, 42 insertions(+), 5 deletions(-)

diff --git a/formulaires/formidable.php b/formulaires/formidable.php
index b157b52c..62f7e56d 100644
--- a/formulaires/formidable.php
+++ b/formulaires/formidable.php
@@ -176,6 +176,9 @@ function formulaires_formidable_charger($id, $valeurs = array(), $id_formulaires
 	}
 	$contexte['_hidden'] .= "\n" . '<input type="hidden" name="formidable_afficher_apres' /*.$formulaire['id_formulaire']*/ . '" value="' . $formulaire['apres'] . '"/>'; // marche pas
 
+	if ($precharger= _request('_formidable_cvtupload_precharger_fichiers')) {
+		$contexte['cvtupload_precharger_fichiers'] = $precharger;
+	}
 	$contexte['formidable_afficher_apres'] = $formulaire['apres'];
 
 	return $contexte;
@@ -309,11 +312,6 @@ function formulaires_formidable_traiter($id, $valeurs = array(), $id_formulaires
 	$retours['formidable_afficher_apres'] = $formulaire['apres'];
 	$retours['id_formulaire'] = $id_formulaire;
 
-	// lorsqu'on affichera à nouveau le html, dire à cvt-upload de ne pas générer le html pour les résultats des saisies fichiers
-	if ($formulaire['apres']=='formulaire'){
-		set_request('_fichiers', null);
-		set_request('_cvtupload_precharger_fichiers_forcer',true);
-	}
 	// Si on a une redirection valide
 	if (($formulaire['apres'] == 'redirige') and ($formulaire['url_redirect'] != '')) {
 		refuser_traiter_formulaire_ajax();
@@ -416,6 +414,45 @@ function formulaires_formidable_traiter($id, $valeurs = array(), $id_formulaires
 			}
 		}
 	}
+	// lorsqu'on affichera à nouveau le html, dire à cvt-upload de ne pas générer le html pour les résultats des saisies fichiers
+	if ($formulaire['apres']=='formulaire' and isset($retours['fichiers'])) {
+		$formidable_cvtupload_precharger_fichiers = array();
+		set_request('_fichiers', null);
+		set_request('_cvtupload_precharger_fichiers_forcer',true);
+		foreach ($retours['fichiers'] as $champ => $valeur){
+			$i = -1;
+			foreach ($valeur as $id=>$info){
+				$i++;
+				if (isset ($info['fichier'])) {
+					$nom_fichier = $info['fichier'];
+				} else {
+					$nom_fichier = $info['nom'];
+				}
+				if (isset($retours['id_formulaires_reponse'])) {
+					$chemin_fichier = _DIR_FICHIERS_FORMIDABLE
+						."formulaire_".$retours['id_formulaire']
+						."/reponse_".$retours['id_formulaires_reponse']
+						."/".$champ
+						."/".$nom_fichier;
+					$formidable_cvtupload_precharger_fichiers[$champ][$i]['url'] = formidable_generer_url_action_recuperer_fichier($retours['id_formulaire'], $retours['id_formulaires_reponse'], $champ, $nom_fichier);
+					$formidable_cvtupload_precharger_fichiers[$champ][$i]['chemin'] = $chemin_fichier;
+				} elseif (isset($retours['timestamp'])) {
+					$chemin_fichier = _DIR_FICHIERS_FORMIDABLE
+						."timestamp/"
+						.$retours['timestamp']."/"
+						.$champ."/"
+						.$nom_fichier;
+					$formidable_cvtupload_precharger_fichiers[$champ][$i]['chemin'] = $chemin_fichier; 
+					$formidable_cvtupload_precharger_fichiers[$champ][$i]['url'] = formidable_generer_url_action_recuperer_fichier_email(
+						$champ, 
+						$nom_fichier,
+						array('timestamp'=>$retours['timestamp'])
+					);
+				}
+			}
+		}
+		set_request('_formidable_cvtupload_precharger_fichiers', $formidable_cvtupload_precharger_fichiers);
+	}
 	// si aucun traitement, alerter le webmestre pour ne pas perdre les donnees
 	if (!$erreur_texte and !count($retours['traitements'])) {
 		$erreur_texte = "Aucun traitement pour le formulaire $id\n";
-- 
GitLab