From 6e0ef64f69c98b2b8f02ee4a1896af32c8d39c32 Mon Sep 17 00:00:00 2001 From: fredtempez Date: Wed, 23 Jan 2019 20:11:43 +0100 Subject: [PATCH] Ajout bouton Export CSV dans le formulaire --- module/form/form.php | 34 +++++++++++++++++++++++++++++++++- module/form/view/data/data.php | 8 ++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/module/form/form.php b/module/form/form.php index e470c75a..7fc47819 100755 --- a/module/form/form.php +++ b/module/form/form.php @@ -8,6 +8,8 @@ * * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean + * @author Frédéric Tempez + * @copyright Copyright (C) 2018-2019, Frédéric Tempez * @license GNU General Public License, version 3 * @link http://zwiicms.com/ */ @@ -18,7 +20,9 @@ class form extends common { 'config' => self::GROUP_MODERATOR, 'data' => self::GROUP_MODERATOR, 'delete' => self::GROUP_MODERATOR, - 'index' => self::GROUP_VISITOR + 'index' => self::GROUP_VISITOR, + 'export2csv' => self::GROUP_MODERATOR, + 'output2csv' => self::GROUP_MODERATOR ]; public static $data = []; @@ -135,6 +139,34 @@ class form extends common { ]); } + /** + * Export CSV + * @author Frédéric Tempez + * @copyright Copyright (C) 2018-2019, Frédéric Tempez + */ + public function export2csv() { + $data = $this->getData(['module', $this->getUrl(0), 'data']); + if ($data !== []) { + $csvfilename = 'data-'.date('dmY').'-'.date('hm').'-'.rand(10,99).'.csv'; + if (!file_exists('site/file/source/data')) { + mkdir('site/file/source/data'); + } + $fp = fopen('site/file/source/data/'.$csvfilename, 'w'); + fputcsv($fp, array_keys($data[1]), ';','"'); + foreach ($data as $fields) { + fputcsv($fp, $fields, ';','"'); + } + fclose($fp); + // Valeurs en sortie + $this->addOutput([ + 'notification' => ' Export CSV effectué dans :
'.$csvfilename, + 'redirect' => helper::baseUrl() . $this->getUrl(0) .'/data', + 'state' => true + ]); + } + } + + /** * Suppression */ diff --git a/module/form/view/data/data.php b/module/form/view/data/data.php index 7097bba7..ac04a081 100755 --- a/module/form/view/data/data.php +++ b/module/form/view/data/data.php @@ -7,6 +7,14 @@ 'value' => 'Retour' ]); ?> +
+ 'buttonBlue', + 'href' => helper::baseUrl() . $this->getUrl(0) . '/export2csv', + 'ico' => 'download', + 'value' => 'Export CSV' + ]); ?> +
\ No newline at end of file