From 68a440a53c5640863e81bed276a0fb49a3ccd165 Mon Sep 17 00:00:00 2001 From: Daniel Seifert Date: Mon, 19 Apr 2021 14:36:25 +0200 Subject: [PATCH] filter export filenames --- src/Application/Model/ExportBase.php | 12 +++++++++++- src/Application/Model/ExportRenderer/Csv.php | 2 +- src/Application/Model/ExportRenderer/Pretty.php | 2 +- .../Model/ExportRenderer/RendererInterface.php | 4 ++-- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/Application/Model/ExportBase.php b/src/Application/Model/ExportBase.php index 77fbbca..25eb6b7 100644 --- a/src/Application/Model/ExportBase.php +++ b/src/Application/Model/ExportBase.php @@ -68,7 +68,7 @@ abstract class ExportBase implements QueryBase /** @var $oFS d3filesystem */ $oFS = oxNew(d3filesystem::class); $oFS->startDirectDownload( - $this->getExportFilenameBase().'.'.$this->getFileExtension($format), + $oFS->filterFilename($this->getExportFileName($format)), $content ); } @@ -105,4 +105,14 @@ abstract class ExportBase implements QueryBase $renderer = $this->getRenderer($format); return $renderer->getContent($rows, $fieldnames); } + + /** + * @param $format + * + * @return string + */ + public function getExportFileName($format) : string + { + return $this->getExportFilenameBase().'_'.date('Y-m-d_H-i-s').'.'.$this->getFileExtension($format); + } } \ No newline at end of file diff --git a/src/Application/Model/ExportRenderer/Csv.php b/src/Application/Model/ExportRenderer/Csv.php index 52929ed..b638404 100644 --- a/src/Application/Model/ExportRenderer/Csv.php +++ b/src/Application/Model/ExportRenderer/Csv.php @@ -31,7 +31,7 @@ class Csv implements RendererInterface * @throws Exception * @throws CannotInsertRecord */ - public function getContent($rows, $fieldNames) + public function getContent($rows, $fieldNames): string { $csv = $this->getCsv(); $csv->insertOne($fieldNames); diff --git a/src/Application/Model/ExportRenderer/Pretty.php b/src/Application/Model/ExportRenderer/Pretty.php index 289a81f..7f7e211 100644 --- a/src/Application/Model/ExportRenderer/Pretty.php +++ b/src/Application/Model/ExportRenderer/Pretty.php @@ -19,7 +19,7 @@ use MathieuViossat\Util\ArrayToTextTable; class Pretty implements RendererInterface { - public function getContent($rows, $fieldnames) + public function getContent($rows, $fieldNames) : string { $renderer = oxNew(ArrayToTextTable::class, $rows); return $renderer->getTable(); diff --git a/src/Application/Model/ExportRenderer/RendererInterface.php b/src/Application/Model/ExportRenderer/RendererInterface.php index 0663eaa..704fd75 100644 --- a/src/Application/Model/ExportRenderer/RendererInterface.php +++ b/src/Application/Model/ExportRenderer/RendererInterface.php @@ -17,7 +17,7 @@ namespace D3\DataWizard\Application\Model\ExportRenderer; interface RendererInterface { - public function getContent($rows, $fieldnames); + public function getContent($rows, $fieldNames) : string; - public function getFileExtension(); + public function getFileExtension() : string; } \ No newline at end of file