ajout du pseudo-slug no_gamumail qui permet de bloquer automatiquement tout envoi de mail passé à Gamumail avec cet identifiant de slug

This commit is contained in:
cy_altern 2022-03-31 12:28:12 +02:00
parent 6cdab4719c
commit b7447eb50c
3 changed files with 30 additions and 1 deletions

View file

@ -99,6 +99,13 @@ $GLOBALS['remplacements_gamumail']['@@num_facture@@'] = 'numéro de la facture';
function formulaires_gamumail_charger_dist($slug, $auteur = 0, $Tclient = [], $Tpdf = [], $redirect = '', $options = []){
}
```
#### argument $slug "no_gamumail"
Si $slug à pour valeur **no_gamumail** alors l'envoi est annulé
Exemple d'option à insérer dans un select sélecteur de slug :
```html
<option value="no_gamumail"[ (#ENV{slug}|=={no_gamumail}|oui) selected="selected"]><:souscriptions:pas_de_mail_auto:></option>
```
#### argument Tclient
l'Argument $Tclient est utilisé pour récupérer des emails dans un ou X autres Objets SPIP

View file

@ -183,6 +183,17 @@ function formulaires_gamumail_verifier_dist($slug, $destinataires = 0, $Tclient
}
function formulaires_gamumail_traiter_dist($slug, $destinataires = 0, $Tclient = [], $Tpdf = [], $redirect = '', $options = []) :Array{
// blocage de l'envoi par appel du pseudo-slug no_gamumail
if ($slug === 'no_gamumail') {
$retour['message_ok'] = _T('gamumail:message_no_gamumail');
if ($redirect AND $redirect != '') {
$retour['redirect'] = $redirect;
}
spip_log("Pas d'envoi de mail pour cause de slug no_gamumail","gamumail");
return $retour;
}
include_spip('inc/texte');
include_spip('classes/facteur');

View file

@ -30,11 +30,19 @@ if (!defined('_ECRIRE_INC_VERSION')){
*
*/
function inc_envoyer_gamumail($slug, $destinataires, $options = [], $Tid_doc_piece_jointe = []) {
include_spip('inc/texte');
include_spip('classes/facteur');
$retour = array();
// blocage de l'envoi pour le pseudo-slug "no_gamumail"
if ($slug === 'no_gamumail') {
$retour['message_ok'] = _T('gamumail:message_no_gamumail');
spip_log("Pas d'envoi de mail pour cause de slug no_gamumail","gamumail");
return $retour;
}
// sécu
if (preg_match('/[^a-zA-Z0-9_\-]/', $slug)) {
$retour['message_erreur'] = _T("gamumail:erreur_format_slug");
@ -251,8 +259,11 @@ function inc_envoyer_gamumail($slug, $destinataires, $options = [], $Tid_doc_pie
]);
//var_dump($sujet);
$sujet = $remplacement_generiques($args, $sujet);
// pour ne pas avoir de warning de la fonction envoyer_mail() on doit lui passer un paramètre $from et un $header
$from = '';
$header = '';
$envoyer_mail = charger_fonction('envoyer_mail', 'inc/');
$ok = $envoyer_mail($pour, $sujet, $corps);
$ok = $envoyer_mail($pour, $sujet, $corps, $from, $header);
}
if (!$ok) {