Skip to content
Extraits de code Groupes Projets
Valider c26ded78 rédigé par maieul@maieul.net's avatar maieul@maieul.net
Parcourir les fichiers

Suite demande de Florence Henry : pouvoir avoir plusieurs champs destinataires...

Suite demande de Florence Henry : pouvoir avoir plusieurs champs destinataires comme destinataires des messages
parent 6de7b995
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
<paquet <paquet
prefix="formidable" prefix="formidable"
categorie="communication" categorie="communication"
version="3.36.8" version="3.37.0"
etat="stable" etat="stable"
compatibilite="[3.0.0;3.2.*]" compatibilite="[3.0.0;3.2.*]"
logo="images/formidable-64.png" logo="images/formidable-64.png"
......
...@@ -40,24 +40,7 @@ function traiter_email_dist($args, $retours) { ...@@ -40,24 +40,7 @@ function traiter_email_dist($args, $retours) {
// On récupère les destinataires // On récupère les destinataires
if ($options['champ_destinataires']) { if ($options['champ_destinataires']) {
$destinataires = _request($options['champ_destinataires']); $destinataires = formidable_traiter_email_champ_destinataires($options['champ_destinataires']);
if (!is_array($destinataires)) {
if (intval($destinataires)) {
$destinataires = array($destinataires);
} else {
$destinataires = array();
}
}
if (count($destinataires)) {
// On récupère les mails des destinataires
$destinataires = array_map('intval', $destinataires);
$destinataires = sql_allfetsel(
'email',
'spip_auteurs',
sql_in('id_auteur', $destinataires)
);
$destinataires = array_map('reset', $destinataires);
}
} }
// Conservé pour raison historique, mais mauvaise pratique. // Conservé pour raison historique, mais mauvaise pratique.
...@@ -323,7 +306,40 @@ function traiter_email_dist($args, $retours) { ...@@ -323,7 +306,40 @@ function traiter_email_dist($args, $retours) {
return $retours; return $retours;
} }
/**
* Retourne la liste des destinataires mentionnés dans un ou plusieurs champs destinataires (auteur·e·s enregistré·e·s)
* @param array|str l'option champ_destinataire
* @return array la liste des mails destinataires.
**/
function formidable_traiter_email_champ_destinataires($champ) {
if (!is_array($champ)) {
$champ = array($champ);
}
//Trouver tout les id destinataires
$destinataires = array();
foreach ($champ as $c) {
$destinataires_c = _request($c);
if (!is_array($destinataires_c)) {
if (intval($destinataires_c)) {
$destinataires_c = array($destinataires_c);
} else {
$destinataires_c = array();
}
}
$destinataires = array_merge($destinataires, $destinataires_c);
}
if (count($destinataires)) {
// On récupère les mails des destinataires
$destinataires = array_map('intval', $destinataires);
$destinataires = sql_allfetsel(
'email',
'spip_auteurs',
sql_in('id_auteur', $destinataires)
);
$destinataires = array_map('reset', $destinataires);
}
return $destinataires;
}
/** /**
* Retourne la liste des destinataires sélectionnés en fonction * Retourne la liste des destinataires sélectionnés en fonction
* de l'option 'destinataires_selon_champ' du traitement email. * de l'option 'destinataires_selon_champ' du traitement email.
......
...@@ -76,6 +76,7 @@ options: ...@@ -76,6 +76,7 @@ options:
label: '<:formidable:traiter_email_option_destinataires_label:>' label: '<:formidable:traiter_email_option_destinataires_label:>'
explication: '<:formidable:traiter_email_option_destinataires_explication:>' explication: '<:formidable:traiter_email_option_destinataires_explication:>'
forcer_type: [destinataires,hidden] forcer_type: [destinataires,hidden]
type_choix: 'checkbox'
env: true env: true
- -
saisie: 'input' saisie: 'input'
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter