ajout des documents attachés récupérés via un éventuel inclure gamumail/#SLUG_fichiers.html . Maj de la doc
This commit is contained in:
parent
300eb97642
commit
b220ddc30a
3 changed files with 68 additions and 26 deletions
17
README.md
17
README.md
|
@ -78,15 +78,16 @@ et du formulaire d'envoi **formulaires/gamumail.html** : il permet de lister les
|
||||||
* formulaire générique pour envoyer des mails avec pieces attachés
|
* formulaire générique pour envoyer des mails avec pieces attachés
|
||||||
*
|
*
|
||||||
* @param string $slug modele du mail a charger
|
* @param string $slug modele du mail a charger
|
||||||
* @param int|string $auteur id_auteur ou email du destinataire
|
* @param string $destinataires = adresses mails et id_auteurs séparées par , ou en array
|
||||||
* @param array $Tclient []['objet' => 'app_client', 'id_objet' => 3, 'champ' => 'email']
|
* 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
|
||||||
* ou
|
* @param array $Tclient = un ou plusieurs mails de destinataires sortis d'une table objet spécifique
|
||||||
* ['objet' => 'app_client', 'id_objet' => 3, 'champ' => 'email']
|
* de la forme []['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]]
|
* @param array $Tpdf = un ou plusieurs fichiers PDF générés par spiPDF (le contexte permet la personnalisation du contenu)
|
||||||
* ou
|
* []['fichier' => 'pdf_facture', 'nom' => 'facture_123', 'contexte' => ['id_app_facture' => 3]] ou ['fichier' => 'pdf_facture', 'nom' => 'facture_123', 'contexte' => ['id_app_facture' => 3]]
|
||||||
* ['fichier' => 'pdf_facture', 'nom' => 'facture_123', 'contexte' => ['id_app_facture' => 3]]
|
|
||||||
* @param string $redirect
|
* @param string $redirect
|
||||||
* @param array $options
|
* @param array $options = un gros fourre-tout sous forme d'un array
|
||||||
|
* utilisé en particulier par les inclure HTML de gamumail/#SLUG_soustexte et gamumail/#SLUG_fichiers
|
||||||
|
*
|
||||||
* @return array $valeurs
|
* @return array $valeurs
|
||||||
*/
|
*/
|
||||||
function formulaires_gamumail_charger_dist($slug, $auteur = 0, $Tclient = [], $Tpdf = [], $redirect = '', $options = []){
|
function formulaires_gamumail_charger_dist($slug, $auteur = 0, $Tclient = [], $Tpdf = [], $redirect = '', $options = []){
|
||||||
|
|
|
@ -111,6 +111,8 @@
|
||||||
|
|
||||||
#SET{fichier,#SLUG|concat{_fichiers}}
|
#SET{fichier,#SLUG|concat{_fichiers}}
|
||||||
[(#CHEMIN{gamumail/#GET{fichier}.html}|oui)
|
[(#CHEMIN{gamumail/#GET{fichier}.html}|oui)
|
||||||
|
#SET{erreurs,#ENV**{erreurs}|table_valeur{Tid_doc}}
|
||||||
|
[<span class="erreur_message">(#GET{erreurs})</span>]
|
||||||
<INCLURE{fond=gamumail/#GET{fichier},env}>
|
<INCLURE{fond=gamumail/#GET{fichier},env}>
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -71,9 +71,11 @@ function formulaires_gamumail_charger_dist($slug, $destinataires = 0, $Tclient =
|
||||||
'TFichierpdfs' => $TFichierPdf,
|
'TFichierpdfs' => $TFichierPdf,
|
||||||
'Tpdfs_ok' => [],
|
'Tpdfs_ok' => [],
|
||||||
'docs_spip' => $gamuMail['id_docs'],
|
'docs_spip' => $gamuMail['id_docs'],
|
||||||
|
'Tid_fichiers' => [],
|
||||||
'options' => $options
|
'options' => $options
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// surcharges charger
|
||||||
if ($f = charger_fonction('charger', 'gamumail', true)) {
|
if ($f = charger_fonction('charger', 'gamumail', true)) {
|
||||||
$valeurs = $f($valeurs, $options, $slug, $destinataires, $Tclient, $Tpdf, $redirect);
|
$valeurs = $f($valeurs, $options, $slug, $destinataires, $Tclient, $Tpdf, $redirect);
|
||||||
}
|
}
|
||||||
|
@ -121,24 +123,39 @@ function formulaires_gamumail_verifier_dist($slug, $destinataires = 0, $Tclient
|
||||||
}
|
}
|
||||||
|
|
||||||
// les id_document attachés sont-ils OK ?
|
// les id_document attachés sont-ils OK ?
|
||||||
$Tid_docs = [];
|
$docs_spip = [];
|
||||||
if (_request('docs_spip') != '') {
|
if (_request('docs_spip') != '') {
|
||||||
$Tid_docs = explode(',', _request('docs_spip'));
|
$docs_spip = explode(',', _request('docs_spip'));
|
||||||
}
|
}
|
||||||
if (count($Tid_docs)) {
|
if (count($docs_spip)) {
|
||||||
$Tid_docs_erreurs = [];
|
$docs_spip_erreurs = [];
|
||||||
foreach($Tid_docs as $id_doc) {
|
foreach($docs_spip as $id_doc) {
|
||||||
if (intval($id_doc) != $id_doc
|
if (intval($id_doc) != $id_doc
|
||||||
OR !sql_getfetsel('id_document', 'spip_documents', 'id_document='.$id_doc)) {
|
OR !sql_getfetsel('id_document', 'spip_documents', 'id_document='.$id_doc)) {
|
||||||
$Tid_docs_erreurs[] = $id_doc;
|
$docs_spip_erreurs[] = $id_doc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (count($Tid_docs_erreurs)) {
|
if (count($docs_spip_erreurs)) {
|
||||||
$erreurs['docs_spip'] = _T("gamumail:id_docs_en_erreur", ['id_docs_erreurs' => join(', ', $Tid_docs_erreurs)]);
|
$erreurs['docs_spip'] = _T("gamumail:id_docs_en_erreur", ['id_docs_erreurs' => join(', ', $docs_spip_erreurs)]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// surcharges
|
// les fichiers envoyés par un éventuel inclure gamumail/#SLUG_fichiers.html sont ils OK ?
|
||||||
|
$Tid_doc = _request('Tid_doc');
|
||||||
|
if (count($Tid_doc)) {
|
||||||
|
$Tid_doc_erreurs = [];
|
||||||
|
foreach($Tid_doc as $id_doc) {
|
||||||
|
if (intval($id_doc) != $id_doc
|
||||||
|
OR !sql_getfetsel('id_document', 'spip_documents', 'id_document='.$id_doc)) {
|
||||||
|
$Tid_doc_erreurs[] = $id_doc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (count($Tid_doc_erreurs)) {
|
||||||
|
$erreurs['Tid_doc'] = _T("gamumail:id_docs_en_erreur", ['id_docs_erreurs' => join(', ', $Tid_doc_erreurs)]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// surcharges verifier
|
||||||
if ($f = charger_fonction('verifier', 'gamumail', true)) {
|
if ($f = charger_fonction('verifier', 'gamumail', true)) {
|
||||||
$erreurs = $f($erreurs, $options, $slug, $destinataires, $Tclient, $Tpdf, $redirect);
|
$erreurs = $f($erreurs, $options, $slug, $destinataires, $Tclient, $Tpdf, $redirect);
|
||||||
}
|
}
|
||||||
|
@ -155,14 +172,15 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient =
|
||||||
|
|
||||||
$retour = array();
|
$retour = array();
|
||||||
|
|
||||||
$pour = _request('pour');
|
$pour = _request('pour');
|
||||||
$cc = _request('cc');
|
$cc = _request('cc');
|
||||||
$cci = _request('cci');
|
$cci = _request('cci');
|
||||||
$sujet = _request('sujet');
|
$sujet = _request('sujet');
|
||||||
$html = propre(_request('texte'));
|
$html = propre(_request('texte'));
|
||||||
$docs_spip = _request('docs_spip');
|
$docs_spip = _request('docs_spip');
|
||||||
$Tpdfs_ok = _request('Tpdfs_ok');
|
$Tpdfs_ok = _request('Tpdfs_ok');
|
||||||
$texte = facteur_mail_html2text($html);
|
$Tid_doc = _request('Tid_doc');
|
||||||
|
$texte = facteur_mail_html2text($html);
|
||||||
|
|
||||||
$pour = explode(',', $pour);
|
$pour = explode(',', $pour);
|
||||||
$cc = explode(',', $cc);
|
$cc = explode(',', $cc);
|
||||||
|
@ -191,7 +209,7 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient =
|
||||||
$options = $f($options, $destinataires, $Tclient, $Tpdf);
|
$options = $f($options, $destinataires, $Tclient, $Tpdf);
|
||||||
}
|
}
|
||||||
|
|
||||||
// les documents joints
|
// les documents par id_document
|
||||||
if (!empty($docs_spip)) {
|
if (!empty($docs_spip)) {
|
||||||
foreach ($docs_spip as $id_document) {
|
foreach ($docs_spip as $id_document) {
|
||||||
$Tdocument = sql_fetsel('titre,fichier,extension','spip_documents','id_document='.intval($id_document));
|
$Tdocument = sql_fetsel('titre,fichier,extension','spip_documents','id_document='.intval($id_document));
|
||||||
|
@ -212,6 +230,27 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient =
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// les documents par Tid_doc envoyés depuis inclure gamumail/#SLUG_fichiers.html
|
||||||
|
if (!empty($Tid_doc)) {
|
||||||
|
foreach ($Tid_doc as $id_doc) {
|
||||||
|
$Tdocs = sql_fetsel('titre,fichier,extension','spip_documents','id_document='.intval($id_doc));
|
||||||
|
$destination = _DIR_IMG.$Tdocs['fichier'];
|
||||||
|
$extension = $Tdocs['extension'];
|
||||||
|
if ($Tdocs['titre']) {
|
||||||
|
$nom_fichier = $Tdocs['titre'] .".".$extension;
|
||||||
|
} else {
|
||||||
|
$nom_fichier = basename($Tdocs['fichier']);
|
||||||
|
}
|
||||||
|
$type_mime = bigup_get_mime_type_extension($extension);
|
||||||
|
$pieces_jointes[] = [
|
||||||
|
'chemin' => $destination,
|
||||||
|
'nom' => $nom_fichier,
|
||||||
|
'encodage' => 'base64',
|
||||||
|
'mime' => $type_mime
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// les pdfs
|
// les pdfs
|
||||||
$Tpdf_dell = [];
|
$Tpdf_dell = [];
|
||||||
if (!empty($Tpdfs_ok) and is_array($Tpdfs_ok)) {
|
if (!empty($Tpdfs_ok) and is_array($Tpdfs_ok)) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue