From eda3619e7e394efac5b6d243af9df2f3b0a52adf Mon Sep 17 00:00:00 2001 From: cy_altern Date: Thu, 30 Sep 2021 22:11:28 +0200 Subject: [PATCH] =?UTF-8?q?ajout=20d'un=20param=C3=A8tre=20suppl=C3=A9ment?= =?UTF-8?q?aire=20au=20tableau=20Tclient=20qu'on=20passe=20au=20charger=20?= =?UTF-8?q?de=20gamumail=20pour=20permette=20de=20mettre=20les=20clients?= =?UTF-8?q?=20en=20cc=20ou=20cci=20plut=C3=B4t=20qu'en=20destinataire=20pr?= =?UTF-8?q?incipal=20du=20mail?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- formulaires/gamumail.php | 28 ++++++++++++++++++++-------- gamumail_fonctions.php | 5 +++-- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/formulaires/gamumail.php b/formulaires/gamumail.php index f4def04..12e1519 100644 --- a/formulaires/gamumail.php +++ b/formulaires/gamumail.php @@ -10,7 +10,8 @@ include_spip('inc/filtres'); * @param string $destinataires = adresses mails et id_auteurs séparées par , ou en array * si un des destinataire est au format numérique, on considère que c'est un id_auteur et on va choper son mail dans spip_auteurs * @param array $Tclient = un ou plusieurs mails de destinataires sortis d'une table objet spécifique - * de la forme []['objet' => 'app_client', 'id_objet' => 3, 'champ' => 'email'] ou ['objet' => 'app_client', 'id_objet' => 3, 'champ' => 'email'] + * de la forme []['objet' => 'app_client', 'id_objet' => 3, 'champ' => 'email', 'copie' => 'cc|cci'] ou ['objet' => 'app_client', 'id_objet' => 3, 'champ' => 'email'] + * le paramètre 'copie' est facultatif : cc ou cci pour mettre un destinataire en copie, '' par défaut = destinataire principal * @param array $Tpdf = un ou plusieurs fichiers PDF générés par spiPDF (le contexte permet la personnalisation du contenu) * []['fichier' => 'pdf_facture', 'nom' => 'facture_123', 'contexte' => ['id_app_facture' => 3]] ou ['fichier' => 'pdf_facture', 'nom' => 'facture_123', 'contexte' => ['id_app_facture' => 3]] * @param string $redirect @@ -21,7 +22,11 @@ include_spip('inc/filtres'); * */ function formulaires_gamumail_charger_dist($slug, $destinataires = 0, $Tclient = [], $Tpdf = [], $redirect = '', $options = []){ + $Tmails = []; + $Tcc = lire_config('gamumail/mail_cc') !== '' ? explode(',', lire_config('gamumail/mail_cc')) : []; + $Tcci = lire_config('gamumail/mail_cci') !== '' ? explode(',', lire_config('gamumail/mail_cci')) : []; + if (!is_array($destinataires)) { $destinataires = explode(',', $destinataires); } @@ -44,8 +49,13 @@ function formulaires_gamumail_charger_dist($slug, $destinataires = 0, $Tclient = $table = table_objet_sql($o['objet']); $id = id_table_objet($o['objet']); $mail = sql_getfetsel("{$o['champ']}", $table, "$id=".intval($o['id_objet'])); + $copie = (isset($o['copie']) and in_array($o['copie'], ['cc', 'cci'])) ? $o['copie'] : false; if (email_valide($mail)) { - $Tmails[] = $mail; + if (!$copie) { + $Tmails[] = $mail; + } else { + $copie == 'cc' ? $Tcc[] = $mail : $Tcci[] = $mail; + } } } } @@ -68,8 +78,8 @@ function formulaires_gamumail_charger_dist($slug, $destinataires = 0, $Tclient = 'sujet' => $gamuMail['sujet'], 'texte' => $gamuMail['texte'], 'pour' => implode(',', $Tmails), - 'cc' => lire_config('gamumail/mail_cc'), - 'cci' => lire_config('gamumail/mail_cci'), + 'cc' => implode(',', $Tcc), + 'cci' => implode(',', $Tcci), 'TFichierpdfs' => $TFichierPdf, 'Tpdfs_ok' => [], 'docs_spip' => $gamuMail['id_docs'], @@ -339,16 +349,18 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient = $corps = $f($corps, $options, $slug, $destinataires); } - // Gestion des variables dans le sujet du mail + // Gestion des variables dans le sujet du mail (spécifiques + génériques) $sujet = pipeline('remplacements_slug',[ - 'args' => $args, - 'data' => $sujet + 'args' => $args, + 'data' => $sujet ]); $sujet = $remplacement_generiques($args, $sujet); +//var_dump($corps);die; + + // envoyer ! $envoyer_mail = charger_fonction('envoyer_mail', 'inc/'); $ok = $envoyer_mail($destinataires, $sujet, $corps); - if (!$ok) { spip_log("Erreur d'envoi du mail : ","gamumail"); spip_log($corps,"gamumail"); diff --git a/gamumail_fonctions.php b/gamumail_fonctions.php index 8c07955..23a230a 100644 --- a/gamumail_fonctions.php +++ b/gamumail_fonctions.php @@ -13,8 +13,9 @@ if (!defined('_ECRIRE_INC_VERSION')) { return; } -function gamumail_TabClient($objet, $id_objet, $champ){ - return compact('objet', 'id_objet', 'champ'); +// retourne un array OK comme élément du paramètre $Tclient passé à gamumail_charger +function gamumail_TabClient($objet, $id_objet, $champ, $copie=''){ + return compact('objet', 'id_objet', 'champ', 'copie'); } function gamumail_supprimer_si_vide($v){