/**
* @param $thumbnailName
* @param int $page
* @param bool $deferred $deferred deferred means that the image will be generated on-the-fly (details see below)
* @return mixed|string
*/
public function getImageThumbnail($thumbnailName, $page = 1, $deferred = false)
{
// just 4 testing
//$this->clearThumbnails(true);
if (!\Pimcore\Document::isAvailable()) {
\Logger::error("Couldn't create image-thumbnail of document " . $this->getFullPath() . " no document adapter is available");
return "/pimcore/static/img/filetype-not-supported.png";
}
$thumbnail = Image\Thumbnail\Config::getByAutoDetect($thumbnailName);
$thumbnail->setName("document_" . $thumbnail->getName() . "-" . $page);
try {
if (!$deferred) {
$converter = \Pimcore\Document::getInstance();
$converter->load($this->getFileSystemPath());
$path = PIMCORE_TEMPORARY_DIRECTORY . "/document-image-cache/document_" . $this->getId() . "__thumbnail_" . $page . ".png";
if (!is_dir(dirname($path))) {
\Pimcore\File::mkdir(dirname($path));
}
$lockKey = "document-thumbnail-" . $this->getId() . "-" . $page;
if (!is_file($path) && !Model\Tool\Lock::isLocked($lockKey)) {
Model\Tool\Lock::lock($lockKey);
$converter->saveImage($path, $page);
Model\Tool\Lock::release($lockKey);
} else {
if (Model\Tool\Lock::isLocked($lockKey)) {
return "/pimcore/static/img/please-wait.png";
}
}
}
if ($thumbnail) {
$path = Image\Thumbnail\Processor::process($this, $thumbnail, $path, $deferred);
}
return preg_replace("@^" . preg_quote(PIMCORE_DOCUMENT_ROOT) . "@", "", $path);
} catch (\Exception $e) {
\Logger::error("Couldn't create image-thumbnail of document " . $this->getFullPath());
\Logger::error($e);
}
return "/pimcore/static/img/filetype-not-supported.png";
}