Only use saved thumbnails for notice list attachment thumbs -- don't attempt to search enclosures for photo types. We now save thumbs directly for oEmbed photos that don't list a separate thumb entry (like Flickr), so it's not needed. Keeps things cleaner :D
This commit is contained in:
parent
2c4313467f
commit
2c33fdd2fb
@ -218,55 +218,30 @@ class AttachmentListItem extends Widget
|
|||||||
function showRepresentation() {
|
function showRepresentation() {
|
||||||
$thumb = $this->getThumbInfo();
|
$thumb = $this->getThumbInfo();
|
||||||
if ($thumb) {
|
if ($thumb) {
|
||||||
$thumb = $this->sizeThumb($thumb);
|
|
||||||
$this->out->element('img', array('alt' => '', 'src' => $thumb->url, 'width' => $thumb->width, 'height' => $thumb->height));
|
$this->out->element('img', array('alt' => '', 'src' => $thumb->url, 'width' => $thumb->width, 'height' => $thumb->height));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pull a thumbnail image reference for the given file.
|
* Pull a thumbnail image reference for the given file, and if necessary
|
||||||
* In order we check:
|
* resize it to match currently thumbnail size settings.
|
||||||
* 1) file_thumbnail table (thumbnails found via oEmbed)
|
|
||||||
* 2) image URL from direct dereference or oEmbed 'photo' type URL
|
|
||||||
* 3) ???
|
|
||||||
*
|
*
|
||||||
* @return mixed object with (url, width, height) properties, or false
|
* @return File_Thumbnail or false/null
|
||||||
*/
|
*/
|
||||||
function getThumbInfo()
|
function getThumbInfo()
|
||||||
{
|
{
|
||||||
$thumbnail = File_thumbnail::staticGet('file_id', $this->attachment->id);
|
$thumbnail = File_thumbnail::staticGet('file_id', $this->attachment->id);
|
||||||
if ($thumbnail) {
|
if ($thumbnail) {
|
||||||
return $thumbnail;
|
$maxWidth = common_config('attachments', 'thumb_width');
|
||||||
}
|
$maxHeight = common_config('attachments', 'thumb_height');
|
||||||
$enc = $this->attachment->getEnclosure();
|
if ($thumbnail->width > $maxWidth) {
|
||||||
if ($enc) {
|
$thumb = clone($thumbnail);
|
||||||
switch ($enc->mimetype) {
|
$thumb->width = $maxWidth;
|
||||||
case 'image/gif':
|
$thumb->height = intval($thumbnail->height * $maxWidth / $thumbnail->width);
|
||||||
case 'image/png':
|
return $thumb;
|
||||||
case 'image/jpg':
|
|
||||||
case 'image/jpeg':
|
|
||||||
$thumb = (object)array();
|
|
||||||
$thumb->url = $enc->url;
|
|
||||||
// @fixme use the given width/height aspect
|
|
||||||
$thumb->width = common_config('attachments', 'thumb_width');
|
|
||||||
$thumb->height = common_config('attachments', 'thumb_height');
|
|
||||||
return $thumb;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return $thumbnail;
|
||||||
}
|
|
||||||
|
|
||||||
function sizeThumb($thumbnail) {
|
|
||||||
$maxWidth = 100;
|
|
||||||
$maxHeight = 75;
|
|
||||||
if ($thumbnail->width > $maxWidth) {
|
|
||||||
$thumb = clone($thumbnail);
|
|
||||||
$thumb->width = $maxWidth;
|
|
||||||
$thumb->height = intval($thumbnail->height * $maxWidth / $thumbnail->width);
|
|
||||||
return $thumb;
|
|
||||||
} else {
|
|
||||||
return $thumbnail;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user