From c72d52867f0c90b26274f5d0447b0701223dcefd Mon Sep 17 00:00:00 2001 From: tofulm Date: Tue, 25 May 2021 09:23:53 +0200 Subject: [PATCH] On peut ajouter une tableau de pieces_jointes : $options['pieces_jointes'][] = [ 'chemin' => 'tmp/cache/toto.xls', 'nom' => 'toto.xls', 'encodage' => 'base64', 'mime' => 'application/vnd.ms-excel' ] --- inc/envoyer_gamumail.php | 45 ++++++++++++++++++++++++++-------------- paquet.xml | 2 +- 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/inc/envoyer_gamumail.php b/inc/envoyer_gamumail.php index 68ddb55..c0e571c 100644 --- a/inc/envoyer_gamumail.php +++ b/inc/envoyer_gamumail.php @@ -3,24 +3,31 @@ if (!defined('_ECRIRE_INC_VERSION')){ return; } -/** +/* * fonction pour préparer et envoyer un mail basé sur un slug gamumail - * + * * @param string $slug * @param string|array $destinataires = adresses mails et id_auteur 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 $options : * $options['debug' => true] pour afficher le $corps final sans envoyer le mail * $options['cci' => true] pour passer les destinataires en cci si il y en a plus qu'un - * $options['pdfs' => [...]] array des fichiers PDF générés à attacher dont les éléments peuvent être : - * - soit un nom de squelette PDF + * $options['pdfs' => [...]] array des fichiers PDF générés à attacher dont les éléments peuvent être : + * - soit un nom de squelette PDF * - soit un array avec 3 éléments (seul le 1er est obligatoire): * [ 'fichier' => 'squelette_PDF', * 'contexte' => ['parametre_url_1' => 'valeur_1', 'parametre_url_2' => 'valeur_2', ...] * 'nom' => 'nom_fichier_attache' ] - * $options['args' => ['param_1' => 'valeur_1, 'param_2' => 'valeur_2', ...]] - * - **/ + * $options['pieces_jointes'][] = [ + * 'chemin' => 'tmp/cache/toto.xls', + * 'nom' => 'toto.xls', + * 'encodage' => 'base64', + * 'mime' => 'application/vnd.ms-excel' + * ] + * ] + * $options['args' => ['param_1' => 'valeur_1, 'param_2' => 'valeur_2', ...]] + * + */ function inc_envoyer_gamumail($slug, $destinataires, $options = []) { include_spip('inc/texte'); include_spip('classes/facteur'); @@ -32,7 +39,7 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) { $retour['message_erreur'] = _T("gamumail:erreur_format_slug"); return $retour; } - + // contenus du slug $res = sql_fetsel('*', 'spip_gamumails', 'slug = "'.$slug.'"'); if ($res) { @@ -92,7 +99,7 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) { $extension = $Tdocument['extension']; if ($Tdocument['titre']) { $nom_fichier = $Tdocument['titre'] .".".$extension; - } + } else { $nom_fichier = basename($Tdocument['fichier']); } @@ -105,6 +112,14 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) { ]; } } + // les docs attachés + if (isset($options['pieces_jointes'])) { + if (is_array($options['pieces_jointes'])) { + foreach ($options['pieces_jointes'] as $Tpj) { + $pieces_jointes[] = $Tpj; + } + } + } // les pdfs $Tpdf_dell = []; @@ -116,7 +131,7 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) { $Tpdfs = array_filter($Tpdfs, function($p) { return $p != ''; }); - // approximation pour passage dans les fonctions traiter_av_pdf() : + // approximation pour passage dans les fonctions traiter_av_pdf() : // si plusieurs destinataires dans $pour[], on utilise le premier comme 2ème arg ($auteur) if ($f = charger_fonction('traiter_av_pdf', 'gamumail', true)) { $options = $f($options, $pour[0], [], $Tpdfs); @@ -158,7 +173,7 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) { $html_header = ''; if (find_in_path('gamumail/'.$slug .'_html_header.html')) { $html_header = recuperer_fond('gamumail/'.$slug . '_html_header', $options); - } + } elseif(find_in_path('gamumail/html_header.html')) { $html_header = recuperer_fond('gamumail/html_header', $options); } @@ -168,7 +183,7 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) { } elseif (find_in_path('gamumail/html_footer.html')) { $html_footer = recuperer_fond('gamumail/html_footer', $options); - } + } $html = $html_header . $html . $html_footer; // pipeline pour les remplacements du contenu des slugs spécifiques de chaque plugins @@ -179,7 +194,7 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) { 'args' => $args, 'data' => $html )); - + // traitement des remplacements génériques fournis par Gamumail $remplacement_generiques = charger_fonction('gamumail_remplacements', 'inc'); $html = $remplacement_generiques($args, $html); @@ -197,7 +212,7 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) { if ($f = charger_fonction('traiter', 'gamumail', true)) { $corps = $f($corps, $options, $slug, $auteur, $Tclient, $Tpdf, $redirect); } -*/ +*/ // appel d'une éventuelle fonction de traitement du contenu spécifique du slug if ($f = charger_fonction($slug . '_traiter', 'gamumail', true)) { $corps = $f($corps, $options, $slug, $pour); @@ -225,7 +240,7 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) { spip_log("Erreur d'envoi du mail : ","gamumail"); spip_log($corps,"gamumail"); $retour['message_erreur'] = _T("gamumail:erreur_envoi_mail"); - } + } else { $retour['message_ok'] = _T('gamumail:mail_envoye'); } diff --git a/paquet.xml b/paquet.xml index 5d1e84d..8d210c1 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,7 +1,7 @@