diff --git a/action/exporter_analyse_reponses.php b/action/exporter_analyse_reponses.php index 5175de8548100ceeb4028bdadacbbb4d9b45a43f..04b73614bb8512b9a9245c74a1e1554380756cb7 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 bad6152444f33406b7a3618d0dee870ceb263942..35381c842fb02e8a89825a859c9bb6d13c687da4 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 fb8050e35cdd31fc74dbc42e0bb152a1eb8aa4cc..95c93901121c4b4b236865f0276a76a9443d201b 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 33390c9b46dec5a17302cd80a395b0d877d99a13..7448914568d58325ed946343f1c852b164e6baad 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 1643db31ba22e081d93a2cbb1bf22aff70347bc7..4cbf1c1d5a0dbeb332ea1b79dce1a6b42dbaa6f7 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