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' ]
This commit is contained in:
parent
01655c03e0
commit
c72d52867f
2 changed files with 31 additions and 16 deletions
|
@ -3,24 +3,31 @@ if (!defined('_ECRIRE_INC_VERSION')){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/*
|
||||||
* fonction pour préparer et envoyer un mail basé sur un slug gamumail
|
* fonction pour préparer et envoyer un mail basé sur un slug gamumail
|
||||||
*
|
*
|
||||||
* @param string $slug
|
* @param string $slug
|
||||||
* @param string|array $destinataires = adresses mails et id_auteur séparées par , ou en array
|
* @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
|
* 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 :
|
* @param array $options :
|
||||||
* $options['debug' => true] pour afficher le $corps final sans envoyer le mail
|
* $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['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 :
|
* $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 nom de squelette PDF
|
||||||
* - soit un array avec 3 éléments (seul le 1er est obligatoire):
|
* - soit un array avec 3 éléments (seul le 1er est obligatoire):
|
||||||
* [ 'fichier' => 'squelette_PDF',
|
* [ 'fichier' => 'squelette_PDF',
|
||||||
* 'contexte' => ['parametre_url_1' => 'valeur_1', 'parametre_url_2' => 'valeur_2', ...]
|
* 'contexte' => ['parametre_url_1' => 'valeur_1', 'parametre_url_2' => 'valeur_2', ...]
|
||||||
* 'nom' => 'nom_fichier_attache' ]
|
* '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 = []) {
|
function inc_envoyer_gamumail($slug, $destinataires, $options = []) {
|
||||||
include_spip('inc/texte');
|
include_spip('inc/texte');
|
||||||
include_spip('classes/facteur');
|
include_spip('classes/facteur');
|
||||||
|
@ -32,7 +39,7 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) {
|
||||||
$retour['message_erreur'] = _T("gamumail:erreur_format_slug");
|
$retour['message_erreur'] = _T("gamumail:erreur_format_slug");
|
||||||
return $retour;
|
return $retour;
|
||||||
}
|
}
|
||||||
|
|
||||||
// contenus du slug
|
// contenus du slug
|
||||||
$res = sql_fetsel('*', 'spip_gamumails', 'slug = "'.$slug.'"');
|
$res = sql_fetsel('*', 'spip_gamumails', 'slug = "'.$slug.'"');
|
||||||
if ($res) {
|
if ($res) {
|
||||||
|
@ -92,7 +99,7 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) {
|
||||||
$extension = $Tdocument['extension'];
|
$extension = $Tdocument['extension'];
|
||||||
if ($Tdocument['titre']) {
|
if ($Tdocument['titre']) {
|
||||||
$nom_fichier = $Tdocument['titre'] .".".$extension;
|
$nom_fichier = $Tdocument['titre'] .".".$extension;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$nom_fichier = basename($Tdocument['fichier']);
|
$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
|
// les pdfs
|
||||||
$Tpdf_dell = [];
|
$Tpdf_dell = [];
|
||||||
|
@ -116,7 +131,7 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) {
|
||||||
$Tpdfs = array_filter($Tpdfs, function($p) {
|
$Tpdfs = array_filter($Tpdfs, function($p) {
|
||||||
return $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)
|
// si plusieurs destinataires dans $pour[], on utilise le premier comme 2ème arg ($auteur)
|
||||||
if ($f = charger_fonction('traiter_av_pdf', 'gamumail', true)) {
|
if ($f = charger_fonction('traiter_av_pdf', 'gamumail', true)) {
|
||||||
$options = $f($options, $pour[0], [], $Tpdfs);
|
$options = $f($options, $pour[0], [], $Tpdfs);
|
||||||
|
@ -158,7 +173,7 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) {
|
||||||
$html_header = '';
|
$html_header = '';
|
||||||
if (find_in_path('gamumail/'.$slug .'_html_header.html')) {
|
if (find_in_path('gamumail/'.$slug .'_html_header.html')) {
|
||||||
$html_header = recuperer_fond('gamumail/'.$slug . '_html_header', $options);
|
$html_header = recuperer_fond('gamumail/'.$slug . '_html_header', $options);
|
||||||
}
|
}
|
||||||
elseif(find_in_path('gamumail/html_header.html')) {
|
elseif(find_in_path('gamumail/html_header.html')) {
|
||||||
$html_header = recuperer_fond('gamumail/html_header', $options);
|
$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')) {
|
elseif (find_in_path('gamumail/html_footer.html')) {
|
||||||
$html_footer = recuperer_fond('gamumail/html_footer', $options);
|
$html_footer = recuperer_fond('gamumail/html_footer', $options);
|
||||||
}
|
}
|
||||||
$html = $html_header . $html . $html_footer;
|
$html = $html_header . $html . $html_footer;
|
||||||
|
|
||||||
// pipeline pour les remplacements du contenu des slugs spécifiques de chaque plugins
|
// 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,
|
'args' => $args,
|
||||||
'data' => $html
|
'data' => $html
|
||||||
));
|
));
|
||||||
|
|
||||||
// traitement des remplacements génériques fournis par Gamumail
|
// traitement des remplacements génériques fournis par Gamumail
|
||||||
$remplacement_generiques = charger_fonction('gamumail_remplacements', 'inc');
|
$remplacement_generiques = charger_fonction('gamumail_remplacements', 'inc');
|
||||||
$html = $remplacement_generiques($args, $html);
|
$html = $remplacement_generiques($args, $html);
|
||||||
|
@ -197,7 +212,7 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = []) {
|
||||||
if ($f = charger_fonction('traiter', 'gamumail', true)) {
|
if ($f = charger_fonction('traiter', 'gamumail', true)) {
|
||||||
$corps = $f($corps, $options, $slug, $auteur, $Tclient, $Tpdf, $redirect);
|
$corps = $f($corps, $options, $slug, $auteur, $Tclient, $Tpdf, $redirect);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
// appel d'une éventuelle fonction de traitement du contenu spécifique du slug
|
// appel d'une éventuelle fonction de traitement du contenu spécifique du slug
|
||||||
if ($f = charger_fonction($slug . '_traiter', 'gamumail', true)) {
|
if ($f = charger_fonction($slug . '_traiter', 'gamumail', true)) {
|
||||||
$corps = $f($corps, $options, $slug, $pour);
|
$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("Erreur d'envoi du mail : ","gamumail");
|
||||||
spip_log($corps,"gamumail");
|
spip_log($corps,"gamumail");
|
||||||
$retour['message_erreur'] = _T("gamumail:erreur_envoi_mail");
|
$retour['message_erreur'] = _T("gamumail:erreur_envoi_mail");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$retour['message_ok'] = _T('gamumail:mail_envoye');
|
$retour['message_ok'] = _T('gamumail:mail_envoye');
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<paquet
|
<paquet
|
||||||
prefix="gamumail"
|
prefix="gamumail"
|
||||||
categorie="communication"
|
categorie="communication"
|
||||||
version="1.0.17"
|
version="1.0.18"
|
||||||
etat="dev"
|
etat="dev"
|
||||||
compatibilite="[3.2.0;4.0.*]"
|
compatibilite="[3.2.0;4.0.*]"
|
||||||
logo="prive/themes/spip/images/gamumail-64.png"
|
logo="prive/themes/spip/images/gamumail-64.png"
|
||||||
|
|
Loading…
Add table
Reference in a new issue