From 3a0dc389417f37ac47bd964e9e583d4fa7e220e2 Mon Sep 17 00:00:00 2001 From: "maieul@maieul.net" <> Date: Mon, 16 Sep 2013 19:13:05 +0000 Subject: [PATCH] =?UTF-8?q?possibilit=C3=A9=20d'exclure=20certains=20champ?= =?UTF-8?q?=20de=20l'analyse=20(utile=20notamment=20lorsque=20on=20des=20c?= =?UTF-8?q?hamps=20qui=20sont=20uniquement=20l=C3=A0=20pour=20conditionner?= =?UTF-8?q?=20l'affichage=20d'autres=20champs)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- action/exporter_analyse_reponses.php | 9 +++++++-- lang/formidable_fr.php | 2 ++ modeles/formulaire_analyse.html | 9 ++++++--- paquet.xml | 2 +- traiter/enregistrement.yaml | 9 ++++++++- 5 files changed, 24 insertions(+), 7 deletions(-) diff --git a/action/exporter_analyse_reponses.php b/action/exporter_analyse_reponses.php index 5175de85..04b73614 100755 --- a/action/exporter_analyse_reponses.php +++ b/action/exporter_analyse_reponses.php @@ -25,9 +25,14 @@ function action_exporter_analyse_reponses_dist($arg=null) { include_spip('classes/facteur'); include_spip('inc/filtres'); $reponses_completes = array(); - + $saisies = saisies_lister_par_nom(unserialize($formulaire['saisies']), false); - + + // exclure les champs non analysés + $traitement = unserialize($formulaire['traitements']); + foreach (explode("|",$traitement['enregistrement']['analyse_exclure_champs']) as $exclure){ + unset($saisies[$exclure]); + } $res = sql_select( array('nom, valeur'), diff --git a/lang/formidable_fr.php b/lang/formidable_fr.php index bad61524..35381c84 100644 --- a/lang/formidable_fr.php +++ b/lang/formidable_fr.php @@ -7,6 +7,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( // A 'analyse_avec_reponse' => 'Réponses non-vide', + 'analyse_exclure_champs_label'=>'Champs à exclure', + 'analyse_exclure_champs_explication'=>'Mettre le nom des champs à exclure dans l\'analyse, séparé par des <code>|</code>. Ne pas mettre les <code>@</code>.', 'analyse_exporter' => 'Exporter l\'analyse', 'analyse_longueur_moyenne' => 'Longueur moyenne en nombre de mots', 'analyse_nb_reponses_total' => '@nb@ personnes ont répondu à ce formulaire.', diff --git a/modeles/formulaire_analyse.html b/modeles/formulaire_analyse.html index fb8050e3..95c93901 100644 --- a/modeles/formulaire_analyse.html +++ b/modeles/formulaire_analyse.html @@ -1,10 +1,11 @@ <BOUCLE_formulaire(FORMULAIRES){id_formulaire}> +#SET{exclure_champs,#TRAITEMENTS|unserialize|table_valeur{enregistrement}|table_valeur{analyse_exclure_champs}|explode{|}} <div class='formidable_analyse'> -[(#REM) On fait un tableau qui contient toutes les réponses, classées par champ ] +[(#REM) On fait un tableau qui contient toutes les réponses, classées par champ, sauf pour les champs qui sont à ne pas prendre en compte ] #SET{valeurs,#ARRAY} #SET{reponses_total,0} <BOUCLE_reponses(FORMULAIRES_REPONSES){id_formulaire}> -<BOUCLE_champs(FORMULAIRES_REPONSES_CHAMPS){id_formulaires_reponse}{nom ?= #ENV{nom}}> +<BOUCLE_champs(FORMULAIRES_REPONSES_CHAMPS){id_formulaires_reponse}{nom ?= #ENV{nom}}{!nom IN #GET{exclure_champs}}> #SET_MERGE{liste_valeurs, #GET{valeurs}|table_valeur{#NOM}|sinon{#ARRAY}, #ARRAY{0,#VALEUR|tenter_unserialize}} #SET_MERGE{valeurs, #ARRAY{#NOM,#GET{liste_valeurs}}} </BOUCLE_champs> @@ -20,7 +21,9 @@ <BOUCLE_saisies(POUR){tableau #SAISIES|unserialize|saisies_lister_par_nom}> [(#VAL{saisie}|array_key_exists{#VALEUR}|oui) [(#CLE|=={#ENV{nom,#CLE}}|oui) - [(#VALEUR|formidable_analyser_saisie{#GET{valeurs}, #GET{reponses_total}})] + [(#CLE|in_array{#GET{exclure_champs}}|non) + [(#VALEUR|formidable_analyser_saisie{#GET{valeurs}, #GET{reponses_total}})] + ] ] ] </BOUCLE_saisies> diff --git a/paquet.xml b/paquet.xml index 33390c9b..74489145 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,7 +1,7 @@ <paquet prefix="formidable" categorie="communication" - version="1.6.2" + version="1.7.0" etat="test" compatibilite="[3.0.0-dev;3.0.*]" logo="images/formidable-64.png" diff --git a/traiter/enregistrement.yaml b/traiter/enregistrement.yaml index 1643db31..4cbf1c1d 100644 --- a/traiter/enregistrement.yaml +++ b/traiter/enregistrement.yaml @@ -58,4 +58,11 @@ options: datas: posteriori: '<:forum:bouton_radio_modere_posteriori:>' priori: '<:forum:bouton_radio_modere_priori:>' - defaut: 'posteriori' \ No newline at end of file + defaut: 'posteriori' + - + saisie: 'textarea' + options: + nom: 'analyse_exclure_champs' + label: '<:formidable:analyse_exclure_champs_label:>' + explication: '<:formidable:analyse_exclure_champs_explication:>' + rows: 4 \ No newline at end of file -- GitLab