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:  * Horde_Widget_SimilarPhotos:: class to display a widget containing mini
 4:  * thumbnails of images that are similar, based on tags.
 5:  *
 6:  * @author Michael J. Rubinsky <mrubinsk@horde.org>
 7:  * @category Horde
 8:  * @license http://www.horde.org/licenses/gpl GPL
 9:  * @package Ansel
10:  */
11: class Ansel_Widget_SimilarPhotos extends Ansel_Widget_Base
12: {
13:     /**
14:      * Array of views that this widget may appear in.
15:      *
16:      * @var array
17:      */
18:     protected $_supported_views = array('Image');
19: 
20:     /**
21:      * Constructor
22:      *
23:      * @param array $params  Any parameters for this widget
24:      *
25:      * @return Ansel_Widget_SimilarPhotos
26:      */
27:     public function __construct($params)
28:     {
29:         parent::__construct($params);
30:         $this->_title = _("Similar Photos");
31:     }
32: 
33:     /**
34:      * Return the HTML representing this widget.
35:      *
36:      * @return string  The HTML for this widget.
37:      */
38:     public function html()
39:     {
40:         $html = $this->_htmlBegin();
41:         $html .= '<div id="similar">' . $this->_getRelatedImages() . '</div>';
42:         $html .= $this->_htmlEnd();
43: 
44:         return $html;
45:     }
46: 
47:     /**
48:      * Helper function for generating a widget of images related to this one.
49:      *
50:      *
51:      * @return string  The HTML
52:      */
53:     public function _getRelatedImages()
54:     {
55:         $ansel_storage = $GLOBALS['injector']->getInstance('Ansel_Storage');
56: 
57:         $html = '';
58:         $args = array('typeId' => 'image',
59:                       'userId' => $this->_view->gallery->get('owner'));
60: 
61:         $results = $GLOBALS['injector']->getInstance('Ansel_Tagger')->listRelatedImages($this->_view->resource);
62:         if (count($results)) {
63:             $i = 0;
64:             foreach ($results as $result) {
65:                 $img = $result['image'];
66:                 $rGal = $GLOBALS['injector']->getInstance('Ansel_Storage')->getGallery($img->gallery);
67:                 if ($rGal->hasPermission($GLOBALS['registry']->getAuth(), Horde_Perms::READ))
68:                 $html .= Ansel::getUrlFor(
69:                         'view',
70:                          array('image' => $img->id,
71:                                'view' => 'Image',
72:                                'gallery' => $img->gallery,
73:                                'slug' => $rGal->get('slug')),
74:                          true)->link(array('title' =>  sprintf(_("%s from %s"), $img->filename, $rGal->get('name'))))
75:                     . '<img src="'. Ansel::getImageUrl($img->id, 'mini', true) . '" alt="' . htmlspecialchars($img->filename) . '" /></a>';
76:                 $i++;
77:             }
78:         }
79: 
80:         return $html;
81:     }
82: 
83: }
84: 
API documentation generated by ApiGen