From 87524b1e751d52bb17d016da60ca1be010ef8f70 Mon Sep 17 00:00:00 2001 From: umherirrender Date: Fri, 13 Jul 2012 17:07:56 +0200 Subject: [PATCH] (bug 38376) call to undefined method ThumbnailImage::getPath() * Added MediaTransformOutput::getExtension() function and use it instead. * Also fixed getScriptedTransform() to not pass the page as the path parameter. Change-Id: I6c530aa155d62a6bfd5727c6f3d104fe91453745 --- includes/api/ApiQueryImageInfo.php | 3 +-- includes/media/Generic.php | 5 +++-- includes/media/MediaTransformOutput.php | 19 ++++++++++++++----- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/includes/api/ApiQueryImageInfo.php b/includes/api/ApiQueryImageInfo.php index 4d2d04b589..b6873f48e6 100644 --- a/includes/api/ApiQueryImageInfo.php +++ b/includes/api/ApiQueryImageInfo.php @@ -356,8 +356,7 @@ class ApiQueryImageInfo extends ApiQueryBase { if ( isset( $prop['thumbmime'] ) && $file->getHandler() ) { list( $ext, $mime ) = $file->getHandler()->getThumbType( - substr( $mto->getPath(), strrpos( $mto->getPath(), '.' ) + 1 ), - $file->getMimeType(), $thumbParams ); + $mto->getExtension(), $file->getMimeType(), $thumbParams ); $vals['thumbmime'] = $mime; } } elseif ( $mto && $mto->isError() ) { diff --git a/includes/media/Generic.php b/includes/media/Generic.php index d0e7650c22..bd4d8651e0 100644 --- a/includes/media/Generic.php +++ b/includes/media/Generic.php @@ -537,7 +537,7 @@ abstract class MediaHandler { /** * Remove files from the purge list - * + * * @param array $files * @param array $options */ @@ -717,7 +717,8 @@ abstract class ImageHandler extends MediaHandler { $page = isset( $params['page'] ) ? $params['page'] : false; if( $image->mustRender() || $params['width'] < $image->getWidth() ) { - return new ThumbnailImage( $image, $url, $params['width'], $params['height'], $page ); + return new ThumbnailImage( $image, + $url, $params['width'], $params['height'], false, $page ); } } diff --git a/includes/media/MediaTransformOutput.php b/includes/media/MediaTransformOutput.php index fc1f834a3d..d0a7339e51 100644 --- a/includes/media/MediaTransformOutput.php +++ b/includes/media/MediaTransformOutput.php @@ -36,21 +36,30 @@ abstract class MediaTransformOutput { protected $storagePath = false; /** - * Get the width of the output box + * @return integer Width of the output box */ public function getWidth() { return $this->width; } /** - * Get the height of the output box + * @return integer Height of the output box */ public function getHeight() { return $this->height; } /** - * @return string The thumbnail URL + * Get the final extension of the thumbnail. + * Returns false for scripted transformations. + * @return string|false + */ + public function getExtension() { + return $this->path ? FileBackend::extensionFromPath( $this->path ) : false; + } + + /** + * @return string|false The thumbnail URL */ public function getUrl() { return $this->url; @@ -106,7 +115,7 @@ abstract class MediaTransformOutput { * This will return false if there was an error, the * thumbnail is to be handled client-side only, or if * transformation was deferred via TRANSFORM_LATER. - * + * * @return Bool */ public function hasFile() { @@ -198,7 +207,7 @@ class ThumbnailImage extends MediaTransformOutput { * Get a thumbnail object from a file and parameters. * If $path is set to null, the output file is treated as a source copy. * If $path is set to false, no output file will be created. - * + * * @param $file File object * @param $url String: URL path to the thumb * @param $width Integer: file's width -- 2.20.1