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

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)
parent f718e402
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -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
......
......@@ -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);
......
<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"
......
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