From de815b03ab0aeb3d33703cdaed5411e6980a86ee Mon Sep 17 00:00:00 2001 From: "maieul@maieul.net" <> Date: Mon, 29 Oct 2018 17:33:46 +0000 Subject: [PATCH] =?UTF-8?q?am=C3=A9lioration=20drastique=20de=20formidable?= =?UTF-8?q?=5Ftableau=5Fvaleurs=5Fsaisies():=20-=20suppression=20d'un=20co?= =?UTF-8?q?de=20mort=20sur=20test=20de=20valeur=20brute=20ou=20pas=20brute?= =?UTF-8?q?,=20puisque=20par=20d=C3=A9faut=20renvoyait=20les=20deux,=20le?= =?UTF-8?q?=20test=20avait=20lieu=20en=20amont=20-=20pour=20d=C3=A9termine?= =?UTF-8?q?r=20la=20valeur=20humaine,=20on=20se=20base=20d=C3=A9sormais=20?= =?UTF-8?q?sur=20saisie-vues/xxx,=20ce=20qui=20assure=20d'avoir=20une=20va?= =?UTF-8?q?leur=20humaine=20aussi=20lorsque=20c'est=20pr=C3=A9vu=20mais=20?= =?UTF-8?q?qu'il=20n'y=20a=20pas=20d'argument=20datas=20=C3=A0=20la=20sais?= =?UTF-8?q?ie,=20typiquement=20pour=20les=20saisies=20de=20type=20evenemen?= =?UTF-8?q?ts=20(plugin=20agenda)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- formidable_fonctions.php | 31 +++++++++++++++++++-------- inc/formidable.php | 45 ++++++++++------------------------------ paquet.xml | 2 +- 3 files changed, 34 insertions(+), 44 deletions(-) diff --git a/formidable_fonctions.php b/formidable_fonctions.php index 2dbbcb92..ffccc2be 100644 --- a/formidable_fonctions.php +++ b/formidable_fonctions.php @@ -152,15 +152,7 @@ function affiche_resume_reponse($id_formulaires_reponse, $id_formulaire = null, $valeurs = array(); foreach ($modeles_vars[$modele_resume] as $var) { $valeur = calculer_voir_reponse($id_formulaires_reponse, $id_formulaire, $var, 'valeur_uniquement', ''); - // on ne veut pas du \n de PtoBR, mais on ne veut pas non plus faire un trim - $valeur = str_ireplace('</p>', '', $valeur); - $valeur = PtoBR($valeur); - if (strpos($valeur, '</li>')) { - $valeur = explode('</li>', $valeur); - array_pop($valeur); - $valeur = implode(', ', $valeur); - } - $valeur = supprimer_tags($valeur); + $valeur = formidable_nettoyer_saisie_vue($valeur); $valeurs["@$var@"] = $valeur; } return pipeline( @@ -177,6 +169,27 @@ function affiche_resume_reponse($id_formulaires_reponse, $id_formulaire = null, ); } +/** + * Supprimer les balise d'une vue de saisies + * sans pour autant faire un trim + * @param str $valeur + * @return str +**/ +function formidable_nettoyer_saisie_vue($valeur) { + // on ne veut pas du \n de PtoBR, mais on ne veut pas non plus faire un trim + $valeur = str_ireplace('</p>', '', $valeur); + $valeur = PtoBR($valeur); + if (strpos($valeur, '</li>')) { + $valeur = explode('</li>', $valeur); + array_pop($valeur); + $valeur = implode(', ', $valeur); + } + $valeur = supprimer_tags($valeur); + $valeur = str_replace("\n","",$valeur); + $valeur = str_replace("\t","",$valeur); + return $valeur; +} + /** * Si une saisie est de type 'fichiers' * insère dans la description du résultat de cette saisie diff --git a/inc/formidable.php b/inc/formidable.php index bdfb2b99..039b3416 100644 --- a/inc/formidable.php +++ b/inc/formidable.php @@ -512,40 +512,17 @@ function formidable_tableau_valeurs_saisies($saisies) { } else { // On récupère la valeur postée $valeurs[$champ] = _request($champ); - - // Le champ est un tableau objet ? on le parse - if (is_array($valeurs[$champ])) { - // si on ne demande pas la valeur brute - if ( - isset($saisies_par_nom[$champ]['options']['datas']) - and $labels_data = saisies_aplatir_tableau(saisies_chaine2tableau($saisies_par_nom[$champ]['options']['datas'])) - and !$options['champ_sujet_valeurs_brutes'] - ) { - $valeurs_libellees[$champ] = array(); - foreach ($valeurs[$champ] as $valeur) { - $valeurs_libellees[$champ][] = $labels_data[$valeur]; - } - $valeurs_libellees[$champ] = implode($valeurs_libellees[$champ], ","); - } - // Sinon on utilise directement la valeur postée - else { - $valeurs_libellees[$champ] = implode($valeurs[$champ],","); - } - // Si la saisie a une valeur unique - } else { - // Si la saisie est une liste de choix avec des clés et labels humains, on cherche le label humain - if ( - isset($saisies_par_nom[$champ]['options']['datas']) - and $labels_data = saisies_aplatir_tableau(saisies_chaine2tableau($saisies_par_nom[$champ]['options']['datas'])) - and isset($labels_data[$valeurs[$champ]]) - ) { - $valeurs_libellees[$champ] = $labels_data[$valeurs[$champ]]; - } - // Sinon on utilise directement la valeur postée - else { - $valeurs_libellees[$champ] = $valeurs[$champ]; - } - } + $valeurs_libellees[$champ] = formidable_nettoyer_saisie_vue(recuperer_fond( + 'saisies-vues/_base', + array_merge( + array( + 'type_saisie' => $saisies_par_nom[$champ]['saisie'], + 'valeur' => $valeurs[$champ], + 'valeur_uniquement' => 'oui', + ), + $saisies_par_nom[$champ]['options'] + ) + )); } } return array($valeurs, $valeurs_libellees); diff --git a/paquet.xml b/paquet.xml index a2cc2e42..eb8244b7 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,7 +1,7 @@ <paquet prefix="formidable" categorie="communication" - version="3.22.2" + version="3.22.3" etat="stable" compatibilite="[3.0.0;3.2.*]" logo="images/formidable-64.png" -- GitLab