Overview

Packages

  • Ansel
  • None

Classes

  • Ansel
  • Ansel_Ajax_Application
  • Ansel_Ajax_Imple_EditCaption
  • Ansel_Ajax_Imple_EditFaces
  • Ansel_Ajax_Imple_EditGalleryFaces
  • Ansel_Ajax_Imple_Embed
  • Ansel_Ajax_Imple_GallerySlugCheck
  • Ansel_Ajax_Imple_ImageSaveGeotag
  • Ansel_Ajax_Imple_LocationAutoCompleter
  • Ansel_Ajax_Imple_MapLayerSelect
  • Ansel_Ajax_Imple_TagActions
  • Ansel_Ajax_Imple_ToggleGalleryActions
  • Ansel_Ajax_Imple_ToggleOtherGalleries
  • Ansel_Ajax_Imple_UploadNotification
  • Ansel_Api
  • Ansel_Exception
  • Ansel_Faces
  • Ansel_Faces_Base
  • Ansel_Faces_Facedetect
  • Ansel_Faces_User
  • Ansel_Factory_Faces
  • Ansel_Factory_Storage
  • Ansel_Factory_Styles
  • Ansel_Form_Ecard
  • Ansel_Form_Image
  • Ansel_Form_ImageDate
  • Ansel_Form_Upload
  • Ansel_Gallery
  • Ansel_Gallery_Decorator_Date
  • Ansel_GalleryMode_Base
  • Ansel_GalleryMode_Date
  • Ansel_GalleryMode_Normal
  • Ansel_Image
  • Ansel_ImageGenerator
  • Ansel_ImageGenerator_Mini
  • Ansel_ImageGenerator_PolaroidThumb
  • Ansel_ImageGenerator_PolaroidThumbStack
  • Ansel_ImageGenerator_RoundedThumb
  • Ansel_ImageGenerator_RoundedThumbStack
  • Ansel_ImageGenerator_Screen
  • Ansel_ImageGenerator_ShadowThumb
  • Ansel_ImageGenerator_ShadowThumbStack
  • Ansel_ImageGenerator_SquareThumb
  • Ansel_ImageGenerator_Thumb
  • Ansel_LoginTasks_SystemTask_Upgrade
  • Ansel_Report
  • Ansel_Report_letter
  • Ansel_Report_mail
  • Ansel_Report_tickets
  • Ansel_Search
  • Ansel_Search_exif
  • Ansel_Search_Tag
  • Ansel_Storage
  • Ansel_Style
  • Ansel_Tagger
  • Ansel_Test
  • Ansel_Tile_DateGallery
  • Ansel_Tile_Gallery
  • Ansel_Tile_Image
  • Ansel_View_Ansel
  • Ansel_View_Base
  • Ansel_View_EmbeddedRenderer_GalleryLink
  • Ansel_View_EmbeddedRenderer_Mini
  • Ansel_View_EmbeddedRenderer_Slideshow
  • Ansel_View_Gallery
  • Ansel_View_GalleryProperties
  • Ansel_View_GalleryRenderer_Base
  • Ansel_View_GalleryRenderer_Gallery
  • Ansel_View_GalleryRenderer_GalleryLightbox
  • Ansel_View_Image
  • Ansel_View_List
  • Ansel_View_Results
  • Ansel_View_Slideshow
  • Ansel_View_Upload
  • Ansel_Widget
  • Ansel_Widget_Actions
  • Ansel_Widget_Base
  • Ansel_Widget_GalleryFaces
  • Ansel_Widget_Geotag
  • Ansel_Widget_ImageFaces
  • Ansel_Widget_Links
  • Ansel_Widget_OtherGalleries
  • Ansel_Widget_OwnerFaces
  • Ansel_Widget_SimilarPhotos
  • Ansel_Widget_Tags
  • Ansel_XPPublisher
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * Ansel_Widget_OtherGalleries:: class to display a widget containing mini
  4:  * thumbnails and links to other galleries owned by the same user as the
  5:  * currently viewed image/gallery.
  6:  *
  7:  * Copyright 2008-2012 Horde LLC (http://www.horde.org/)
  8:  *
  9:  * @author Michael J. Rubinsky <mrubinsk@horde.org>
 10:  * @package Ansel
 11:  */
 12: class Ansel_Widget_OtherGalleries extends Ansel_Widget_Base
 13: {
 14:     /**
 15:      * Override the parent class' attach method and set the owner in the
 16:      * title string.
 17:      *
 18:      * @param Ansel_View_Base $view  The view we are attaching to
 19:      */
 20:     public function attach(Ansel_View_Base $view)
 21:     {
 22:         parent::attach($view);
 23:         $owner = $this->_view->gallery->getIdentity();
 24:         $name = $owner->getValue('fullname');
 25:         if (!$name) {
 26:             $name = $this->_view->gallery->get('owner');
 27:         }
 28:         $this->_title = sprintf(_("%s's Galleries"), $name);
 29: 
 30:         return true;
 31:     }
 32: 
 33:     /**
 34:      * Build the HTML for this widget.
 35:      *
 36:      * @return string  The HTML representing this widget.
 37:      */
 38:     public function html()
 39:     {
 40:         // The cache breaks this block for some reason, disable until figured
 41:         // out.
 42: //        if ($GLOBALS['conf']['ansel_cache']['usecache']) {
 43: //            $widget = $GLOBALS['injector']->getInstance('Horde_Cache')->get('Ansel_OtherGalleries' . $this->_view->gallery->get('owner'));
 44: //            if ($widget !== false) {
 45: //                return $widget;
 46: //            }
 47: //        }
 48: 
 49:         $widget = $this->_htmlBegin() . $this->_getOtherGalleries() . $this->_htmlEnd();
 50: //        if ($GLOBALS['conf']['ansel_cache']['usecache']) {
 51: //            $GLOBALS['injector']->getInstance('Horde_Cache')->set('Ansel_OtherGalleries' . $this->_view->gallery->get('owner'), $widget);
 52: //        }
 53: 
 54:         return $widget;
 55:     }
 56: 
 57:     /**
 58:      * Build the HTML for the other galleries widget content.
 59:      *
 60:      * @return string  The HTML
 61:      */
 62:     protected function _getOtherGalleries()
 63:     {
 64:         $owner = $this->_view->gallery->get('owner');
 65: 
 66:         /* Set up the tree */
 67:         $tree = $GLOBALS['injector']->getInstance('Horde_Core_Factory_Tree')->create('otherAnselGalleries_' . md5($owner), 'Javascript', array('class' => 'anselWidgets'));
 68: 
 69:         try {
 70:             $galleries = $GLOBALS['injector']->getInstance('Ansel_Storage')
 71:                     ->listGalleries(array('attributes' => $owner));
 72:         } catch (Ansel_Exception $e) {
 73:             Horde::logMessage($e, 'ERR');
 74:             return '';
 75:         }
 76: 
 77:         $html = '<div style="display:'
 78:             . (($GLOBALS['prefs']->getValue('show_othergalleries')) ? 'block' : 'none')
 79:             . ';background:' . $this->_style->background
 80:             . ';width:100%;max-height:300px;overflow:auto;" id="othergalleries" >';
 81: 
 82:         foreach ($galleries as $gallery) {
 83:             $parents = $gallery->get('parents');
 84:             if (empty($parents)) {
 85:                 $parent = null;
 86:             } else {
 87:                 $parents = explode(':', $parents);
 88:                 $parent = array_pop($parents);
 89:             }
 90: 
 91:             $img = (string)Ansel::getImageUrl($gallery->getKeyImage(Ansel::getStyleDefinition('ansel_default')), 'mini', true);
 92:             $link = Ansel::getUrlFor('view', array('gallery' => $gallery->id,
 93:                                                    'slug' => $gallery->get('slug'),
 94:                                                    'view' => 'Gallery'),
 95:                                      true);
 96: 
 97:             $tree->addNode($gallery->id, $parent, $gallery->get('name'), null,
 98:                            ($gallery->id == $this->_view->gallery->id),
 99:                            array('icon' => $img, 'url' => $link));
100:         }
101: 
102:         Horde::startBuffer();
103:         $GLOBALS['injector']->getInstance('Horde_Core_Factory_Imple')->create(array('ansel', 'ToggleOtherGalleries'), array(
104:             'bindTo' => 'othergalleries'
105:         ));
106: 
107:         $tree->sort('label');
108:         $tree->renderTree();
109:         $html .= Horde::endBuffer();
110:         $html .= '</div>';
111:         $selfurl = Horde::selfUrl(true, true);
112:         $html .= '<div class="control">'
113:               . $selfurl->add('actionID', 'show_actions')->link(
114:                         array('id' => 'othergalleries-toggle',
115:                               'class' => ($GLOBALS['prefs']->getValue('show_othergalleries') ? 'hide' : 'show')))
116:               . '&nbsp;</a></div>';
117: 
118:         return $html;
119:     }
120: 
121: }
122: 
API documentation generated by ApiGen