public function generate()
{
$errorImage = PIMCORE_PATH . '/static6/img/filetype-not-supported.png';
$generated = false;
if (!$this->asset) {
$this->filesystemPath = $errorImage;
} elseif (!$this->filesystemPath) {
$config = $this->getConfig();
$config->setName("document_" . $config->getName() . "-" . $this->page);
try {
$path = null;
if (!$this->deferred) {
$converter = \Pimcore\Document::getInstance();
$converter->load($this->asset->getFileSystemPath());
$path = PIMCORE_TEMPORARY_DIRECTORY . "/document-image-cache/document_" . $this->asset->getId() . "__thumbnail_" . $this->page . ".png";
if (!is_dir(dirname($path))) {
\Pimcore\File::mkdir(dirname($path));
}
$lockKey = "document-thumbnail-" . $this->asset->getId() . "-" . $this->page;
if (!is_file($path) && !Model\Tool\Lock::isLocked($lockKey)) {
Model\Tool\Lock::lock($lockKey);
$converter->saveImage($path, $this->page);
$generated = true;
Model\Tool\Lock::release($lockKey);
} elseif (Model\Tool\Lock::isLocked($lockKey)) {
return "/pimcore/static6/img/please-wait.png";
}
}
if ($config) {
$path = Image\Thumbnail\Processor::process($this->asset, $config, $path, $this->deferred, true, $generated);
}
$this->filesystemPath = $path;
} catch (\Exception $e) {
Logger::error("Couldn't create image-thumbnail of document " . $this->asset->getRealFullPath());
Logger::error($e);
$this->filesystemPath = $errorImage;
}
\Pimcore::getEventManager()->trigger("asset.document.image-thumbnail", $this, ["deferred" => $this->deferred, "generated" => $generated]);
}
}