diff --git a/Application/Model/AbstractClasses/pdfdocumentsGeneric.php b/Application/Model/AbstractClasses/pdfdocumentsGeneric.php index 0551997..be836a2 100644 --- a/Application/Model/AbstractClasses/pdfdocumentsGeneric.php +++ b/Application/Model/AbstractClasses/pdfdocumentsGeneric.php @@ -10,6 +10,7 @@ namespace D3\PdfDocuments\Application\Model\AbstractClasses; +use D3\ModCfg\Application\Model\d3filesystem; use D3\PdfDocuments\Application\Model\Exceptions\pdfGeneratorExceptionAbstract; use D3\PdfDocuments\Application\Model\Interfaces\pdfdocumentsGenericInterface as genericInterface; use OxidEsales\Eshop\Core\Base; @@ -218,15 +219,15 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface { // forced filename from setFilename() if ($this->filename) { - return $this->addFilenameExtension( - $this->makeValidFileName( + return $this->makeValidFileName( + $this->addFilenameExtension( $this->filename ) ); } - return $this->addFilenameExtension( - $this->makeValidFileName( + return $this->makeValidFileName( + $this->addFilenameExtension( $this->getTypeForFilename() ) ); @@ -257,10 +258,8 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface */ public function makeValidFileName($sFilename) { - $sFilename = preg_replace('/[\s]+/', '_', $sFilename); - $sFilename = preg_replace('/[^a-zA-Z0-9_\.-]/', '', $sFilename); - - return str_replace(' ', '_', $sFilename); + $fs = oxNew(d3filesystem::class); + return $fs->filterFilename($sFilename); } /** diff --git a/Application/Model/AbstractClasses/pdfdocumentsOrder.php b/Application/Model/AbstractClasses/pdfdocumentsOrder.php index aa38398..98235b9 100644 --- a/Application/Model/AbstractClasses/pdfdocumentsOrder.php +++ b/Application/Model/AbstractClasses/pdfdocumentsOrder.php @@ -63,8 +63,8 @@ abstract class pdfdocumentsOrder extends pdfdocumentsGeneric implements orderInt { // forced filename from setFilename() if ($this->filename) { - return $this->addFilenameExtension( - $this->makeValidFileName( + return $this->makeValidFileName( + $this->addFilenameExtension( $this->filename ) ); @@ -72,8 +72,8 @@ abstract class pdfdocumentsOrder extends pdfdocumentsGeneric implements orderInt $sTrimmedBillName = trim($this->getOrder()->getFieldData('oxbilllname')); - return $this->addFilenameExtension( - $this->makeValidFileName( + return $this->makeValidFileName( + $this->addFilenameExtension( implode( '_', [ diff --git a/composer.json b/composer.json index 5bd20e3..6191757 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,8 @@ "require": { "php": "^7.0", "oxid-esales/oxideshop-ce": "6.3 - 6.6", - "spipu/html2pdf": "^5.2" + "spipu/html2pdf": "^5.2", + "d3/modcfg": "^5.3.6.000" }, "autoload": { "psr-4": { diff --git a/docs/daux/installation/010_Anforderungen/010_Systemanforderungen.md b/docs/daux/installation/010_Anforderungen/010_Systemanforderungen.md index c95646c..d4a961b 100644 --- a/docs/daux/installation/010_Anforderungen/010_Systemanforderungen.md +++ b/docs/daux/installation/010_Anforderungen/010_Systemanforderungen.md @@ -10,6 +10,7 @@ title: Systemanforderungen * 6.2.x * Themes * Diese Modul bindet sich nicht in Frontendthemes ein und ist daher davon unabhängig +* (D3) Modul-Connector ([kostenfrei bei D3 erhältlich](https://www.oxidmodule.com/connector/)) ab Version 5.3.6.0 * Template-Engine * Smarty * Installation via [Composer](https://getcomposer.org)