From 36036b02892ad8f73c2effd3bda03249d681d317 Mon Sep 17 00:00:00 2001
From: "maieul@maieul.net" <>
Date: Mon, 9 Jan 2017 22:08:51 +0000
Subject: [PATCH] =?UTF-8?q?pouvoir=20ne=20pas=20envoyer=20de=20lien=20vers?=
 =?UTF-8?q?=20les=20fichiers=20dans=20l'accus=C3=A9=20de=20r=C3=A9ception?=
 =?UTF-8?q?=20pour=20se=20faire=20d=C3=A9finir=20=5FFORMIDABLE=5FLIENS=5FF?=
 =?UTF-8?q?ICHIERS=5FACCUSE=5FRECEPTION=20=C3=A0=20false?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 inc/formidable_fichiers.php |  3 +++
 paquet.xml                  |  2 +-
 traiter/email.php           | 38 +++++++++++++++++++++++++++++++++++++
 3 files changed, 42 insertions(+), 1 deletion(-)

diff --git a/inc/formidable_fichiers.php b/inc/formidable_fichiers.php
index b02156a9..1128b0ec 100644
--- a/inc/formidable_fichiers.php
+++ b/inc/formidable_fichiers.php
@@ -20,6 +20,9 @@ if (!defined('_FORMIDABLE_EXPIRATION_FICHIERS_EMAIL')) {
 if (!defined('_FORMIDABLE_EFFACEMENT_FICHIERS_EMAIL')) {
 	define ('_FORMIDABLE_EFFACEMENT_FICHIERS_EMAIL', _FORMIDABLE_EXPIRATION_FICHIERS_EMAIL); // Au bout de combien de temps efface-t-on les fichiers enregistrés lorsque le traitement est uniquement email? 
 }
+if (!defined('_FORMIDABLE_LIENS_FICHIERS_ACCUSE_RECEPTION')) {
+	define('_FORMIDABLE_LIENS_FICHIERS_ACCUSE_RECEPTION', true); // mettre à false si on ne veut pas de lien vers les fichiers dans l'accusé de réception
+}
 /** 
  * Créer, si le formulaire contient des saisies de type fichiers, un dossier pour stocker les fichiers.
  * Vérifier que ce dossier soit accessible en écriture.
diff --git a/paquet.xml b/paquet.xml
index 9d52c2ea..56238130 100644
--- a/paquet.xml
+++ b/paquet.xml
@@ -1,7 +1,7 @@
 <paquet
 	prefix="formidable"
 	categorie="communication"
-	version="3.0.3"
+	version="3.1.0"
 	etat="stable"
 	compatibilite="[3.0.0;3.1.*]"
 	logo="images/formidable-64.png"
diff --git a/traiter/email.php b/traiter/email.php
index c03a7e1c..0a1f865b 100644
--- a/traiter/email.php
+++ b/traiter/email.php
@@ -234,6 +234,9 @@ function traiter_email_dist($args, $retours) {
 			}
 
 			// On génère l'accusé de réception
+			if (_FORMIDABLE_LIENS_FICHIERS_ACCUSE_RECEPTION == false) {
+				$valeurs = vues_saisies_supprimer_action_recuperer_fichier_par_email($saisies,$valeurs);
+			}
 			$html_accuse = recuperer_fond(
 				$accuse,
 				array(
@@ -410,6 +413,41 @@ function ajouter_action_recuperer_fichier_par_email($saisie_a_modifier, $nom_sai
 	}
 	return $saisie_a_modifier;
 }
+/**
+ * Supprime dans une vue de saisie 'fichiers'
+ * l'url de récupération par email
+ * et l'information sur le délai d'expiration
+ * @param array $vue 
+ * @return array $vue 
+**/
+function supprimer_action_recuperer_fichier_par_email($vue) {
+	foreach ($vue as $f => &$desc){
+		if (isset($desc['url'])) {
+			unset($desc['url']);
+		}
+		$desc['nom'] = $desc['fichier'];
+	}
+	return $vue;
+}
+
+/**
+ * Dans l'ensemble de vues des saisies
+ * recherche les saisies 'fichiers'
+ * et supprime pour chacune d'entre elle les actions de récupération de fichier
+ * @param array $saisies
+ * @param array $vues
+ * @return array $vues
+**/
+function
+vues_saisies_supprimer_action_recuperer_fichier_par_email($saisies, $vues) {
+	foreach ($saisies as $saisie=>$description){
+		if ($description['saisie'] == 'fichiers') { // si de type fichiers
+			$nom_saisie = $description['options']['nom']; 
+			$vues[$nom_saisie] = supprimer_action_recuperer_fichier_par_email($vues[$nom_saisie]);
+		}
+	}
+	return $vues;
+}
 /**
  * Retourne des secondes sous une jolie forme, du type xx jours, yy heures, zz minutes, aa secondes
  * @param int $seconde
-- 
GitLab