/** * Get all of the Gallery2 items * * @return array $album_info Album Title and URL for the current album * @return array $gallery_items Sorted array of IDs and Titles for all Gallery2 Data Items in the current album */ function g2ic_get_gallery_items() { global $gallery, $g2ic_options; $gallery_items = array(); $item_mod_times = array(); $item_orig_times = array(); $item_create_times = array(); $item_titles = array(); $item_ids = array(); $album_info = array(); $urlGenerator =& $gallery->getUrlGenerator(); list($error, $albums) = GalleryCoreApi::loadEntitiesById(array($g2ic_options['current_album'])); if (!$error) { foreach ($albums as $album) { $album_info['url'] = $urlGenerator->generateUrl(array('view' => 'core.ShowItem', 'itemId' => $album->getid()), array('forceFullUrl' => true)); $album_info['title'] = $album->getTitle(); list($error, $data_item_ids) = GalleryCoreApi::fetchChildDataItemIds($album); foreach ($data_item_ids as $data_item_id) { $item_ids[] = $data_item_id; list($error, $items) = GalleryCoreApi::loadEntitiesById(array($data_item_id)); foreach ($items as $item) { $item_titles[] = $item->getTitle(); $item_mod_times[] = $item->getModificationTimestamp(); $item_orig_times[] = $item->getOriginationTimestamp(); $item_create_times[] = $item->getOriginationTimestamp(); } } } } else { print T_('Error loading album entity'); } // Sort directories and files $count_files = count($item_ids); if ($count_files > 0) { switch ($g2ic_options['sortby']) { case 'title_asc': array_multisort($item_titles, $item_ids); break; case 'title_desc': array_multisort($item_titles, SORT_DESC, $item_ids); break; case 'orig_time_asc': array_multisort($item_orig_times, $item_titles, $item_ids); break; case 'orig_time_desc': array_multisort($item_orig_times, SORT_DESC, $item_titles, $item_ids); break; case 'mtime_asc': array_multisort($item_mod_times, $item_titles, $item_ids); break; case 'mtime_desc': array_multisort($item_mod_times, SORT_DESC, $item_titles, $item_ids); } for ($i = 0; $i < $count_files; $i++) { $gallery_items[$i] = array('title' => $item_titles[$i], 'id' => $item_ids[$i]); } } return array($album_info, $gallery_items); }
/** * Returns a complete packaged album for the given * gallery id * @param Int albumId * @return GalleryAlbum */ function getPackagedAlbum($albumId) { global $logger; $logger->debug(get_class($this) . "::getPackagedAlbum({$albumId})"); $album = new GalleryAlbum(); $this->initGalleryApi(); list($ret, $parent) = GalleryCoreApi::loadEntitiesById($albumId); if ($parent && $parent->canContainChildren) { list($ret, $children) = GalleryCoreApi::fetchChildDataItemIds($parent); $images = array(); if ($children) { $found = array(); // holds the ids of already packaged images so we don't repeat it foreach ($children as $imageId) { if (!in_array($imageId, $found)) { $image = $this->getCompositeImage($imageId); if ($image) { $found[] = $image->getSmall() ? $image->getSmall()->getId() : null; $found[] = $image->getMedium() ? $image->getMedium()->getId() : null; $found[] = $image->getLarge() ? $image->getLarge()->getId() : null; } $images[] = $image; } } } $album = $this->setAlbumValues($parent, $album); $album->setImages($images); } return $album; }