TYPO3 CMS  TYPO3_8-7
AutocompleteController.php
Go to the documentation of this file.
1 <?php
3 
4 /*
5  * This file is part of the TYPO3 CMS project.
6  *
7  * It is free software; you can redistribute it and/or modify it under
8  * the terms of the GNU General Public License, either version 2
9  * of the License, or any later version.
10  *
11  * For the full copyright and license information, please read the
12  * LICENSE.txt file that was distributed with this source code.
13  *
14  * The TYPO3 project - inspiring people to share!
15  */
16 
21 {
25  public function indexAction()
26  {
27  $this->view->assign('id', $this->widgetConfiguration['for']);
28  }
29 
34  public function autocompleteAction($term)
35  {
36  $searchProperty = $this->widgetConfiguration['searchProperty'];
37  $query = $this->widgetConfiguration['objects']->getQuery();
38  $constraint = $query->getConstraint();
39  if ($constraint !== null) {
40  $query->matching($query->logicalAnd($constraint, $query->like($searchProperty, '%' . $term . '%', false)));
41  } else {
42  $query->matching($query->like($searchProperty, '%' . $term . '%', false));
43  }
44  $results = $query->execute();
45  $output = [];
46  foreach ($results as $singleResult) {
47  $val = \TYPO3\CMS\Extbase\Reflection\ObjectAccess::getProperty($singleResult, $searchProperty);
48  $output[] = [
49  'id' => $val,
50  'label' => $val,
51  'value' => $val
52  ];
53  }
54  return json_encode($output);
55  }
56 }
static getProperty($subject, $propertyName, $forceDirectAccess=false)