]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
scale down the thumbnail image if necessary
authorEvan Prodromou <evan@status.net>
Fri, 15 Apr 2011 03:57:30 +0000 (23:57 -0400)
committerEvan Prodromou <evan@status.net>
Fri, 15 Apr 2011 03:57:30 +0000 (23:57 -0400)
plugins/Bookmark/bookmarkform.php

index ffeba312ea080712c34012ac4ad041c91414958e..f6341a0a7223771d67d3ab6019570b555efb1d9a 100644 (file)
@@ -122,11 +122,14 @@ class BookmarkForm extends Form
                           $this->_url);
         $this->unli();
 
+        list($width, $height) = $this->scaleImage($this->_thumbnail->width,
+                                                  $this->_thumbnail->height);
+
         if (!empty($this->_thumbnail)) {
             $this->out->element('img',
                                 array('src' => $this->_thumbnail->url,
-                                      'width' => $this->_thumbnail->width,
-                                      'height' => $this->_thumbnail->height));
+                                      'width' => $width,
+                                      'height' => $height));
         }
 
         $this->li();
@@ -173,4 +176,20 @@ class BookmarkForm extends Form
         // TRANS: Button text for action to save a new bookmark.
         $this->out->submit('submit', _m('BUTTON', 'Save'));
     }
+
+    function scaleImage($width, $height)
+    {
+        $maxwidth = common_config('attachments', 'thumb_width');
+        $maxheight = common_config('attachments', 'thumb_height');
+
+        if ($width > $height && $width > $maxwidth) {
+            $height = (int) ((((float)$maxwidth)/(float)($width))*(float)$height);
+            $width = $maxwidth;
+        } else if ($height > $maxheight) {
+            $width = (int) ((((float)$maxheight)/(float)($height))*(float)$width);
+            $height = $maxheight;
+        }
+
+        return array($width, $height);
+    }
 }