TYPO3 CMS  TYPO3_6-2
AutocompleteController.php
Go to the documentation of this file.
1 <?php
3 
4 /* *
5  * This script is backported from the TYPO3 Flow package "TYPO3.Fluid". *
6  * *
7  * It is free software; you can redistribute it and/or modify it under *
8  * the terms of the GNU Lesser General Public License, either version 3 *
9  * of the License, or (at your option) any later version. *
10  * *
11  * *
12  * This script is distributed in the hope that it will be useful, but *
13  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- *
14  * TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser *
15  * General Public License for more details. *
16  * *
17  * You should have received a copy of the GNU Lesser General Public *
18  * License along with the script. *
19  * If not, see http://www.gnu.org/licenses/lgpl.html *
20  * *
21  * The TYPO3 project - inspiring people to share! *
22  * */
24 
28  public function indexAction() {
29  $this->view->assign('id', $this->widgetConfiguration['for']);
30  }
31 
36  public function autocompleteAction($term) {
37  $searchProperty = $this->widgetConfiguration['searchProperty'];
38  $query = $this->widgetConfiguration['objects']->getQuery();
39  $constraint = $query->getConstraint();
40  if ($constraint !== NULL) {
41  $query->matching($query->logicalAnd($constraint, $query->like($searchProperty, '%' . $term . '%', FALSE)));
42  } else {
43  $query->matching($query->like($searchProperty, '%' . $term . '%', FALSE));
44  }
45  $results = $query->execute();
46  $output = array();
47  foreach ($results as $singleResult) {
48  $val = \TYPO3\CMS\Extbase\Reflection\ObjectAccess::getProperty($singleResult, $searchProperty);
49  $output[] = array(
50  'id' => $val,
51  'label' => $val,
52  'value' => $val
53  );
54  }
55  return json_encode($output);
56  }
57 }
static getProperty($subject, $propertyName, $forceDirectAccess=FALSE)