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_UploadNotification:: class provides an API for sending
 4:  * notification to various services after uploading images to a gallery.
 5:  *
 6:  * Copyright 2011-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_UploadNotification extends Horde_Core_Ajax_Imple
12: {
13:     public function attach()
14:     {
15:         // noop
16:     }
17: 
18:     public function getUrl()
19:     {
20:         return $this->_getUrl('UploadNotification', 'ansel');
21:     }
22: 
23:     public function handle($args, $post)
24:     {
25:         $gallery = $GLOBALS['injector']
26:             ->getInstance('Ansel_Storage')
27:             ->getGallery($post['g']);
28: 
29:         switch ($post['s']) {
30:         case 'twitter':
31:             $url = Ansel::getUrlFor(
32:                 'view',
33:                 array('view' => 'Gallery', 'gallery' => $gallery->id),
34:                 true);
35:             if (!empty($GLOBALS['conf']['urlshortener'])) {
36:                 try {
37:                     $url = $GLOBALS['injector']
38:                         ->getInstance('Horde_Service_UrlShortener')
39:                         ->shorten($url->setRaw(true));
40:                 } catch (Horde_Service_UrlShortener_Exception $e) {
41:                     Horde::logMessage($e, 'ERR');
42:                     header('HTTP/1.1 500');
43:                 }
44:             }
45:             $text = sprintf(_("New images uploaded to %s. %s"), $gallery->get('name'), $url);
46:             $twitter = $this->_getTwitterObject();
47: 
48:             try {
49:                 return $twitter->statuses->update($text);
50:             } catch (Horde_Service_Twitter_Exception $e) {
51:                 Horde::logMessage($e, 'ERR');
52:                 header('HTTP/1.1 500');
53:             }
54:         }
55:     }
56: 
57:     protected function _getTwitterObject()
58:     {
59:         $token = unserialize($GLOBALS['prefs']->getValue('twitter'));
60:         if (empty($token['key']) && empty($token['secret'])) {
61:             $pref_link = Horde::getServiceLink('prefs', 'horde')->add('group', 'twitter')->link();
62:             throw new Horde_Exception(sprintf(_("You have not properly connected your Twitter account with Horde. You should check your Twitter settings in your %s."), $pref_link . _("preferences") . '</a>'));
63:         }
64: 
65:         $twitter = $GLOBALS['injector']->getInstance('Horde_Service_Twitter');
66:         $auth_token = new Horde_Oauth_Token($token['key'], $token['secret']);
67:         $twitter->auth->setToken($auth_token);
68: 
69:         return $twitter;
70:     }
71: 
72: }
73: 
API documentation generated by ApiGen