diff options
| author | Automatic Build Number Updater <bharat+gallery3_build_number_updater@menalto.com> | 2013-03-11 16:39:03 -0700 | 
|---|---|---|
| committer | Automatic Build Number Updater <bharat+gallery3_build_number_updater@menalto.com> | 2013-03-11 16:39:03 -0700 | 
| commit | 063ebed5c17165d7f8e65c08ea459a7737e06144 (patch) | |
| tree | 420e93448f9f06ffac2ee46f75d08555cd9c4fcf /modules/gallery/libraries | |
| parent | 7fbe5f0ab1cfec496473cea59d0e91191aa9bd00 (diff) | |
| parent | 53c1ae7dca1c97b4c71f494d7b8b8c2b2a212359 (diff) | |
Merge branch 'master' of github.com:gallery/gallery3
Diffstat (limited to 'modules/gallery/libraries')
| -rw-r--r-- | modules/gallery/libraries/Theme_View.php | 24 | 
1 files changed, 19 insertions, 5 deletions
| diff --git a/modules/gallery/libraries/Theme_View.php b/modules/gallery/libraries/Theme_View.php index 91183753..fbc58258 100644 --- a/modules/gallery/libraries/Theme_View.php +++ b/modules/gallery/libraries/Theme_View.php @@ -58,23 +58,37 @@ 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) { -    // 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      // proportion based on the global thumbnail size, but since modules can override that, we      // return the actual proportions when we have them.      if ($item && $item->has_thumb()) { -      return max($item->thumb_width, $item->thumb_height) / 200; +      return max($item->thumb_width, $item->thumb_height, $minimum_size) / 200;      } else {        // @TODO change the 200 to a theme supplied value when and if we come up with an        // API to allow the theme to set defaults. | 
