getByAutoDetect() public static method

public static getByAutoDetect ( $config ) : self | boolean
$config
return self | boolean
Example #1
0
 /**
  * @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";
 }
Example #2
0
 /**
  * @param $selector
  * @return bool|static
  */
 protected function createConfig($selector)
 {
     $config = Image\Thumbnail\Config::getByAutoDetect($selector);
     if ($config) {
         $format = strtolower($config->getFormat());
         if ($format == "source") {
             $config->setFormat("PNG");
         }
     }
     return $config;
 }
 public function getDocumentThumbnailAction()
 {
     $document = Asset::getById(intval($this->getParam("id")));
     $thumbnail = Asset\Image\Thumbnail\Config::getByAutoDetect($this->getAllParams());
     $format = strtolower($thumbnail->getFormat());
     if ($format == "source") {
         $thumbnail->setFormat("jpeg");
         // default format for documents is JPEG not PNG (=too big)
     }
     if ($this->getParam("treepreview")) {
         $thumbnail = Asset\Image\Thumbnail\Config::getPreviewConfig();
     }
     $page = 1;
     if (is_numeric($this->getParam("page"))) {
         $page = (int) $this->getParam("page");
     }
     $thumbnailFile = PIMCORE_DOCUMENT_ROOT . $document->getImageThumbnail($thumbnail, $page);
     $format = "png";
     header("Content-type: image/" . $format, true);
     header("Content-Length: " . filesize($thumbnailFile), true);
     $this->sendThumbnailCacheHeaders();
     while (@ob_end_flush()) {
     }
     flush();
     readfile($thumbnailFile);
     exit;
 }
Example #4
0
 /**
  * @param  $config
  * @return Image\Thumbnail\Config|bool|Thumbnail
  */
 public function getImageThumbnailConfig($config)
 {
     return Image\Thumbnail\Config::getByAutoDetect($config);
 }
Example #5
0
 /**
  * Get a thumbnail image configuration.
  * @param mixed $selector Name, array or object describing a thumbnail configuration.
  * @return Thumbnail\Config
  */
 protected function createConfig($selector)
 {
     return Thumbnail\Config::getByAutoDetect($selector);
 }