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

Notices PHP lors de l'utilisation de Formidable. Ajout d'un filtre pour...

Notices PHP lors de l'utilisation de Formidable. Ajout d'un filtre pour désérialiser si possible sans générer d'erreur
parent bbf569b6
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -102,7 +102,9 @@ function formulaires_formidable_charger($id_formulaire, $valeurs=array(), $id_fo ...@@ -102,7 +102,9 @@ function formulaires_formidable_charger($id_formulaire, $valeurs=array(), $id_fo
$contexte['editable'] = false; $contexte['editable'] = false;
$contexte['message_erreur'] = _T('formidable:erreur_inexistant'); $contexte['message_erreur'] = _T('formidable:erreur_inexistant');
} }
if (!isset($contexte['_hidden'])) {
$contexte['_hidden'] = '';
}
$contexte['_hidden'] .= "\n".'<input type="hidden" name="formidable_afficher_apres'/*.$formulaire['id_formulaire']*/.'" value="'.$formulaire['apres'].'"/>';// marche pas $contexte['_hidden'] .= "\n".'<input type="hidden" name="formidable_afficher_apres'/*.$formulaire['id_formulaire']*/.'" value="'.$formulaire['apres'].'"/>';// marche pas
$contexte['formidable_afficher_apres']=$formulaire['apres']; $contexte['formidable_afficher_apres']=$formulaire['apres'];
...@@ -212,4 +214,4 @@ function formidable_definir_contexte_avec_reponse($contexte, $id_formulaires_rep ...@@ -212,4 +214,4 @@ function formidable_definir_contexte_avec_reponse($contexte, $id_formulaires_rep
return $contexte; return $contexte;
} }
?> ?>
\ No newline at end of file
...@@ -44,7 +44,9 @@ function traitements_charger_infos($type_traitement){ ...@@ -44,7 +44,9 @@ function traitements_charger_infos($type_traitement){
include_spip('inc/yaml'); include_spip('inc/yaml');
$fichier = find_in_path("traiter/$type_traitement.yaml"); $fichier = find_in_path("traiter/$type_traitement.yaml");
$traitement = yaml_decode_file($fichier); $traitement = yaml_decode_file($fichier);
if (is_array($traitement)){
if (is_array($traitement)) {
$traitement += array('titre' => '', 'description' => '', 'icone' => '');
$traitement['titre'] = $traitement['titre'] ? _T_ou_typo($traitement['titre']) : $type_traitement; $traitement['titre'] = $traitement['titre'] ? _T_ou_typo($traitement['titre']) : $type_traitement;
$traitement['description'] = $traitement['description'] ? _T_ou_typo($traitement['description']) : ''; $traitement['description'] = $traitement['description'] ? _T_ou_typo($traitement['description']) : '';
$traitement['icone'] = $traitement['icone'] ? find_in_path($traitement['icone']) : ''; $traitement['icone'] = $traitement['icone'] ? find_in_path($traitement['icone']) : '';
...@@ -98,7 +100,8 @@ function formidable_generer_nom_cookie($id_formulaire){ ...@@ -98,7 +100,8 @@ function formidable_generer_nom_cookie($id_formulaire){
function formidable_verifier_reponse_formulaire($id_formulaire, $choix_identification='cookie'){ function formidable_verifier_reponse_formulaire($id_formulaire, $choix_identification='cookie'){
global $auteur_session; global $auteur_session;
$id_auteur = $auteur_session ? intval($auteur_session['id_auteur']) : 0; $id_auteur = $auteur_session ? intval($auteur_session['id_auteur']) : 0;
$cookie = $_COOKIE[formidable_generer_nom_cookie($id_formulaire)]; $nom_cookie = formidable_generer_nom_cookie($id_formulaire);
$cookie = isset($_COOKIE[$nom_cookie]) ? $_COOKIE[$nom_cookie] : false;
// ni cookie ni id, on ne peut rien faire // ni cookie ni id, on ne peut rien faire
if (!$cookie and !$id_auteur) { if (!$cookie and !$id_auteur) {
...@@ -148,7 +151,7 @@ function formidable_verifier_reponse_formulaire($id_formulaire, $choix_identific ...@@ -148,7 +151,7 @@ function formidable_verifier_reponse_formulaire($id_formulaire, $choix_identific
*/ */
function formidable_analyser_saisie($saisie, $valeurs=array(), $reponses_total=0){ function formidable_analyser_saisie($saisie, $valeurs=array(), $reponses_total=0){
// Si le paramètre n'est pas bon ou que c'est un conteneur, on génère du vide // Si le paramètre n'est pas bon ou que c'est un conteneur, on génère du vide
if (!is_array($saisie) or $saisie['saisies']) if (!is_array($saisie) or (isset($saisie['saisies']) and $saisie['saisies']))
return ''; return '';
$contexte = array('reponses_total'=>$reponses_total); $contexte = array('reponses_total'=>$reponses_total);
...@@ -180,4 +183,29 @@ function formidable_analyser_saisie($saisie, $valeurs=array(), $reponses_total=0 ...@@ -180,4 +183,29 @@ function formidable_analyser_saisie($saisie, $valeurs=array(), $reponses_total=0
); );
} }
/**
* Tente de déserialiser un texte
*
* Si le paramètre est un tableau, retourne le tableau,
* Si c'est une chaîne, tente de la désérialiser, sinon
* retourne la chaîne.
*
* @filtre tenter_unserialize
*
* @param string|array $texte
* Le texte (possiblement sérializé) ou un tableau
* @return array|string
* Tableau, texte désérializé ou texte
**/
function filtre_tenter_unserialize_dist($texte) {
if (is_array($texte)) {
return $texte;
}
if ($tmp = @unserialize($texte)) {
return $tmp;
}
return $texte;
}
?> ?>
...@@ -4,9 +4,7 @@ ...@@ -4,9 +4,7 @@
#SET{valeurs,#ARRAY} #SET{valeurs,#ARRAY}
<BOUCLE_reponses(FORMULAIRES_REPONSES){id_formulaire}> <BOUCLE_reponses(FORMULAIRES_REPONSES){id_formulaire}>
<BOUCLE_champs(FORMULAIRES_REPONSES_CHAMPS){id_formulaires_reponse}> <BOUCLE_champs(FORMULAIRES_REPONSES_CHAMPS){id_formulaires_reponse}>
#SET{test_array, #VALEUR|unserialize} #SET_MERGE{liste_valeurs, #GET{valeurs}|table_valeur{#NOM}|sinon{#ARRAY}, #ARRAY{0,#VALEUR|tenter_unserialize}}
#SET{valeur, #GET{test_array}|is_array|?{#GET{test_array},#VALEUR}}
#SET_MERGE{liste_valeurs, #GET{valeurs}|table_valeur{#NOM}|sinon{#ARRAY}, #ARRAY{0, #GET{valeur}}}
#SET_MERGE{valeurs, #ARRAY{#NOM,#GET{liste_valeurs}}} #SET_MERGE{valeurs, #ARRAY{#NOM,#GET{liste_valeurs}}}
</BOUCLE_champs> </BOUCLE_champs>
</BOUCLE_reponses> </BOUCLE_reponses>
......
...@@ -2,9 +2,7 @@ ...@@ -2,9 +2,7 @@
#SET{valeurs,#ARRAY} #SET{valeurs,#ARRAY}
<BOUCLE_champs(FORMULAIRES_REPONSES_CHAMPS){id_formulaires_reponse}> <BOUCLE_champs(FORMULAIRES_REPONSES_CHAMPS){id_formulaires_reponse}>
#SET{test_array,#VALEUR|unserialize} #SET_MERGE{valeurs,#ARRAY{#NOM,#VALEUR|tenter_unserialize}}
#SET{valeur,#GET{test_array}|is_array|?{#GET{test_array},#VALEUR}}
#SET_MERGE{valeurs,#ARRAY{#NOM,#GET{valeur}}}
</BOUCLE_champs> </BOUCLE_champs>
<BOUCLE_formulaire(FORMULAIRES){id_formulaire}> <BOUCLE_formulaire(FORMULAIRES){id_formulaire}>
......
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