diff options
author | Jozef Selesi <jozef.selesi@saturized.com> | 2013-03-11 15:59:00 +0100 |
---|---|---|
committer | Jozef Selesi <jozef.selesi@saturized.com> | 2013-03-11 15:59:00 +0100 |
commit | 3c47deb9ef3fd35b1602c822af2b752c6733bed3 (patch) | |
tree | cb4447fcccdb187b2699fe18c74d358d58ce81cd /modules/gallery/libraries/Theme_View.php | |
parent | bae14a76e52524e2157948bf30cfe3340d1e9a94 (diff) |
Themes can choose child thumbnail when asking for proportion.
This helps themes better calculate an item's container size, for cases
when the first item significantly differs in size from the rest.
Trac-Ticket: #1838
Diffstat (limited to 'modules/gallery/libraries/Theme_View.php')
-rw-r--r-- | modules/gallery/libraries/Theme_View.php | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/modules/gallery/libraries/Theme_View.php b/modules/gallery/libraries/Theme_View.php index 16c57794..da1e8ce8 100644 --- a/modules/gallery/libraries/Theme_View.php +++ b/modules/gallery/libraries/Theme_View.php @@ -58,17 +58,30 @@ class Theme_View_Core extends Gallery_View { } /** - * Proportion of the current thumb_size's to default + * Proportion of the current thumb_size's to default. + * + * Themes can optionally use the $dimension parameter to choose which of the album's + * children will be used to determine the proportion. If set, the proportion will be + * calculated based on the child item with the largest width or height. + * * @param object Item_Model (optional) check the proportions for this item * @param int (optional) minimum thumbnail width + * @param string (optional) "width" or "height" * @return int */ - public function thumb_proportion($item=null, $minimum_size=0) { - // If the item is an album with children, grab the first item in that album instead. We're + public function thumb_proportion($item=null, $minimum_size=0, $dimension=null) { + if (!in_array($dimension, array("height", "width"))) { + $dimension = null; + } + + // If the item is an album with children, grab an item from that album instead. We're // interested in the size of the thumbnails in this album, not the thumbnail of the // album itself. if ($item && $item->is_album() && $item->children_count()) { - $item = $item->children(1)->current(); + $orderBy = (is_null($dimension)) ? array() + : array("thumb_".$dimension => "desc"); + + $item = $item->children(1, null, array(), $orderBy)->current(); } // By default we have a globally fixed thumbnail size In core code, we just return a fixed |