[AttachmentThumbnail] Use other thumbnail when requested isn't available and there's no original file
This commit is contained in:
parent
b6d80003d8
commit
3268559f9a
@ -160,6 +160,7 @@ class StoreRemoteMedia extends Plugin
|
|||||||
$attachment = GSFile::storeFileAsAttachment($temp_file);
|
$attachment = GSFile::storeFileAsAttachment($temp_file);
|
||||||
|
|
||||||
// Relate the link with the attachment
|
// Relate the link with the attachment
|
||||||
|
// TODO: Create a function that gets the title from content disposition or URL when such header isn't available
|
||||||
DB::persist(AttachmentToLink::create([
|
DB::persist(AttachmentToLink::create([
|
||||||
'link_id' => $link->getId(),
|
'link_id' => $link->getId(),
|
||||||
'attachment_id' => $attachment->getId(),
|
'attachment_id' => $attachment->getId(),
|
||||||
|
@ -152,7 +152,7 @@ class AttachmentThumbnail extends Entity
|
|||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public static function getOrCreate(Attachment $attachment, ?string $size = null, bool $crop = false)
|
public static function getOrCreate(Attachment $attachment, ?string $size = null, bool $crop = false): ?self
|
||||||
{
|
{
|
||||||
$size = $size ?? Common::config('thumbnail', 'default_size');
|
$size = $size ?? Common::config('thumbnail', 'default_size');
|
||||||
$size_int = match ($size) {
|
$size_int = match ($size) {
|
||||||
@ -171,7 +171,13 @@ class AttachmentThumbnail extends Entity
|
|||||||
}
|
}
|
||||||
[$predicted_width, $predicted_height] = self::predictScalingValues($attachment->getWidth(), $attachment->getHeight(), $size, $crop);
|
[$predicted_width, $predicted_height] = self::predictScalingValues($attachment->getWidth(), $attachment->getHeight(), $size, $crop);
|
||||||
if (!file_exists($attachment->getPath())) {
|
if (!file_exists($attachment->getPath())) {
|
||||||
throw new NotStoredLocallyException();
|
// Before we quit, check if there's any other thumb
|
||||||
|
$alternative_thumbs = DB::findBy('attachment_thumbnail', ['attachment_id' => $attachment->getId()]);
|
||||||
|
if ($alternative_thumbs === []) {
|
||||||
|
throw new NotStoredLocallyException();
|
||||||
|
} else {
|
||||||
|
return $alternative_thumbs[0];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$thumbnail = self::create(['attachment_id' => $attachment->getId()]);
|
$thumbnail = self::create(['attachment_id' => $attachment->getId()]);
|
||||||
$mimetype = $attachment->getMimetype();
|
$mimetype = $attachment->getMimetype();
|
||||||
|
Loading…
Reference in New Issue
Block a user