From 68b330751ffa8ccfa15b0fb4968a838e82a5e3ae Mon Sep 17 00:00:00 2001 From: "prigent.yohann@gmail.com" <> Date: Thu, 17 Aug 2017 14:40:21 +0000 Subject: [PATCH] =?UTF-8?q?Une=20nouvelle=20fonctionnalit=C3=A9=20pour=20F?= =?UTF-8?q?ormidable=20:=20pouvoir=20filtre=20par=20date=20lors=20d?= =?UTF-8?q?=E2=80=99un=20export=20de=20r=C3=A9ponses?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- formulaires/exporter_formulaire_reponses.html | 6 ++++++ formulaires/exporter_formulaire_reponses.php | 19 ++++++++++++++++--- lang/formidable_fr.php | 3 +++ paquet.xml | 4 ++-- 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/formulaires/exporter_formulaire_reponses.html b/formulaires/exporter_formulaire_reponses.html index f73eb9c9..ad52d4e2 100644 --- a/formulaires/exporter_formulaire_reponses.html +++ b/formulaires/exporter_formulaire_reponses.html @@ -23,6 +23,12 @@ datas=#GET{statut}, defaut=publie, cacher_option_intro=oui})] + [(#SAISIE{date, date_debut, + label=<:formidable:exporter_formulaire_date_debut_label:> + })] + [(#SAISIE{date, date_fin, + label=<:formidable:exporter_formulaire_date_fin_label:> + })] </[(#VAL{ul}|saisie_balise_structure_formulaire)]> [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ] diff --git a/formulaires/exporter_formulaire_reponses.php b/formulaires/exporter_formulaire_reponses.php index 7ceb3316..cf284983 100644 --- a/formulaires/exporter_formulaire_reponses.php +++ b/formulaires/exporter_formulaire_reponses.php @@ -19,17 +19,28 @@ function formulaires_exporter_formulaire_reponses_charger($id_formulaire = 0) { function formulaires_exporter_formulaire_reponses_verifier($id_formulaire = 0) { $erreurs = array(); + if (_request('date_debut') && _request('date_fin')) { + // Vérifions que la date debut soit < date de fin + if (strtotime(str_replace('/', '-', _request('date_debut'))) > strtotime(str_replace('/', '-', _request('date_fin')))) { + $erreurs['message_erreur'] = _T('formidable:exporter_formulaire_date_erreur'); + } + } + return $erreurs; } function formulaires_exporter_formulaire_reponses_traiter($id_formulaire = 0) { $retours = array(); $statut_reponses = _request('statut_reponses'); + // Normaliser la date + $verifier = charger_fonction('verifier', 'inc/'); + $date_debut = _request('date_debut') ? $verifier(_request('date_debut'), 'date', array('normaliser' => 'datetime')) : false; + $date_fin = _request('date_fin') ? $verifier(_request('date_fin'), 'date', array('normaliser' => 'datetime')) : false; if (_request('type_export') == 'csv') { - $ok = exporter_formulaires_reponses($id_formulaire, ',', $statut_reponses); + $ok = exporter_formulaires_reponses($id_formulaire, ',', $statut_reponses, $date_debut, $date_fin); } elseif (_request('type_export') == 'xls') { - $ok = exporter_formulaires_reponses($id_formulaire, 'TAB', $statut_reponses); + $ok = exporter_formulaires_reponses($id_formulaire, 'TAB', $statut_reponses, $date_debut, $date_fin); } if (!$ok) { @@ -45,7 +56,7 @@ function formulaires_exporter_formulaire_reponses_traiter($id_formulaire = 0) { * @param integer $id_formulaire * @return unknown_type */ -function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_reponses = 'publie') { +function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_reponses = 'publie', $date_debut = false, $date_fin = false) { include_spip('inc/puce_statut'); // on ne fait des choses seulements si le formulaire existe et qu'il a des enregistrements if ($id_formulaire > 0 @@ -54,6 +65,8 @@ function exporter_formulaires_reponses($id_formulaire, $delim = ',', $statut_rep '*', 'spip_formulaires_reponses', 'id_formulaire = ' . intval($id_formulaire) . ($statut_reponses == 'publie' ? ' and statut = "publie"' : '') + . ($date_debut ? ' and date >= "'. $date_debut. '"' : '') + . ($date_fin ? ' and date <= "'.$date_fin.'"' : '') )) { include_spip('inc/saisies'); include_spip('facteur_fonctions'); diff --git a/lang/formidable_fr.php b/lang/formidable_fr.php index 18b84e47..3ad0e8fb 100644 --- a/lang/formidable_fr.php +++ b/lang/formidable_fr.php @@ -90,6 +90,9 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( 'erreur_importer_yaml' => 'Erreur durant l’importation du fichier YAML', 'erreur_inexistant' => 'Le formulaire n’existe pas.', 'erreur_unicite' => 'Cette valeur est déjà utilisée', + 'exporter_formulaire_date_debut_label' => 'A partir de', + 'exporter_formulaire_date_fin_label' => 'Jusqu\'au', + 'exporter_formulaire_date_erreur' => 'La date de fin doit être inférieure à la date de début', 'exporter_formulaire_format_label' => 'Format du fichier', 'exporter_formulaire_statut_label' => 'Réponses', diff --git a/paquet.xml b/paquet.xml index 9bbd82db..30a9b951 100644 --- a/paquet.xml +++ b/paquet.xml @@ -1,7 +1,7 @@ <paquet prefix="formidable" categorie="communication" - version="3.5.0" + version="3.5.1" etat="stable" compatibilite="[3.0.0;3.2.*]" logo="images/formidable-64.png" @@ -38,7 +38,7 @@ <pipeline nom="corbeille_table_infos" inclure="formidable_pipelines.php" /> <necessite nom="spip_bonux" compatibilite="[3.3.8;[" /> <necessite nom="saisies" compatibilite="[2.18.10;[" /> - <necessite nom="verifier" compatibilite="[1.6.2;[" /> + <necessite nom="verifier" compatibilite="[1.6.6;[" /> <necessite nom="yaml" compatibilite="[1.5.2;[" /> <necessite nom="facteur" compatibilite="[3.4.7;[" /> -- GitLab