add filename extension if it's missing

This commit is contained in:
Daniel Seifert 2020-06-05 10:06:58 +02:00
parent d13dda978d
commit 0edb64153a
Signed by: DanielS
GPG Key ID: 8A7C4C6ED1915C6F
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_PORTRAIT = 'P';
const PDF_ORIENTATION_LANDSCAPE = 'L'; const PDF_ORIENTATION_LANDSCAPE = 'L';
public $filenameExtension = 'pdf';
/** @var Smarty */ /** @var Smarty */
public $oSmarty; public $oSmarty;
@ -137,6 +139,37 @@ abstract class pdfdocumentsGeneric extends Base implements genericInterface
$this->filename = $filename; $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 * Gets proper file name
* *

View File

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

View File

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