TYPO3 CMS  TYPO3_7-6
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  {
30  $this->view->assign('id', $this->widgetConfiguration['for']);
31  }
32 
37  public function autocompleteAction($term)
38  {
39  $searchProperty = $this->widgetConfiguration['searchProperty'];
40  $query = $this->widgetConfiguration['objects']->getQuery();
41  $constraint = $query->getConstraint();
42  if ($constraint !== null) {
43  $query->matching($query->logicalAnd($constraint, $query->like($searchProperty, '%' . $term . '%', false)));
44  } else {
45  $query->matching($query->like($searchProperty, '%' . $term . '%', false));
46  }
47  $results = $query->execute();
48  $output = [];
49  foreach ($results as $singleResult) {
50  $val = \TYPO3\CMS\Extbase\Reflection\ObjectAccess::getProperty($singleResult, $searchProperty);
51  $output[] = [
52  'id' => $val,
53  'label' => $val,
54  'value' => $val
55  ];
56  }
57  return json_encode($output);
58  }
59 }
static getProperty($subject, $propertyName, $forceDirectAccess=false)