[Core] Add an event for StoreRemoteMedia and Embed

This commit is contained in:
Diogo Peralta Cordeiro 2020-09-21 21:37:21 +01:00
parent 6028175bfc
commit e51520bd63
1 changed files with 21 additions and 3 deletions

View File

@ -80,9 +80,27 @@ class File_thumbnail extends Managed_DataObject
* @throws UnsupportedMediaException if, despite trying, we can't understand how to make a thumbnail for this format * @throws UnsupportedMediaException if, despite trying, we can't understand how to make a thumbnail for this format
* @throws UseFileAsThumbnailException if the file is considered an image itself and should be itself as thumbnail * @throws UseFileAsThumbnailException if the file is considered an image itself and should be itself as thumbnail
*/ */
public static function fromFileObject (File $file, ?int $width = null, ?int $height = null, bool $crop = false, bool $force_still = true, ?bool $upscale = null): File_thumbnail public static function fromFileObject(
{ File $file,
if (is_null($file->filename)) { ?int $width = null,
?int $height = null,
bool $crop = false,
bool $force_still = true,
?bool $upscale = null
): File_thumbnail {
if (is_null($file->filename)) { // Remote file
// If StoreRemoteMedia is enabled...
if (Event::handle('CreateFileImageThumbnailSource', [$file, &$imgPath, 'image'])) {
if (!file_exists($imgPath)) {
throw new FileNotFoundException($imgPath);
}
// First some mimetype specific exceptions
switch ($file->mimetype) {
case 'image/svg+xml':
throw new UseFileAsThumbnailException($file);
}
}
throw new FileNotFoundException("This remote file has no local thumbnail."); throw new FileNotFoundException("This remote file has no local thumbnail.");
} }
$image = ImageFile::fromFileObject($file); $image = ImageFile::fromFileObject($file);