jenkins-bot has submitted this change and it was merged. Change subject: Hygiene: Extract image to thumbnail to reusable method ......................................................................
Hygiene: Extract image to thumbnail to reusable method getThumbnail was copy pastad in a couple of places, and I was going to need to use it in CollectionsList too. * I've extracted it to a Image model where we can keep image manipulation related code. * Cleaned up the getThumbnail method from the interface WithImage and the implementors (CollectionBase & CollectionItem). * Use the new method where the old one was called. * Extracted the sharing thumbnail width to a constant on models\Image because magic numbers are bad. Preparation for bug T95239. Bug: T95239 Change-Id: Iabaff64f49a68f7bbb2dc4ab20ede49cd05ef572 --- M Gather.php M includes/models/CollectionBase.php M includes/models/CollectionItem.php A includes/models/Image.php M includes/models/WithImage.php M includes/specials/SpecialGather.php M includes/views/Image.php 7 files changed, 36 insertions(+), 38 deletions(-) Approvals: Jdlrobson: Looks good to me, approved jenkins-bot: Verified diff --git a/Gather.php b/Gather.php index 74cc2ef..af67e2a 100644 --- a/Gather.php +++ b/Gather.php @@ -43,6 +43,7 @@ 'Gather\models\Collection' => 'models/Collection', 'Gather\models\CollectionsList' => 'models/CollectionsList', 'Gather\models\WithImage' => 'models/WithImage', + 'Gather\models\Image' => 'models/Image', 'Gather\models\ArraySerializable' => 'models/ArraySerializable', 'Gather\views\View' => 'views/View', diff --git a/includes/models/CollectionBase.php b/includes/models/CollectionBase.php index e4988ab..8d09866 100644 --- a/includes/models/CollectionBase.php +++ b/includes/models/CollectionBase.php @@ -190,21 +190,6 @@ } /** - * @param int $size - * @return bool|\MediaTransformOutput - */ - public function getThumbnail( $size ) { - if ( $this->hasImage() ) { - $file = $this->getFile(); - $thumb = $file->transform( array( 'width' => $size ) ); - if ( $thumb && $thumb->getUrl() ) { - return $thumb; - } - } - return false; - } - - /** * Returns if the user is the owner of the collection/list * @param User $user user to check if it is the owner * @return boolean diff --git a/includes/models/CollectionItem.php b/includes/models/CollectionItem.php index 6d74203..baeaffe 100644 --- a/includes/models/CollectionItem.php +++ b/includes/models/CollectionItem.php @@ -48,21 +48,6 @@ } /** - * @param int $size - * @return bool|\MediaTransformOutput - */ - public function getThumbnail( $size ) { - if ( $this->hasImage() ) { - $file = $this->getFile(); - $thumb = $file->transform( array( 'width' => $size ) ); - if ( $thumb && $thumb->getUrl() ) { - return $thumb; - } - } - return false; - } - - /** * Check whether the item has an extract * * @return Boolean diff --git a/includes/models/Image.php b/includes/models/Image.php new file mode 100644 index 0000000..3061d1b --- /dev/null +++ b/includes/models/Image.php @@ -0,0 +1,30 @@ +<?php + +/** + * Image.php + */ + +namespace Gather\models; + +/** + * Image class for image manipulation methods. + */ +class Image { + + const SHARING_THUMBNAIL_WIDTH = 360; + + /** + * @param int $size + * @return bool|\MediaTransformOutput + */ + public static function getThumbnail( $image, $size = self::SHARING_THUMBNAIL_WIDTH ) { + if ( $image !== null ) { + $thumb = $image->transform( array( 'width' => $size ) ); + if ( $thumb && $thumb->getUrl() ) { + return $thumb; + } + } + return false; + } + +} diff --git a/includes/models/WithImage.php b/includes/models/WithImage.php index 722e260..884e3f3 100644 --- a/includes/models/WithImage.php +++ b/includes/models/WithImage.php @@ -23,11 +23,5 @@ * @return File Get the file from this item */ public function getFile(); - - /** - * @param integer $size of thumbnail - * @return File Get the thumbnail from this item - */ - public function getThumbnail( $size ); } diff --git a/includes/specials/SpecialGather.php b/includes/specials/SpecialGather.php index 02eb63b..eba5207 100644 --- a/includes/specials/SpecialGather.php +++ b/includes/specials/SpecialGather.php @@ -126,7 +126,10 @@ $out->addJsConfigVars( 'wgGatherCollections', $collection->toArray() ); $this->render( new views\Collection( $this->getUser(), $collection ) ); $this->updateCollectionImage( $collection ); - $this->addMetaInformation( $collection->getDescription(), $collection->getThumbnail( 360 ) ); + $this->addMetaInformation( + $collection->getDescription(), + models\Image::getThumbnail( $collection->getFile() ) + ); } } diff --git a/includes/views/Image.php b/includes/views/Image.php index 79689e2..a234ad7 100644 --- a/includes/views/Image.php +++ b/includes/views/Image.php @@ -39,7 +39,7 @@ private function getPageImageHtml( $size = 750, $useBackgroundImage = false ) { $imageHtml = ''; if ( $this->item->hasImage() ) { - $thumb = $this->item->getThumbnail( $size ); + $thumb = models\Image::getThumbnail( $this->item->getFile(), $size ); if ( $thumb && $thumb->getUrl() ) { $className = 'list-thumb '; $className .= $thumb->getWidth() > $thumb->getHeight() -- To view, visit https://gerrit.wikimedia.org/r/204245 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Iabaff64f49a68f7bbb2dc4ab20ede49cd05ef572 Gerrit-PatchSet: 2 Gerrit-Project: mediawiki/extensions/Gather Gerrit-Branch: master Gerrit-Owner: Jhernandez <jhernan...@wikimedia.org> Gerrit-Reviewer: Jdlrobson <jrob...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits