diff --git a/src/PhpSpreadsheet/TemplateFiller/Template.php b/src/PhpSpreadsheet/TemplateFiller/Template.php index 4a0e5be..b38faff 100644 --- a/src/PhpSpreadsheet/TemplateFiller/Template.php +++ b/src/PhpSpreadsheet/TemplateFiller/Template.php @@ -92,7 +92,7 @@ public function setData($d) $maxRowsVar = ''; } - $cachedTemplateKey = $this->templateCache->getCacheTemplateKey(basename($this->path), $maxRows); + $cachedTemplateKey = $this->templateCache->getCacheTemplateKey(basename($this->path), $maxRows, $this->probeausdruck); if ($cachedTemplateKey && $this->templateCache->exists($cachedTemplateKey) && !$this->templateCache->isInvalid($cachedTemplateKey, $this->path)) { $this->templateParser = $this->templateCache->loadFromCache($cachedTemplateKey); diff --git a/src/PhpSpreadsheet/TemplateFiller/TemplateCache.php b/src/PhpSpreadsheet/TemplateFiller/TemplateCache.php index 6a7c351..de0d686 100644 --- a/src/PhpSpreadsheet/TemplateFiller/TemplateCache.php +++ b/src/PhpSpreadsheet/TemplateFiller/TemplateCache.php @@ -24,7 +24,7 @@ public static function setCache(CacheInterface $cacheClass) self::$cacheClass = $cacheClass; } - public function getCacheTemplateKey($filename, $maxRows) + public function getCacheTemplateKey($filename, $maxRows, $probeausdruck = false) { $meta = $this->getTemplateMeta(); if (self::$cacheClass && isset($meta[$filename])) { @@ -32,7 +32,7 @@ public function getCacheTemplateKey($filename, $maxRows) $breakPoints = $fileCache['breakpoints']; if ($breakPoints[TemplateParser::ONEPAGER] >= $maxRows) { - return self::getCacheKey($filename, TemplateParser::ONEPAGER, 0); + return self::getCacheKey($filename, TemplateParser::ONEPAGER, 0, $probeausdruck); } if (!isset($breakPoints[TemplateParser::TWOPAGER]) && !isset($breakPoints[TemplateParser::MULTIPAGER])) { @@ -40,7 +40,7 @@ public function getCacheTemplateKey($filename, $maxRows) } if (isset($breakPoints[TemplateParser::TWOPAGER]) && $breakPoints[TemplateParser::TWOPAGER] >= $maxRows) { - return self::getCacheKey($filename, TemplateParser::TWOPAGER, 0); + return self::getCacheKey($filename, TemplateParser::TWOPAGER, 0, $probeausdruck); } if (!isset($breakPoints[TemplateParser::MULTIPAGER])) { @@ -52,7 +52,7 @@ public function getCacheTemplateKey($filename, $maxRows) $neededRows = $maxRows - ($breakPoints[TemplateParser::NAME_STARTPAGE] + $breakPoints[TemplateParser::NAME_ENDPAGE]); } $additionalPages = max(0, ceil($neededRows / $breakPoints[TemplateParser::MULTIPAGER])); - return self::getCacheKey($filename, TemplateParser::MULTIPAGER, $additionalPages); + return self::getCacheKey($filename, TemplateParser::MULTIPAGER, $additionalPages, $probeausdruck); } return null; } @@ -93,9 +93,9 @@ private function getTemplateMeta() return null; } - public static function getCacheKey($filename, $type, $additionalPages = 0) + public static function getCacheKey($filename, $type, $additionalPages = 0, $probeausdruck = false) { - return $filename.'_'.$type.'_'.$additionalPages; + return $filename.'_'.$type.'_'.($probeausdruck ? 'probe_' : '').$additionalPages; } public function loadFromCache($cachedTemplateKey) diff --git a/src/PhpSpreadsheet/TemplateFiller/TemplateParser.php b/src/PhpSpreadsheet/TemplateFiller/TemplateParser.php index 3a6afc5..1f5cc77 100644 --- a/src/PhpSpreadsheet/TemplateFiller/TemplateParser.php +++ b/src/PhpSpreadsheet/TemplateFiller/TemplateParser.php @@ -67,6 +67,9 @@ class TemplateParser /** @var array */ private $headerFooter = []; + /** @var boolean */ + private $probeausdruck = false; + public function __construct($path) { $this->path = $path; @@ -466,7 +469,7 @@ public function getPreparedSpreadsheet() public function getCacheKey() { - return TemplateCache::getCacheKey(basename($this->path), self::getTypeNameByIndex($this->selectedIndex), $this->additionalPages); + return TemplateCache::getCacheKey(basename($this->path), self::getTypeNameByIndex($this->selectedIndex), $this->additionalPages, $this->probeausdruck); } public function getPath() @@ -500,6 +503,7 @@ public function setLogo($path, $header, $position = HeaderFooter::IMAGE_HEADER_L } public function setProbeausdruck($path) { + $this->probeausdruck = true; $drawing = new HeaderFooterDrawing(); $drawing->setName('Logo'); $drawing->setPath($path);