add filename extension if it's missing

This commit is contained in:
Daniel Seifert 2020-06-05 10:06:58 +02:00
parent 4949ef834e
commit 3a3e22ac3b
3 changed files with 50 additions and 8 deletions

View File

@ -36,6 +36,8 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface
const PDF_ORIENTATION_PORTRAIT = 'P';
const PDF_ORIENTATION_LANDSCAPE = 'L';
public $filenameExtension = 'pdf';
/** @var Smarty */
public $oSmarty;
@ -137,6 +139,37 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface
$this->filename = $filename;
}
/**
* @param string $sFilename
*
* @return string
*/
public function getFilename()
{
// forced filename from setFilename()
if ($this->filename) {
return $this->addFilenameExtension($this->filename);
}
return $this->addFilenameExtension($this->getTypeForFilename());
}
/**
* @param string $filename
*
* @return string
*/
public function addFilenameExtension($filename)
{
$extension = $this->filenameExtension;
$extensionLength = (strlen($extension) + 1) * -1;
if ((bool) strlen($extension) && substr($filename, $extensionLength) != '.'.$extension) {
$filename .= '.'.$extension;
}
return $filename;
}
/**
* Gets proper file name
*

View File

@ -68,18 +68,20 @@ abstract class pdfdocumentsOrder extends pdfdocumentsGeneric implements orderInt
{
// forced filename from setFilename()
if ($this->filename) {
return $this->filename;
return $this->addFilenameExtension($this->filename);
}
$sTrimmedBillName = trim($this->getOrder()->getFieldData('oxbilllname'));
return implode(
'_',
[
$this->getTypeForFilename(),
$this->getOrder()->getFieldData('oxordernr'),
$sTrimmedBillName . ".pdf"
]
return $this->addFilenameExtension(
implode(
'_',
[
$this->getTypeForFilename(),
$this->getOrder()->getFieldData('oxordernr'),
$sTrimmedBillName
]
)
);
}

View File

@ -65,4 +65,11 @@ interface pdfdocumentsGenericInterface
* @return string
*/
public function getFilename();
/**
* @param string $filename
*
* @return string
*/
public function addFilenameExtension($filename);
}