From b3314fc1dcfd73c36c4bab82a5ebabca629845c8 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Wed, 19 Nov 2008 18:23:30 +0000 Subject: Update the media rss template to include the resize and the fullsize added descendants by type method to the item model to allow for the selection of children by type --- core/libraries/ORM_MPTT.php | 26 ++++++++++++++++++++++++++ core/models/item.php | 11 +++++++++++ 2 files changed, 37 insertions(+) (limited to 'core') diff --git a/core/libraries/ORM_MPTT.php b/core/libraries/ORM_MPTT.php index f79ea910..023960e3 100644 --- a/core/libraries/ORM_MPTT.php +++ b/core/libraries/ORM_MPTT.php @@ -136,6 +136,32 @@ class ORM_MPTT_Core extends ORM { return $this->children_count; } + /** + * Return all of the children of the specified type, ordered by id. + * + * @chainable + * @param string type to return + * @param integer SQL limit + * @param integer SQL offset + * @param boolean flag to return all grandchildren as well + * @return array ORM + */ + function decendents_by_type($type="photo", $limit=NULL, $offset=0, $grand_children=false) { + if (!isset($this->children)) { + if (!empty($grandchildren)) { + $this->where("left >=", $this->left) + ->where("right <=", $this->right); + } else { + $this->where("parent_id", $this->id); + } + $this->children = + $this->where("type", $type) + ->orderby("id", "ASC") + ->find_all($limit, $offset); + } + return $this->children; + } + /** * @see ORM::reload */ diff --git a/core/models/item.php b/core/models/item.php index 5fcd16d0..f03d1a91 100644 --- a/core/models/item.php +++ b/core/models/item.php @@ -49,6 +49,14 @@ class Item_Model extends ORM_MPTT { } } + /** + * album: http://example.com/gallery3/var/resizes/album1/ + * photo: http://example.com/gallery3/var/albums/album1/photo.jpg + */ + public function url($index = FALSE, $protocol = FALSE) { + return $this->_relative_path(url::base($index, $protocol) . "albums", "", ""); + } + /** * album: /var/resizes/album1/.thumb.jpg * photo: /var/albums/album1/photo.thumb.jpg @@ -183,6 +191,9 @@ class Item_Model extends ORM_MPTT { } catch (Exception $e) { return null; } + } else if ($column == "height" || $column == "width") { + $dims = getimagesize($this->file_path()); + return $column == "width" ? $dims[0] : $dims[1]; } else { return parent::__get($column); } -- cgit v1.2.3