From 1c8321ee6aaacc354d95f791b18fadb29d540a36 Mon Sep 17 00:00:00 2001 From: "nicolas.dorigny@gmail.com" <> Date: Mon, 5 Oct 2015 14:35:24 +0000 Subject: [PATCH] =?UTF-8?q?Ajout=20d'une=20option=20pour=20l'export=20des?= =?UTF-8?q?=20r=C3=A9ponses=20:=20uniquement=20les=20publi=C3=A9es,=20ou?= =?UTF-8?q?=20toutes.=20Retour=20avec=20message=20d'erreur=20si=20aucune?= =?UTF-8?q?=20r=C3=A9ponse=20export=C3=A9e.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- formulaires/exporter_formulaire_reponses.html | 14 ++++++--- formulaires/exporter_formulaire_reponses.php | 30 +++++++++++++------ lang/formidable_fr.php | 3 ++ paquet.xml | 2 +- 4 files changed, 35 insertions(+), 14 deletions(-) diff --git a/formulaires/exporter_formulaire_reponses.html b/formulaires/exporter_formulaire_reponses.html index 63f1117c..4e75bb8d 100644 --- a/formulaires/exporter_formulaire_reponses.html +++ b/formulaires/exporter_formulaire_reponses.html @@ -1,9 +1,10 @@ [(#SET{type_export, #ARRAY{csv,<:formidable:reponses_exporter_format_csv:>,xls,<:formidable:reponses_exporter_format_xls:>}})] +[(#SET{statut, #ARRAY{publie,<:formidable:reponses_exporter_statut_publie:>,tout,<:formidable:reponses_exporter_statut_tout:>}})] <div class="formulaire_spip formulaire_#ENV{form}[ formulaire_#ENV{form}-(#ENV{id})]"> <h3 class="titrem"> - [(#CHEMIN{images/formulaire-reponses-exporter-24.png}|balise_img{horizontale})] - <:formidable:reponses_exporter:></h3> + [(#CHEMIN{images/formulaire-reponses-exporter-24.png}|balise_img{horizontale})] + <:formidable:reponses_exporter:></h3> [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>] [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] @@ -15,8 +16,13 @@ [(#SAISIE{selection, type_export, label=<:formidable:exporter_formulaire_format_label:>, datas=#GET{type_export}, - defaut=csv, - cacher_option_intro=oui})] + defaut=csv, + cacher_option_intro=oui})] + [(#SAISIE{selection, statut_reponses, + label=<:formidable:exporter_formulaire_statut_label:>, + datas=#GET{statut}, + defaut=publie, + cacher_option_intro=oui})] </[(#VAL{ul}|saisie_balise_structure_formulaire)]> diff --git a/formulaires/exporter_formulaire_reponses.php b/formulaires/exporter_formulaire_reponses.php index 7d80d0e5..fa2b9515 100644 --- a/formulaires/exporter_formulaire_reponses.php +++ b/formulaires/exporter_formulaire_reponses.php @@ -23,12 +23,18 @@ function formulaires_exporter_formulaire_reponses_verifier($id_formulaire = 0) { function formulaires_exporter_formulaire_reponses_traiter($id_formulaire = 0) { $retours = array(); + $statut_reponses = _request('statut_reponses'); if (_request('type_export') == 'csv') { - exporter_formulaires_reponses($id_formulaire); + $ok = exporter_formulaires_reponses($id_formulaire, ',', $statut_reponses); } else if (_request('type_export') == 'xls') { - exporter_formulaires_reponses($id_formulaire, "TAB"); + $ok = exporter_formulaires_reponses($id_formulaire, 'TAB', $statut_reponses); + } + + if(!$ok) { + $retours['editable'] = 1; + $retours['message_erreur'] = _T('formidable:info_aucune_reponse'); } return $retours; @@ -40,14 +46,13 @@ function formulaires_exporter_formulaire_reponses_traiter($id_formulaire = 0) { * @param integer $id_formulaire * @return unknown_type */ -function exporter_formulaires_reponses($id_formulaire, $delim = ",") { - +function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_reponses = 'publie') { + include_spip('inc/puce_statut'); // on ne fait des choses seulements si le formulaire existe et qu'il a des enregistrements - $ok = false; if ( $id_formulaire > 0 and $formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = ' . $id_formulaire) - and $reponses = sql_allfetsel('*', 'spip_formulaires_reponses', 'id_formulaire = ' . $id_formulaire . ' and statut = ' . sql_quote('publie')) + and $reponses = sql_allfetsel('*', 'spip_formulaires_reponses', 'id_formulaire = ' . $id_formulaire . ($statut_reponses == 'publie' ? ' and statut = "publie"' : '')) ) { include_spip('inc/saisies'); include_spip('facteur_fonctions'); @@ -60,6 +65,9 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ",") { _T('formidable:reponses_auteur'), _T('formidable:reponses_ip') ); + if($statut_reponses != 'publie'){ + $titres[] = _T('formidable:reponse_statut'); + } $saisies = saisies_lister_par_nom(unserialize($formulaire['saisies']), false); foreach ($saisies as $nom => $saisie) { if ($saisie['saisie'] != "explication") { // on exporte tous les champs sauf explications @@ -85,8 +93,11 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ",") { $reponse['date'], $nom_auteur, $reponse['ip'] - ); - + ); + if($statut_reponses != 'publie'){ + $reponse_complete[] = statut_texte_instituer('formulaires_reponse', $reponse['statut']); + } + // Ensuite tous les champs foreach ($saisies as $nom => $saisie) { if ($saisie['saisie'] != "explication") { @@ -122,7 +133,8 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ",") { $exporter_csv('reponses-formulaire-' . $formulaire['identifiant'], $reponses_completes, $delim); exit(); } + } else { + return false; } } -?> diff --git a/lang/formidable_fr.php b/lang/formidable_fr.php index 79cef171..1b9774ef 100644 --- a/lang/formidable_fr.php +++ b/lang/formidable_fr.php @@ -75,6 +75,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'erreur_importer_yaml' => 'Erreur durant l’importation du fichier YAML', 'erreur_inexistant' => 'Le formulaire n’existe pas.', 'exporter_formulaire_format_label' => 'Format du fichier', + 'exporter_formulaire_statut_label' => 'Réponses', // F 'formulaire_anonyme_explication' => 'Ce formulaire est anonyme, c’est à dire que l’identité de l’utilisateur n’est pas enregistrée.', @@ -135,6 +136,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'reponses_exporter' => 'Exporter les réponses', 'reponses_exporter_format_csv' => 'Tableur .CSV', 'reponses_exporter_format_xls' => 'Excel .XLS', + 'reponses_exporter_statut_publie' => 'Publiées', + 'reponses_exporter_statut_tout' => 'Toutes', 'reponses_exporter_telecharger' => 'Télécharger', 'reponses_ip' => 'Adresse IP', 'reponses_liste' => 'Liste des réponses', diff --git a/paquet.xml b/paquet.xml index 8226f8e4..9c602701 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,7 +1,7 @@ <paquet prefix="formidable" categorie="communication" - version="2.9.2" + version="2.9.3" etat="stable" compatibilite="[3.0.0;3.1.*]" logo="images/formidable-64.png" -- GitLab