Changeset 115004 in spip-zone for _plugins_/formidable


Ignore:
Timestamp:
Apr 16, 2019, 3:55:46 PM (6 weeks ago)
Author:
maieul@…
Message:

Suite demande de Florence Henry : pouvoir avoir plusieurs champs destinataires comme destinataires des messages

Location:
_plugins_/formidable/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/formidable/trunk/paquet.xml

    r114932 r115004  
    22        prefix="formidable"
    33        categorie="communication"
    4         version="3.36.8"
     4        version="3.37.0"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.2.*]"
  • _plugins_/formidable/trunk/traiter/email.php

    r112946 r115004  
    4141        // On récupère les destinataires
    4242        if ($options['champ_destinataires']) {
    43                 $destinataires = _request($options['champ_destinataires']);
    44                 if (!is_array($destinataires)) {
    45                         if (intval($destinataires)) {
    46                                 $destinataires = array($destinataires);
    47                         } else {
    48                                 $destinataires = array();
    49                         }
    50                 }
    51                 if (count($destinataires)) {
    52                         // On récupère les mails des destinataires
    53                         $destinataires = array_map('intval', $destinataires);
    54                         $destinataires = sql_allfetsel(
    55                                 'email',
    56                                 'spip_auteurs',
    57                                 sql_in('id_auteur', $destinataires)
    58                         );
    59                         $destinataires = array_map('reset', $destinataires);
    60                 }
     43                $destinataires = formidable_traiter_email_champ_destinataires($options['champ_destinataires']);
    6144        }
    6245
     
    324307}
    325308
    326 
     309/**
     310 * Retourne la liste des destinataires mentionnés dans un ou plusieurs champs destinataires (auteur·e·s enregistré·e·s)
     311 * @param array|str l'option champ_destinataire
     312 * @return array la liste des mails destinataires.
     313**/
     314function formidable_traiter_email_champ_destinataires($champ) {
     315        if (!is_array($champ)) {
     316                $champ = array($champ);
     317        }
     318        //Trouver tout les id destinataires
     319        $destinataires = array();
     320        foreach ($champ as $c) {
     321                $destinataires_c = _request($c);
     322                if (!is_array($destinataires_c)) {
     323                        if (intval($destinataires_c)) {
     324                                $destinataires_c = array($destinataires_c);
     325                        } else {
     326                                $destinataires_c = array();
     327                        }
     328                }
     329                $destinataires = array_merge($destinataires, $destinataires_c);
     330        }
     331        if (count($destinataires)) {
     332                // On récupère les mails des destinataires
     333                $destinataires = array_map('intval', $destinataires);
     334                $destinataires = sql_allfetsel(
     335                        'email',
     336                        'spip_auteurs',
     337                        sql_in('id_auteur', $destinataires)
     338                );
     339                $destinataires = array_map('reset', $destinataires);
     340        }
     341        return $destinataires;
     342}
    327343/**
    328344 * Retourne la liste des destinataires sélectionnés en fonction
  • _plugins_/formidable/trunk/traiter/email.yaml

    r112946 r115004  
    7777          explication: '<:formidable:traiter_email_option_destinataires_explication:>'
    7878          forcer_type: [destinataires,hidden]
     79          type_choix: 'checkbox'
    7980          env: true
    8081      -
Note: See TracChangeset for help on using the changeset viewer.