Changeset 112206 in spip-zone


Ignore:
Timestamp:
Oct 29, 2018, 5:33:46 PM (12 months ago)
Author:
maieul@…
Message:

amélioration drastique de formidable_tableau_valeurs_saisies():

  • suppression d'un code mort sur test de valeur brute ou pas brute,

puisque par défaut renvoyait les deux, le test avait lieu en amont

  • pour déterminer la valeur humaine, on se base désormais sur

saisie-vues/xxx, ce qui assure d'avoir une valeur humaine aussi lorsque
c'est prévu mais qu'il n'y a pas d'argument datas à la saisie,
typiquement pour les saisies de type evenements (plugin agenda)

Location:
_plugins_/formidable/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/formidable/trunk/formidable_fonctions.php

    r112205 r112206  
    153153        foreach ($modeles_vars[$modele_resume] as $var) {
    154154                $valeur = calculer_voir_reponse($id_formulaires_reponse, $id_formulaire, $var, 'valeur_uniquement', '');
    155                 // on ne veut pas du \n de PtoBR, mais on ne veut pas non plus faire un trim
    156                 $valeur = str_ireplace('</p>', '', $valeur);
    157                 $valeur = PtoBR($valeur);
    158                 if (strpos($valeur, '</li>')) {
    159                         $valeur = explode('</li>', $valeur);
    160                         array_pop($valeur);
    161                         $valeur = implode(', ', $valeur);
    162                 }
    163                 $valeur = supprimer_tags($valeur);
     155                $valeur = formidable_nettoyer_saisie_vue($valeur);
    164156                $valeurs["@$var@"] = $valeur;
    165157        }
     
    176168                )
    177169        );
     170}
     171
     172/**
     173 * Supprimer les balise d'une vue de saisies
     174 * sans pour autant faire un trim
     175 * @param str $valeur
     176 * @return str
     177**/
     178function formidable_nettoyer_saisie_vue($valeur) {
     179        // on ne veut pas du \n de PtoBR, mais on ne veut pas non plus faire un trim
     180        $valeur = str_ireplace('</p>', '', $valeur);
     181        $valeur = PtoBR($valeur);
     182        if (strpos($valeur, '</li>')) {
     183                $valeur = explode('</li>', $valeur);
     184                array_pop($valeur);
     185                $valeur = implode(', ', $valeur);
     186        }
     187        $valeur = supprimer_tags($valeur);
     188        $valeur = str_replace("\n","",$valeur);
     189        $valeur = str_replace("\t","",$valeur);
     190        return $valeur;
    178191}
    179192
  • _plugins_/formidable/trunk/inc/formidable.php

    r111971 r112206  
    513513                        // On récupère la valeur postée
    514514                        $valeurs[$champ] = _request($champ);
    515 
    516                         // Le champ est un tableau objet ? on le parse
    517                         if (is_array($valeurs[$champ])) {
    518                                 // si on ne demande pas la valeur brute
    519                                 if (
    520                                         isset($saisies_par_nom[$champ]['options']['datas'])
    521                                         and $labels_data = saisies_aplatir_tableau(saisies_chaine2tableau($saisies_par_nom[$champ]['options']['datas']))
    522                                         and !$options['champ_sujet_valeurs_brutes']
    523                                 ) {
    524                                         $valeurs_libellees[$champ] = array();
    525                                         foreach ($valeurs[$champ] as $valeur) {
    526                                                 $valeurs_libellees[$champ][] = $labels_data[$valeur];
    527                                         }
    528                                         $valeurs_libellees[$champ] =  implode($valeurs_libellees[$champ], ",");
    529                                 }
    530                                 // Sinon on utilise directement la valeur postée
    531                                 else {
    532                                         $valeurs_libellees[$champ] = implode($valeurs[$champ],",");
    533                                 }
    534                                 // Si la saisie a une valeur unique
    535                         } else {
    536                                 // Si la saisie est une liste de choix avec des clés et labels humains, on cherche le label humain
    537                                 if (
    538                                         isset($saisies_par_nom[$champ]['options']['datas'])
    539                                         and $labels_data = saisies_aplatir_tableau(saisies_chaine2tableau($saisies_par_nom[$champ]['options']['datas']))
    540                                         and isset($labels_data[$valeurs[$champ]])
    541                                 ) {
    542                                         $valeurs_libellees[$champ] = $labels_data[$valeurs[$champ]];
    543                                 }
    544                                 // Sinon on utilise directement la valeur postée
    545                                 else {
    546                                         $valeurs_libellees[$champ] = $valeurs[$champ];
    547                                 }
    548                         }
     515                        $valeurs_libellees[$champ] = formidable_nettoyer_saisie_vue(recuperer_fond(
     516                                'saisies-vues/_base',
     517                                array_merge(
     518                                        array(
     519                                                'type_saisie' => $saisies_par_nom[$champ]['saisie'],
     520                                                'valeur' => $valeurs[$champ],
     521                                                'valeur_uniquement' => 'oui',
     522                                        ),
     523                                        $saisies_par_nom[$champ]['options']
     524                                )
     525                        ));
    549526                }
    550527        }
  • _plugins_/formidable/trunk/paquet.xml

    r112195 r112206  
    22        prefix="formidable"
    33        categorie="communication"
    4         version="3.22.2"
     4        version="3.22.3"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.