From e3eaa7d9a743f1206b9a382818e0ad68a3623f89 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Sun, 8 Jun 2025 23:41:53 +0900 Subject: [PATCH] Also apply #2562 fix to comment.item.php --- modules/comment/comment.item.php | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/modules/comment/comment.item.php b/modules/comment/comment.item.php index 32d2e5791..2afdd13d1 100644 --- a/modules/comment/comment.item.php +++ b/modules/comment/comment.item.php @@ -816,10 +816,15 @@ class CommentItem extends BaseObject // Call trigger for custom thumbnails. $trigger_obj = (object)[ - 'document_srl' => $this->document_srl, 'comment_srl' => $this->comment_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, + 'comment_srl' => $this->comment_srl, + 'width' => $width, + 'height' => $height, + 'image_type' => 'jpg', + 'type' => $thumbnail_type, + 'quality' => $config->thumbnail_quality, + 'filename' => $thumbnail_file, + 'url' => $thumbnail_url, ]; $output = ModuleHandler::triggerCall('comment.getThumbnail', 'before', $trigger_obj); clearstatcache(true, $thumbnail_file); @@ -877,8 +882,16 @@ class CommentItem extends BaseObject // get an image file from the doc content if no file attached. 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", $this->get('content'), $matches, PREG_SET_ORDER); foreach($matches as $match) {