diff --git a/formulaires/gamumail.php b/formulaires/gamumail.php index 6ae9016..12932f5 100644 --- a/formulaires/gamumail.php +++ b/formulaires/gamumail.php @@ -8,17 +8,20 @@ include_spip('inc/filtres'); * formulaire générique pour envoyer des mails avec pieces attachés * * @param string $slug modele du mail a charger - * @param string $destinataires = adresses mails et id_auteurs séparées par , + * @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 []['objet' => 'app_client', 'id_objet' => 3, 'champ' => 'email'] ou ['objet' => 'app_client', 'id_objet' => 3, 'champ' => 'email'] * @param array $Tpdf []['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 * @param array $options * @return array $valeurs + * */ function formulaires_gamumail_charger_dist($slug, $destinataires = 0, $Tclient = [], $Tpdf = [], $redirect = '', $options = []){ $Tmails = []; - $destinataires = explode(',', $destinataires); + if (!is_array($destinataires)) { + $destinataires = explode(',', $destinataires); + } foreach ($destinataires as $dest) { if (is_numeric($dest)) { if ($mail = sql_getfetsel('email', 'spip_auteurs', 'id_auteur='.$dest)) { diff --git a/inc/envoyer_gamumail.php b/inc/envoyer_gamumail.php index 8a22a01..2197aa5 100644 --- a/inc/envoyer_gamumail.php +++ b/inc/envoyer_gamumail.php @@ -7,10 +7,11 @@ if (!defined('_ECRIRE_INC_VERSION')){ * fonction pour préparer et envoyer un mail basé sur un slug gamumail * * @param string $slug - * @param string $destinataires = adresses mails et id_auteur séparées par , + * @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 (au cas où...) + * @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 * **/ function inc_envoyer_gamumail($slug, $destinataires, $options = []) { @@ -39,7 +40,9 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) { } // destinataires - $destinataires = explode(',', $destinataires); + if (!is_array($destinataires)) { + $destinataires = explode(',', $destinataires); + } $pour = array(); foreach ($destinataires as $dest) { if (is_numeric($dest)) { @@ -52,14 +55,14 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) { } } - function test_vide($elem) { + function non_vide($elem) { return ($elem != NULL AND $elem != ''); } - $cc = array_filter(explode(',', lire_config('gamumail/mail_cc')), 'test_vide'); - $cci = array_filter(explode(',', lire_config('gamumail/mail_cci')), 'test_vide'); + $cc = array_filter(explode(',', lire_config('gamumail/mail_cc')), 'non_vide'); + $cci = array_filter(explode(',', lire_config('gamumail/mail_cci')), 'non_vide'); - // si on a plusieurs destinataires, les passer en cci et mettre le compte expéditeur du site en to - if (count($pour) > 1) { + // si on a plusieurs destinataires et $options['cci' => true] les passer en cci et mettre le compte expéditeur du site en to + if (count($pour) > 1 AND isset($options['cci']) AND $options['cci']) { $cci = array_unique(array_merge($cci, $pour)); $pour = [lire_config('facteur/adresse_envoi_email',lire_config('email_webmaster'))]; } @@ -166,7 +169,7 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) { } // si debug on affiche sans envoyer le mail - if ($options['debug']) { + if (isset($options['debug']) AND $options['debug']) { echo '$pour : '; var_dump($pour); echo '
$sujet: '.$sujet.'
$corps : ';