remove ModCfg dependency
because of minimal usage
This commit is contained in:
parent
ec7d3f5622
commit
4c9dbbdabc
@ -11,7 +11,6 @@
|
|||||||
namespace D3\PdfDocuments\Application\Model\AbstractClasses;
|
namespace D3\PdfDocuments\Application\Model\AbstractClasses;
|
||||||
|
|
||||||
use Assert\InvalidArgumentException;
|
use Assert\InvalidArgumentException;
|
||||||
use D3\ModCfg\Application\Model\d3filesystem;
|
|
||||||
use D3\PdfDocuments\Application\Model\Constants;
|
use D3\PdfDocuments\Application\Model\Constants;
|
||||||
use D3\PdfDocuments\Application\Model\Exceptions\pdfGeneratorExceptionAbstract;
|
use D3\PdfDocuments\Application\Model\Exceptions\pdfGeneratorExceptionAbstract;
|
||||||
use D3\PdfDocuments\Application\Model\Interfaces\pdfdocumentsGenericInterface as genericInterface;
|
use D3\PdfDocuments\Application\Model\Interfaces\pdfdocumentsGenericInterface as genericInterface;
|
||||||
@ -187,37 +186,12 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface
|
|||||||
unset($iSelLang);
|
unset($iSelLang);
|
||||||
|
|
||||||
$this->oTemplateEngine->addGlobal('config', Registry::getConfig());
|
$this->oTemplateEngine->addGlobal('config', Registry::getConfig());
|
||||||
$this->oTemplateEngine->addGlobal('sAlternativePdfLogo', $this->getAlternativePdfLogoFileName());
|
|
||||||
$this->oTemplateEngine->addGlobal('oViewConf', Registry::getConfig()->getActiveView()->getViewConfig());
|
$this->oTemplateEngine->addGlobal('oViewConf', Registry::getConfig()->getActiveView()->getViewConfig());
|
||||||
$this->oTemplateEngine->addGlobal('shop', Registry::getConfig()->getActiveShop());
|
$this->oTemplateEngine->addGlobal('shop', Registry::getConfig()->getActiveShop());
|
||||||
$this->oTemplateEngine->addGlobal('lang', Registry::getLang());
|
$this->oTemplateEngine->addGlobal('lang', Registry::getLang());
|
||||||
$this->oTemplateEngine->addGlobal('document', $this);
|
$this->oTemplateEngine->addGlobal('document', $this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getAlternativePdfLogoFileName() :string
|
|
||||||
{
|
|
||||||
$sStandardLogoFile = 'pdf_logo.jpg';
|
|
||||||
$oViewConf = Registry::getConfig()->getActiveView()->getViewConfig();
|
|
||||||
$moduleSettingService = ContainerFacade::get(ModuleSettingServiceInterface::class);
|
|
||||||
$sAlternativePdfLogoName = $moduleSettingService->getString(Constants::OXID_MODULE_ID."_sAlternativePdfLogoName", Constants::OXID_MODULE_ID);
|
|
||||||
|
|
||||||
$sAlternativePdfLogoName = trim($sAlternativePdfLogoName) ?: $sStandardLogoFile;
|
|
||||||
|
|
||||||
$bAlternativeFileExists = file_exists(Registry::getConfig()->getImagePath($sAlternativePdfLogoName));
|
|
||||||
$bFileExists = file_exists(Registry::getConfig()->getImagePath($sStandardLogoFile));
|
|
||||||
|
|
||||||
return $bAlternativeFileExists
|
|
||||||
? $oViewConf->getImageUrl($sAlternativePdfLogoName, true)
|
|
||||||
: (
|
|
||||||
$bFileExists
|
|
||||||
? $oViewConf->getImageUrl($sStandardLogoFile, true)
|
|
||||||
: ""
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param int $iSelLang
|
* @param int $iSelLang
|
||||||
*
|
*
|
||||||
@ -324,14 +298,68 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface
|
|||||||
/**
|
/**
|
||||||
* Gets proper file name
|
* Gets proper file name
|
||||||
*
|
*
|
||||||
* @param string $sFilename file name
|
* @param $filename
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function makeValidFileName($sFilename)
|
public function makeValidFileName($filename)
|
||||||
{
|
{
|
||||||
$fs = oxNew(d3filesystem::class);
|
// sanitize filename
|
||||||
return $fs->filterFilename($sFilename);
|
$filename = preg_replace(
|
||||||
|
'~
|
||||||
|
[<>:"/\\\\|?*]| # file system reserved
|
||||||
|
[\x00-\x1F]| # control characters
|
||||||
|
[\x7F\xA0\xAD]| # non-printing characters DEL, NO-BREAK SPACE, SOFT HYPHEN
|
||||||
|
[#\[\]@!$&\'()+,;=]| # URI reserved
|
||||||
|
[{}^\~`] # URL unsafe characters
|
||||||
|
~x',
|
||||||
|
'-',
|
||||||
|
$filename
|
||||||
|
);
|
||||||
|
|
||||||
|
// avoids ".", ".." or ".hiddenFiles"
|
||||||
|
$filename = ltrim($filename, '.-');
|
||||||
|
|
||||||
|
$filename = $this->beautifyFilename($filename);
|
||||||
|
|
||||||
|
// maximize filename length to 255 bytes
|
||||||
|
$ext = pathinfo($filename, PATHINFO_EXTENSION);
|
||||||
|
$filename = mb_strcut(
|
||||||
|
pathinfo($filename, PATHINFO_FILENAME),
|
||||||
|
0,
|
||||||
|
255 - ($ext ? strlen($ext) + 1 : 0),
|
||||||
|
mb_detect_encoding($filename)
|
||||||
|
) . ($ext ? '.' . $ext : '');
|
||||||
|
|
||||||
|
return $filename;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function beautifyFilename($filename)
|
||||||
|
{
|
||||||
|
// reduce consecutive characters
|
||||||
|
$filename = preg_replace([
|
||||||
|
// "file name.zip" becomes "file-name.zip"
|
||||||
|
'/ +/',
|
||||||
|
// "file___name.zip" becomes "file-name.zip"
|
||||||
|
'/_{2,}/',
|
||||||
|
// "file---name.zip" becomes "file-name.zip"
|
||||||
|
'/-+/',
|
||||||
|
], '-', $filename);
|
||||||
|
|
||||||
|
$filename = preg_replace([
|
||||||
|
// "file--.--.-.--name.zip" becomes "file.name.zip"
|
||||||
|
'/-*\.-*/',
|
||||||
|
// "file...name..zip" becomes "file.name.zip"
|
||||||
|
'/\.{2,}/',
|
||||||
|
], '.', $filename);
|
||||||
|
|
||||||
|
// lowercase for windows/unix interoperability
|
||||||
|
$filename = mb_strtolower($filename, mb_detect_encoding($filename));
|
||||||
|
|
||||||
|
// ".file-name.-" becomes "file-name"
|
||||||
|
$filename = trim($filename, '.-');
|
||||||
|
|
||||||
|
return trim($filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -33,7 +33,6 @@
|
|||||||
"php": "^8.0",
|
"php": "^8.0",
|
||||||
"oxid-esales/oxideshop-ce": "7.0 - 7.1",
|
"oxid-esales/oxideshop-ce": "7.0 - 7.1",
|
||||||
"spipu/html2pdf": "~5.2.8",
|
"spipu/html2pdf": "~5.2.8",
|
||||||
"d3/modcfg": "^7.1",
|
|
||||||
"beberlei/assert": "^3.3.2"
|
"beberlei/assert": "^3.3.2"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user