I have a requirement to adding a checkbox set to the admin search, I have done this using
updateSearchContext
in a admin extension, But search not working, Anyone knows how to do it? Or I want to know silverstripe cant do this? Thank you!
UserAdmin.php
class UserAdmin extends ModelAdmin
{
private static $managed_models = [
Member::class
];
public function getList()
{
$list = parent::getList();
$params = $this->getFilterParams();
if ( isset($params['InternalExternal']) ) {
if (!is_array($params['InternalExternal']) && strpos($params['InternalExternal'], ',') !== false) {
$internalExternalParams = explode(',',$params['InternalExternal']);
} else {
$internalExternalParams = $params['InternalExternal'];
}
$list = $list->filter('InternalExternal', $internalExternalParams );
}
return $list;
}
public function getFilterParams()
{
$class = $this->sanitiseClassName($this->modelClass);
$body = $this->getRequest()->getBody();
parse_str($body, $array);
$params = [];
//........
}
}
UserAdminExtension.php
class UserAdminExtension extends DataExtension
{
public function updateSearchContext(&$context)
{
$source = singleton(Member::class)->dbObject('InternalExternal')->enumValues();
array_shift($source);
$InternalExternal = CheckboxSetField::create(
'InternalExternal',
'Internal / External',
$source
);
$context->getFields()->push($InternalExternal);
}
}