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:  * Autocompleter for textual location data.
 4:  *
 5:  * Copyright 2009-2012 Horde LLC (http://www.horde.org/)
 6:  *
 7:  * See the enclosed file COPYING for license information (GPL). If you
 8:  * did not receive this file, see http://www.horde.org/licenses/gpl.
 9:  *
10:  * @author Michael J. Rubinsky <mrubinsk@horde.org>
11:  * @package Ansel
12:  */
13: class Ansel_Ajax_Imple_LocationAutoCompleter extends Horde_Core_Ajax_Imple_AutoCompleter
14: {
15:     protected function _attach($js_params)
16:     {
17:         $js_params['indicator'] = $this->_params['triggerId'] . '_loading_img';
18:         $js_params['tokens'] = array();
19: 
20:         $ret = array(
21:             'params' => $js_params,
22:             'raw_params' => array(
23:                 'onSelect' => 'function (v) { ' . $this->_params['map'] . '.ll = Ansel.ajax.locationAutoCompleter.geocache[v]; return v; }'
24:             ),
25:             'var' => "Ansel.ajax['locationAutoCompleter']"
26:         );
27: 
28:         /* Use ajax? */
29:         if (!$GLOBALS['session']->exists('ansel', 'ajax_locationac')) {
30:             try {
31:                 $results = $GLOBALS['injector']->getInstance('Ansel_Storage')->searchLocations();
32:                 $GLOBALS['session']->set('ansel', 'ajax_locationac', (count($results) > 50));
33:             } catch (Ansel_Exception $e) {
34:                 Horde::logMessage($e, 'ERR');
35:             }
36:         }
37: 
38:         if ($GLOBALS['session']->get('ansel', 'ajax_locationac')) {
39:             $ret['ajax'] = 'LocationAutoCompleter';
40:         } else {
41:             if (empty($results)) {
42:                 $results = $GLOBALS['injector']->getInstance('Ansel_Storage')->searchLocations();
43:             }
44:             $ret['browser'] = Horde_Serialize::serialize($results, Horde_Serialize::JSON);
45:         }
46: 
47:         return $ret;
48:     }
49: 
50:     public function handle($args, $post)
51:     {
52:         // Avoid errors if 'input' isn't set and short-circuit empty searches.
53:         if (empty($args['input']) ||
54:             !($input = Horde_Util::getFormData($args['input']))) {
55:             return array();
56:         }
57:         try {
58:             $locs = $GLOBALS['injector']->getInstance('Ansel_Storage')->searchLocations($input);
59:             if (!count($locs)) {
60:                 $locs = new StdClass();
61:             }
62:         } catch (Ansel_Exception $e) {
63:             Horde::logMessage($e->getMessage(), 'ERR');
64:             $locs = new StdClass();
65:         }
66:         return $locs;
67:     }
68: 
69: }
70: 
API documentation generated by ApiGen