From c50815d5046567c39688e4dbaa3ba83bf78cabe3 Mon Sep 17 00:00:00 2001 From: Brian Wolff Date: Sat, 28 Sep 2013 15:53:20 -0300 Subject: [PATCH] Add the full resolution of a file to the list of "Other resolutions:" There is a link below for the "Full Resolution" of the file, but I think it is also good to also have this in with the size choices, as the user may not realize the full resolution is not one of the "other" resolution choices. Additionally, some people have said it would be useful for tiff files to have a link to a high resolution but converted to jpeg file. See also gerrit change 86383. Bryan had a similar patch to this on bug 31366 Change-Id: I771650017edee2f5e0240912835455f5ad62a9bb --- includes/ImagePage.php | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/includes/ImagePage.php b/includes/ImagePage.php index cf05ee2585..d6b8a03c09 100644 --- a/includes/ImagePage.php +++ b/includes/ImagePage.php @@ -350,15 +350,33 @@ class ImagePage extends Article { $linktext = wfMessage( 'show-big-image' )->escaped(); if ( $this->displayImg->getRepo()->canTransformVia404() ) { $thumbSizes = $wgImageLimits; + // Also include the full sized resolution in the list, so + // that users know they can get it. This will link to the + // original file asset if mustRender() === false. In the case + // that we mustRender, some users have indicated that they would + // find it useful to have the full size image in the rendered + // image format. + $thumbSizes[] = array( $width_orig, $height_orig ); } else { # Creating thumb links triggers thumbnail generation. # Just generate the thumb for the current users prefs. $thumbSizes = array( $this->getImageLimitsFromOption( $user, 'thumbsize' ) ); + if ( !$this->displayImg->mustRender() ) { + // We can safely include a link to the "full-size" preview, + // without actually rendering. + $thumbSizes[] = array( $width_orig, $height_orig ); + } } # Generate thumbnails or thumbnail links as needed... $otherSizes = array(); foreach ( $thumbSizes as $size ) { - if ( $size[0] < $width_orig && $size[1] < $height_orig + // We include a thumbnail size in the list, if it is + // less than or equal to the original size of the image + // asset ($width_orig/$height_orig). We also exclude + // the current thumbnail's size ($width/$height) + // since that is added to the message separately, so + // it can be denoted as the current size being shown. + if ( $size[0] <= $width_orig && $size[1] <= $height_orig && $size[0] != $width && $size[1] != $height ) { $sizeLink = $this->makeSizeLink( $params, $size[0], $size[1] ); @@ -367,6 +385,7 @@ class ImagePage extends Article { } } } + $otherSizes = array_unique( $otherSizes ); $msgsmall = ''; $sizeLinkBigImagePreview = $this->makeSizeLink( $params, $width, $height ); if ( $sizeLinkBigImagePreview ) { -- 2.20.1