PHP code example of otago / autocomplete-suggest-field
1. Go to this page and download the library: Download otago/autocomplete-suggest-field library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
otago / autocomplete-suggest-field example snippets
use OP\AutocompleteSuggestField;
use SilverStripe\Security\Member;
class MyFavouriteUserPage extends Page {
private static $has_one = array(
'FavouriteUser' => Member::class
);
public function getCMSFields() {
$fields = parent::getCMSFields();
$suggesteduser = AutocompleteSuggestField::create('FavouriteUserID', Member::create());
$suggesteduser->setDescription('Enter text to search for your favourite user');
$fields->addFieldToTab('Root.Main', $suggesteduser);
return $fields;
}
}
use OP\AutocompleteSuggestField;
use SilverStripe\CMS\Controllers\ModelAsController;
use SilverStripe\Control\HTTPRequest;
use SilverStripe\View\Requirements;
use SilverStripe\Security\Member;
class MyFavouriteUserPage extends Page {
private static $has_one = array(
'FavouriteUser' => Member::class
);
public function getCMSFields() {
$fields = parent::getCMSFields();
$suggesteduser = AutocompleteSuggestField::create('FavouriteUserID', Member::create(), 'Favourite user', ModelAsController::controller_for($this), null);
$suggesteduser->setDescription('Enter text to search for your favourite user');
$fields->addFieldToTab('Root.Main', $suggesteduser);
return $fields;
}
}
class MyFavouriteUserPageController extends PageController {
private static $allowed_actions = array(
'autocompleteFavouriteUserID',
);
/**
* searches users in the local db
* @param SS_HTTPRequest $httprequest
*/
public function autocompleteFavouriteUserID(HTTPRequest $httprequest) {
Requirements::clear();
$query = $httprequest->getVar('query');
$returnarray = array();
if ($query && strlen($query) > 1) {
$name = explode(' ', $query);
$members = array();
if (count($name) === 1) {
$members = Member::get()->filter(array('FirstName:StartsWith:nocase' => $name[0]))->limit(10);
}
if (count($name) > 1) {
$members = Member::get()->filter(array('FirstName:StartsWith:nocase' => $name[0], 'Surname:StartsWith:nocase' => $name[1]))->limit(10);
}
foreach ($members as $member) {
$returnarray[] = array('id' => $member->ID, 'name' => $member->getName());
}
}
print_r(json_encode($returnarray));
}
}
class TeamPage_Controller extends Page_Controller {
private static $allowed_actions = array(
'autocompleteTeam'
);
/**
* used to autocomplete the teams on office 365
* @param SS_HTTPRequest $httprequest
*/
public function autocompleteTeam(SS_HTTPRequest $httprequest) {
Requirements::clear();
$query = $httprequest->getVar('query');
$returnarray = array();
if ($query && strlen($query) > 1) {
$searchresult = office365::searchForTeam(urlencode($query));
foreach ($searchresult->value as $team) {
$returnarray[] = array('id' => $team->id, 'name' => $team->displayName . ' (' . $team->description . ')');
}
}
print_r(json_encode($returnarray));
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.