From c177c93011209d6dbc0151115480d8f62cafedca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ma=C3=AFeul=20Rouquette?= <maieul@maieul.net>
Date: Tue, 10 May 2022 14:05:42 +0200
Subject: [PATCH] =?UTF-8?q?Nouvelle=20option=20passable=20=C3=A0=20l'appel?=
 =?UTF-8?q?=20d'un=20formulaire=20`traiter=5Femail=5Fdestinataires`=20:=20?=
 =?UTF-8?q?re=C3=A7ois=20un=20tableau=20d'emails=20(ou=20une=20liste=20s?=
 =?UTF-8?q?=C3=A9par=C3=A9e=20des=20virgule).=20Se=20compl=C3=A8te=20avec?=
 =?UTF-8?q?=20l'option=20`traiter=5Femail=5Fdestinataires=5Fmethode=5Fmeth?=
 =?UTF-8?q?ode`=20qui=20peut=20=C3=AAtre=20:=20-=20`remplacer`=20pour=20qu?=
 =?UTF-8?q?e=20les=20destinataires=20pass=C3=A9s=20par=20squelettes=20remp?=
 =?UTF-8?q?lacent=20ceux=20de=20config=20-=20`ajouter`=20(valeur=20par=20d?=
 =?UTF-8?q?=C3=A9faut)=20pour=20qu'ils=20viennent=20compl=C3=A9ter=20la=20?=
 =?UTF-8?q?liste.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Exemple d'appel

````

 #FORMULAIRE_FORMIDABLE{coordonnees,#ARRAY{input_1,plop}, #ARRAY{traiter_email_destinataires,22@22.fr,traiter_email_destinataires_methode,remplacer}}

````
---
 traiter/email.php | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/traiter/email.php b/traiter/email.php
index 3aace77a..b26e212f 100644
--- a/traiter/email.php
+++ b/traiter/email.php
@@ -8,7 +8,6 @@ include_spip('inc/utils');
 include_spip('inc/formidable_fichiers');
 
 function traiter_email_dist($args, $retours) {
-
 	// Vérifier si on doit envoyer en cas de modification de réponses
 	if (isset($retours['modification_reponse'])
 			and  $retours['modification_reponse'] == true
@@ -71,6 +70,18 @@ function traiter_email_dist($args, $retours) {
 		$destinataires = array_merge($destinataires, $destinataires_plus);
 	}
 
+	// Les destinataires éventuellement passés au formulaire dans le squelette
+	$traiter_email_destinataires = $args['options_appel']['traiter_email_destinataires'] ?? [];
+	if (!is_array($traiter_email_destinataires)) {
+		$traiter_email_destinataires = explode(',', $traiter_email_destinataires);
+	}
+	$traiter_email_destinataires = array_map('trim', $traiter_email_destinataires);
+	if (($args['options_appel']['traiter_email_destinataires_methode'] ?? 'ajouter') === 'remplacer') {
+		$destinataires = $traiter_email_destinataires;
+	} else {
+		$destinataires = array_merge($destinataires, $traiter_email_destinataires);
+	}
+
 	// On ajoute les destinataires en fonction des choix de saisie dans le formulaire
 	// @selection_1@/choix1 : mail@domain.tld
 	// @selection_1@/choix2 : autre@domain.tld, lapin@domain.tld
-- 
GitLab