diff --git a/modules/document/document.item.php b/modules/document/document.item.php index 732d25e17..dcf90e8d7 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -1146,9 +1146,14 @@ class DocumentItem extends BaseObject // Call trigger for custom thumbnails. $trigger_obj = (object)[ - 'document_srl' => $this->document_srl, 'width' => $width, 'height' => $height, - 'image_type' => 'jpg', 'type' => $thumbnail_type, 'quality' => $config->thumbnail_quality, - 'filename' => $thumbnail_file, 'url' => $thumbnail_url, + 'document_srl' => $this->document_srl, + 'width' => $width, + 'height' => $height, + 'image_type' => 'jpg', + 'type' => $thumbnail_type, + 'quality' => $config->thumbnail_quality, + 'filename' => $thumbnail_file, + 'url' => $thumbnail_url, ]; $output = ModuleHandler::triggerCall('document.getThumbnail', 'before', $trigger_obj); clearstatcache(true, $thumbnail_file); @@ -1220,8 +1225,16 @@ class DocumentItem extends BaseObject // If not exists, file an image file from the content if(!$source_file && $config->thumbnail_target !== 'attachment') { - $external_image_min_width = min(100, round($trigger_obj->width * 0.3)); - $external_image_min_height = min(100, round($trigger_obj->height * 0.3)); + $external_image_min_width = is_numeric($trigger_obj->width) ? min(100, round(intval($trigger_obj->width) * 0.3)) : 100; + if($trigger_obj->height === 'auto') + { + $external_image_min_height = min(100, $external_image_min_width * 0.5); + } + else + { + $external_image_min_height = is_numeric($trigger_obj->height) ? min(100, round(intval($trigger_obj->height) * 0.3)) : 100; + } + preg_match_all("!]*?src=(\"|')([^\"' ]*?)(\"|')!is", $content, $matches, PREG_SET_ORDER); foreach($matches as $match) {