1: <?php
2: /**
3: * Copyright 2009-2012 Horde LLC (http://www.horde.org/)
4: *
5: * See the enclosed file COPYING for license information (GPL). If you
6: * did not receive this file, see http://www.horde.org/licenses/gpl.
7: *
8: * @author Michael Slusarz <slusarz@horde.org>
9: * @package Kronolith
10: */
11: class Kronolith_Ajax_Imple_TagAutoCompleter extends Horde_Core_Ajax_Imple_AutoCompleter
12: {
13: /**
14: * Attach the Imple object to a javascript event.
15: * If the 'pretty' parameter is empty then we want a
16: * traditional autocompleter, otherwise we get a spiffy pretty one.
17: *
18: * @param array $js_params See
19: * Horde_Core_Ajax_Imple_AutoCompleter::_attach().
20: *
21: * @return array See Horde_Core_Ajax_Imple_AutoCompleter::_attach().
22: */
23: protected function _attach($js_params)
24: {
25: $js_params['indicator'] = $this->_params['triggerId'] . '_loading_img';
26:
27: $ret = array(
28: 'params' => $js_params
29: );
30:
31: if (empty($this->_params['pretty'])) {
32: $ret['ajax'] = 'TagAutoCompleter';
33: } else {
34: $ret['pretty'] = 'TagAutoCompleter';
35: }
36:
37: if (!empty($this->_params['var'])) {
38: $ret['var'] = $this->_params['var'];
39: }
40:
41: return $ret;
42: }
43:
44: /**
45: * TODO
46: *
47: * @param array $args TODO
48: *
49: * @return string TODO
50: */
51: public function handle($args, $post)
52: {
53: // Avoid errors if 'input' isn't set and short-circuit empty searches.
54: if (empty($args['input']) ||
55: !($input = Horde_Util::getFormData($args['input']))) {
56: return array();
57: }
58:
59: $tagger = Kronolith::getTagger();
60: return array_values($tagger->listTags($input));
61: }
62:
63: }
64: