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_Ajax_Imple_EditCaption:: class for performing Ajax setting of image
 4:  * captions
 5:  *
 6:  * Copyright 2008-2012 Horde LLC (http://www.horde.org/)
 7:  *
 8:  * @author Michael J. Rubinsky <mrubinsk@horde.org>
 9:  * @package Ansel
10:  */
11: class Ansel_Ajax_Imple_EditCaption extends Horde_Core_Ajax_Imple
12: {
13:     public function __construct($params)
14:     {
15:         /* Set up some defaults */
16:         if (empty($params['rows'])) {
17:             $params['rows'] = 2;
18:         }
19:         if (empty($params['cols'])) {
20:             $params['cols'] = 20;
21:         }
22:         parent::__construct($params);
23:     }
24: 
25:     public function attach()
26:     {
27:         Horde::addScriptFile('effects.js', 'horde');
28:         Horde::addScriptFile('inplaceeditor.js', 'horde');
29: 
30:         $params = array('input' => 'value',
31:                         'id' => $this->_params['id']);
32: 
33:         $url = $this->_getUrl('EditCaption', 'ansel', $params);
34:         $loadTextUrl = $this->_getUrl('EditCaption', 'ansel', array_merge($params, array('action' => 'load')));
35:         $js = array();
36: 
37:         $js[] = "new InPlaceEditor('" . $this->_params['domid'] . "', '" . $url . "', {"
38:                 . "   callback: function(form, value) {"
39:                 . "       return 'value=' + encodeURIComponent(value);},"
40:                 . "   loadTextURL: '". $loadTextUrl . "',"
41:                 . "   rows:" . $this->_params['rows'] . ","
42:                 . "   width:" . $this->_params['width'] . ","
43:                 . "   emptyText: '" . _("Click to add caption...") . "',"
44:                 . "   onComplete: function(ipe, opts) { ipe.checkEmpty() },"
45:                 . "   cancelText: '" . _("Cancel") . "',"
46:                 . "   okText: '" . _("Ok") . "',"
47:                 . "   cancelClassName: ''"
48:                 . "  });";
49: 
50:         Horde::addInlineScript($js, 'dom');
51:     }
52: 
53:     public function handle($args, $post)
54:     {
55:         if ($GLOBALS['registry']->getAuth()) {
56:             /* Are we requesting the unformatted text? */
57:             if (!empty($args['action']) && $args['action'] == 'load') {
58:                 $id = $args['id'];
59:                 $image = $GLOBALS['injector']->getInstance('Ansel_Storage')->getImage($id);
60:                 $caption = $image->caption;
61: 
62:                 return $caption;
63:             }
64:             if (empty($args['input']) ||
65:                 is_null($pref_value = Horde_Util::getPost($args['input'], null)) ||
66:                 empty($args['id']) || !is_numeric($args['id'])) {
67: 
68:                     return '';
69:             }
70:             $id = $args['id'];
71:             $image = $GLOBALS['injector']->getInstance('Ansel_Storage')->getImage($id);
72:             $g = $GLOBALS['injector']->getInstance('Ansel_Storage')->getGallery($image->gallery);
73:             if ($g->hasPermission($GLOBALS['registry']->getAuth(), Horde_Perms::EDIT)) {
74:                 $image->caption = $pref_value;
75:                 try {
76:                     $result = $image->save();
77:                 } catch (Ansel_Exception $e) {
78:                     return '';
79:                 }
80:             }
81:             return $GLOBALS['injector']->getInstance('Horde_Core_Factory_TextFilter')->filter(
82:                 $image->caption,
83:                 'text2html',
84:                 array('parselevel' => Horde_Text_Filter_Text2html::MICRO));
85:         }
86:     }
87: 
88: }
89: 
API documentation generated by ApiGen