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
|
||||
*
|
||||
* @param string $slug modele du mail a charger
|
||||
* @param int|string $auteur id_auteur ou email du destinataire
|
||||
* @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 $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']
|
||||
* @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
|
||||
* @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
|
||||
*/
|
||||
function formulaires_gamumail_charger_dist($slug, $auteur = 0, $Tclient = [], $Tpdf = [], $redirect = '', $options = []){
|
||||
|
|
|
@ -111,6 +111,8 @@
|
|||
|
||||
#SET{fichier,#SLUG|concat{_fichiers}}
|
||||
[(#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}>
|
||||
]
|
||||
|
||||
|
|
|
@ -71,9 +71,11 @@ function formulaires_gamumail_charger_dist($slug, $destinataires = 0, $Tclient =
|
|||
'TFichierpdfs' => $TFichierPdf,
|
||||
'Tpdfs_ok' => [],
|
||||
'docs_spip' => $gamuMail['id_docs'],
|
||||
'Tid_fichiers' => [],
|
||||
'options' => $options
|
||||
);
|
||||
|
||||
// surcharges charger
|
||||
if ($f = charger_fonction('charger', 'gamumail', true)) {
|
||||
$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 ?
|
||||
$Tid_docs = [];
|
||||
$docs_spip = [];
|
||||
if (_request('docs_spip') != '') {
|
||||
$Tid_docs = explode(',', _request('docs_spip'));
|
||||
$docs_spip = explode(',', _request('docs_spip'));
|
||||
}
|
||||
if (count($Tid_docs)) {
|
||||
$Tid_docs_erreurs = [];
|
||||
foreach($Tid_docs as $id_doc) {
|
||||
if (count($docs_spip)) {
|
||||
$docs_spip_erreurs = [];
|
||||
foreach($docs_spip as $id_doc) {
|
||||
if (intval($id_doc) != $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)) {
|
||||
$erreurs['docs_spip'] = _T("gamumail:id_docs_en_erreur", ['id_docs_erreurs' => join(', ', $Tid_docs_erreurs)]);
|
||||
if (count($docs_spip_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)) {
|
||||
$erreurs = $f($erreurs, $options, $slug, $destinataires, $Tclient, $Tpdf, $redirect);
|
||||
}
|
||||
|
@ -155,14 +172,15 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient =
|
|||
|
||||
$retour = array();
|
||||
|
||||
$pour = _request('pour');
|
||||
$cc = _request('cc');
|
||||
$cci = _request('cci');
|
||||
$sujet = _request('sujet');
|
||||
$html = propre(_request('texte'));
|
||||
$docs_spip = _request('docs_spip');
|
||||
$Tpdfs_ok = _request('Tpdfs_ok');
|
||||
$texte = facteur_mail_html2text($html);
|
||||
$pour = _request('pour');
|
||||
$cc = _request('cc');
|
||||
$cci = _request('cci');
|
||||
$sujet = _request('sujet');
|
||||
$html = propre(_request('texte'));
|
||||
$docs_spip = _request('docs_spip');
|
||||
$Tpdfs_ok = _request('Tpdfs_ok');
|
||||
$Tid_doc = _request('Tid_doc');
|
||||
$texte = facteur_mail_html2text($html);
|
||||
|
||||
$pour = explode(',', $pour);
|
||||
$cc = explode(',', $cc);
|
||||
|
@ -191,7 +209,7 @@ function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient =
|
|||
$options = $f($options, $destinataires, $Tclient, $Tpdf);
|
||||
}
|
||||
|
||||
// les documents joints
|
||||
// les documents par id_document
|
||||
if (!empty($docs_spip)) {
|
||||
foreach ($docs_spip as $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
|
||||
$Tpdf_dell = [];
|
||||
if (!empty($Tpdfs_ok) and is_array($Tpdfs_ok)) {
|
||||
|
|
Loading…
Add table
Reference in a new issue