public function pagemetas_autocompleteuser(){ $request = $this->getPageRequest(); $view = $this->getView(); $view->mode = View::MODE_AJAX; $view->contenttype = View::CTYPE_JSON; $view->record = false; // This is an ajax-only request. if(!$request->isAjax()){ return View::ERROR_BADREQUEST; } // Does the user have access to search for users? if(!\Core\user()->checkAccess('p:/user/search/autocomplete')){ return View::ERROR_ACCESSDENIED; } $includeInactive = ($request->getParameter('inactive') == '1'); $term = $request->getParameter('term'); $results = UserModel::Search($term); // I want to order them by relevancy. $sr = new Core\Search\SearchResults(); $sr->addResults($results); $sr->sortResults(); $filteredresults = array(); foreach($sr->get() as $user){ /** @var Core\Search\ModelResult $user */ /** @var UserModel $model */ $model = $user->_model; // This model will only be added to the form if it's active. if(!($model->get('active') || $includeInactive)){ continue; } $filteredresults[] = array( 'id' => $model->get('id'), 'label' => $model->getDisplayName(), 'value' => $model->get('id'), ); } // The json data will contain the following keys for each element: // id, label, value $view->jsondata = $filteredresults; }