downloadImagesAsZip() public static method

Downloads all requested images as a zip file. Assumes all permissions have been checked on the requested resource. Can request either a single gallery of images, OR an array of individual image ids.
public static downloadImagesAsZip ( Ansel_Gallery $gallery = null, array $images = [] )
$gallery Ansel_Gallery The galleries to download
$images array The images to download
Example #1
0
 public static function galleryActions($actionID)
 {
     global $registry, $notification, $page_output;
     if (self::download($actionID)) {
         return true;
     }
     $ansel_storage = $GLOBALS['injector']->getInstance('Ansel_Storage');
     switch ($actionID) {
         case 'add':
         case 'addchild':
         case 'save':
         case 'modify':
             $view = new Ansel_View_GalleryProperties(array('actionID' => $actionID, 'url' => new Horde_Url(Horde_Util::getFormData('url')), 'gallery' => Horde_Util::getFormData('gallery')));
             $view->run();
             exit;
         case 'downloadzip':
             $galleryId = Horde_Util::getFormData('gallery');
             try {
                 $gallery = $ansel_storage->getGallery($galleryId);
                 if (!$registry->getAuth() || !$gallery->hasPermission($registry->getAuth(), Horde_Perms::READ)) {
                     $notification->push(_("Access denied downloading photos from this gallery."), 'horde.error');
                     Horde::url('view.php?view=List', true)->redirect();
                     exit;
                 }
                 Ansel::downloadImagesAsZip($gallery);
             } catch (Ansel_Exception $e) {
                 $notification->push($gallery->getMessage(), 'horde.error');
                 Horde::url('view.php?view=List', true)->redirect();
                 exit;
             }
             exit;
         case 'delete':
         case 'empty':
             // Print the confirmation screen.
             $galleryId = Horde_Util::getFormData('gallery');
             if ($galleryId) {
                 try {
                     $gallery = $ansel_storage->getGallery($galleryId);
                     $page_output->header();
                     $notification->notify(array('listeners' => 'status'));
                     require ANSEL_TEMPLATES . '/gallery/delete_confirmation.inc';
                     $page_output->footer();
                     exit;
                 } catch (Ansel_Exception $e) {
                     $notification->push($gallery->getMessage(), 'horde.error');
                 }
             }
             // Return to the gallery list.
             Horde::url(Ansel::getUrlFor('view', array('view' => 'List'), true))->redirect();
             exit;
         case 'do_delete':
         case 'do_empty':
             $ansel_storage = $GLOBALS['injector']->getInstance('Ansel_Storage');
             $galleryId = Horde_Util::getPost('gallery');
             try {
                 $gallery = $ansel_storage->getGallery($galleryId);
             } catch (Ansel_Exception $e) {
                 $notification->push($e->getMessage(), 'horde.error');
                 Ansel::getUrlFor('default_view', array())->redirect();
                 exit;
             }
             switch ($actionID) {
                 case 'do_delete':
                     if (!$gallery->hasPermission($registry->getAuth(), Horde_Perms::DELETE)) {
                         $notification->push(_("Access denied deleting this gallery."), 'horde.error');
                     } else {
                         try {
                             $ansel_storage->removeGallery($gallery);
                             $notification->push(sprintf(_("Successfully deleted %s."), $gallery->get('name')), 'horde.success');
                         } catch (Ansel_Exception $e) {
                             $notification->push(sprintf(_("There was a problem deleting %s: %s"), $gallery->get('name'), $e->getMessage()), 'horde.error');
                         } catch (Horde_Exception_NotFound $e) {
                             Horde::log($e, 'err');
                         }
                     }
                     // Return to the default view.
                     Ansel::getUrlFor('default_view', array())->redirect();
                     exit;
                 case 'do_empty':
                     if (!$gallery->hasPermission($registry->getAuth(), Horde_Perms::DELETE)) {
                         $notification->push(_("Access denied deleting this gallery."), 'horde.error');
                     } else {
                         $ansel_storage->emptyGallery($gallery);
                         $notification->push(sprintf(_("Successfully emptied \"%s\""), $gallery->get('name')), 'horde.success');
                     }
                     Ansel::getUrlFor('view', array('view' => 'Gallery', 'gallery' => $galleryId, 'slug' => $gallery->get('slug')), true)->redirect();
                     exit;
                 default:
                     Ansel::getUrlFor('view', array('view' => 'Gallery', 'gallery' => $galleryId, 'slug' => $gallery->get('slug')), true)->redirect();
                     exit;
             }
         case 'generateDefault':
             // Re-generate the default pretty gallery image.
             $galleryId = Horde_Util::getFormData('gallery');
             try {
                 $gallery = $ansel_storage->getGallery($galleryId);
                 $gallery->clearStacks();
                 $notification->push(_("The gallery's default photo has successfully been reset."), 'horde.success');
                 Horde::url('view.php', true)->add('gallery', $galleryId)->redirect();
                 exit;
             } catch (Ansel_Exception $e) {
                 $notification->push($e->getMessage(), 'horde.error');
                 Horde::url('index.php', true)->redirect();
                 exit;
             }
         case 'generateThumbs':
             // Re-generate all of this gallery's prettythumbs.
             $galleryId = Horde_Util::getFormData('gallery');
             try {
                 $gallery = $ansel_storage->getGallery($galleryId);
             } catch (Ansel_Exception $e) {
                 $notification->push($gallery->getMessage(), 'horde.error');
                 Horde::url('index.php', true)->redirect();
                 exit;
             }
             $gallery->clearThumbs();
             $notification->push(_("The gallery's thumbnails have successfully been reset."), 'horde.success');
             Horde::url('view.php', true)->add('gallery', $galleryId)->redirect();
             exit;
         case 'deleteCache':
             // Delete all cached image views.
             $galleryId = Horde_Util::getFormData('gallery');
             try {
                 $gallery = $ansel_storage->getGallery($galleryId);
             } catch (Ansel_Exception $e) {
                 $notification->push($gallery->getMessage(), 'horde.error');
                 Horde::url('index.php', true)->redirect();
                 exit;
             }
             $gallery->clearViews();
             $notification->push(_("The gallery's views have successfully been reset."), 'horde.success');
             Horde::url('view.php', true)->add('gallery', $galleryId)->redirect();
             exit;
     }
     return false;
 }