diff options
author | Cash Costello <cash.costello@gmail.com> | 2010-07-31 19:22:47 +0000 |
---|---|---|
committer | Cash Costello <cash.costello@gmail.com> | 2010-07-31 19:22:47 +0000 |
commit | a1f08342c8b8502197159a9fd78e48e6cead4ea0 (patch) | |
tree | ea2e0c175ea7a9f4495b185162585e8d84bb8ed2 /lib | |
parent | 28e545574f35f0d6349a395648a7857ee58989c9 (diff) | |
download | elgg-a1f08342c8b8502197159a9fd78e48e6cead4ea0.tar.gz elgg-a1f08342c8b8502197159a9fd78e48e6cead4ea0.tar.bz2 |
improved the upgrade system and moved albums to use an ordered list for images
Diffstat (limited to 'lib')
-rw-r--r-- | lib/album.php | 97 |
1 files changed, 92 insertions, 5 deletions
diff --git a/lib/album.php b/lib/album.php index 1eaabd3ba..87bb715f4 100644 --- a/lib/album.php +++ b/lib/album.php @@ -18,11 +18,60 @@ class TidypicsAlbum extends ElggObject { } /** + * Get an array of image objects + * + * @param int $limit + * @param int $offset + * @return array + */ + public function getImages($limit, $offset=0) { + $imageList = $this->getImageList(); + if ($offset > count($imageList)) { + return array(); + } + + $imageList = array_slice($imageList, $offset, $limit); + + $images = array(); + foreach ($imageList as $guid) { + $images[] = get_entity($guid); + } + return $images; + } + + /** + * View a list of images + * + * @param int $limit + * @param int $offset + * @return string + */ + public function viewImages($limit, $offset=0) { + $images = $this->getImages($limit, $offset); + if (count($images) == 0) { + return ''; + } + + $count = $this->getSize(); + + return elgg_view_entity_list($images, $count, $offset, $limit, FALSE, FALSE, TRUE); + } + + /** + * Get the number of photos in the album + * + * @return int + */ + public function getSize() { + return count($this->getImageList()); + } + + /** * Returns an order list of image guids * * @return array */ - public function getOrderedImageList() { + public function getImageList() { $listString = $this->orderedImages; if (!$listString) { return array(); @@ -36,7 +85,7 @@ class TidypicsAlbum extends ElggObject { * * @param array $list An indexed array of image guids */ - public function setOrderedImageList($list) { + public function setImageList($list) { $listString = serialize($list); $this->orderedImages = $listString; } @@ -46,9 +95,47 @@ class TidypicsAlbum extends ElggObject { * * @param array $list An indexed array of image guids */ - public function prependOrderedImageList($list) { - $currentList = $this->getOrderedImageList(); + public function prependImageList($list) { + $currentList = $this->getImageList(); $list = array_merge($list, $currentList); - $this->setOrderedImageList($list); + $this->setImageList($list); + } + + /** + * Get the GUID of the image before the current one + * + * @param int $currentGuid + * @return int + */ + public function getPreviousImageGuid($currentGuid) { + $imageList = $this->getImageList(); + $key = array_search($currentGuid, $imageList); + if ($key === FALSE) { + return 0; + } + $key--; + if ($key < 0) { + return 0; + } + return $imageList[$key]; + } + + /** + * Get the GUID of the image after the current one + * + * @param int $currentGuid + * @return int + */ + public function getNextImageGuid($currentGuid) { + $imageList = $this->getImageList(); + $key = array_search($currentGuid, $imageList); + if ($key === FALSE) { + return 0; + } + $key++; + if ($key >= count($imageList)) { + return 0; + } + return $imageList[$key]; } } |