Changeset 110354 in spip-zone


Ignore:
Timestamp:
May 23, 2018, 3:18:05 PM (3 years ago)
Author:
maieul@…
Message:

construction des valeurs libellées pour le sujet du courriel (ou autre).
Dans le cas où on a affaire à un tableau de valeur, on parse le tout et
on met une virgule comme séparateur.
Eviter de tester un isset() sur un tableau.

Location:
_plugins_/formidable/trunk
Files:
2 edited

Legend:

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

    r110198 r110354  
    33        categorie="communication"
    44        version="3.10.0"
     5        version="3.10.1"
    56        etat="stable"
    67        compatibilite="[3.0.0;3.2.*]"
  • _plugins_/formidable/trunk/traiter/email.php

    r110166 r110354  
    119119                                // On récupère la valeur postée
    120120                                $valeurs[$champ] = _request($champ);
    121                                
    122                                 // Si la saisie est une liste de choix avec des clés et labels humains, on cherche le label humain, sauf si la case champ_sujet_valeurs_brutes est cochée dans la config du traitement
    123                                 if (
    124                                         isset($saisies_par_nom[$champ]['options']['datas'])
    125                                         and $labels_data = saisies_aplatir_tableau(saisies_chaine2tableau($saisies_par_nom[$champ]['options']['datas']))
    126                                         and isset($labels_data[$valeurs[$champ]])
    127                                         and !$options['champ_sujet_valeurs_brutes']
    128                                 ) {
    129                                         $valeurs_libellees[$champ] = $labels_data[$valeurs[$champ]];
    130                                 }
    131                                 // Sinon on utilise directement la valeur postée
    132                                 else {
    133                                         $valeurs_libellees[$champ] = $valeurs[$champ];
     121
     122                                // Le champ est un tableau objet ? on le parse
     123                                if (is_array($valeurs[$champ])) {
     124                                        // si on ne demande pas la valeur brute
     125                                        if (
     126                                                isset($saisies_par_nom[$champ]['options']['datas'])
     127                                                and $labels_data = saisies_aplatir_tableau(saisies_chaine2tableau($saisies_par_nom[$champ]['options']['datas']))
     128                                                and !$options['champ_sujet_valeurs_brutes']
     129                                        ) {
     130                                                $valeurs_libellees[$champ] = array();
     131                                                foreach ($valeurs[$champ] as $valeur) {
     132                                                        $valeurs_libellees[$champ][] = $labels_data[$valeur];
     133                                                }
     134                                                $valeurs_libellees[$champ] =  implode($valeurs_libellees[$champ], ",");
     135                                        }
     136                                        // Sinon on utilise directement la valeur postée
     137                                        else {
     138                                                $valeurs_libellees[$champ] = implode($valeurs[$champ],",");
     139                                        }
     140                                // Si la saisie a une valeur unique
     141                                } else {
     142                                        // Si la saisie est une liste de choix avec des clés et labels humains, on cherche le label humain, sauf si la case champ_sujet_valeurs_brutes est cochée dans la config du traitement
     143                                        if (
     144                                                isset($saisies_par_nom[$champ]['options']['datas'])
     145                                                and $labels_data = saisies_aplatir_tableau(saisies_chaine2tableau($saisies_par_nom[$champ]['options']['datas']))
     146                                                and isset($labels_data[$valeurs[$champ]])
     147                                                and !$options['champ_sujet_valeurs_brutes']
     148                                        ) {
     149                                                $valeurs_libellees[$champ] = $labels_data[$valeurs[$champ]];
     150                                        }
     151                                        // Sinon on utilise directement la valeur postée
     152                                        else {
     153                                                $valeurs_libellees[$champ] = $valeurs[$champ];
     154                                        }
    134155                                }
    135156                        }
Note: See TracChangeset for help on using the changeset viewer.