summaryrefslogtreecommitdiff
path: root/modules/gallery
diff options
context:
space:
mode:
authorJozef Selesi <jozef.selesi@saturized.com>2013-03-11 15:59:00 +0100
committerJozef Selesi <jozef.selesi@saturized.com>2013-03-11 15:59:00 +0100
commit3c47deb9ef3fd35b1602c822af2b752c6733bed3 (patch)
treecb4447fcccdb187b2699fe18c74d358d58ce81cd /modules/gallery
parentbae14a76e52524e2157948bf30cfe3340d1e9a94 (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')
-rw-r--r--modules/gallery/libraries/Theme_View.php21
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