19 declare(strict_types=1);
    86         $this->
ctrl = $DIC->ctrl();
    87         $this->tpl = $DIC->ui()->mainTemplate();
    88         $this->tree = $DIC->repositoryTree();
    89         $this->ui_renderer = $DIC->ui()->renderer();
    90         $this->ui_factory = $DIC->ui()->factory();
    91         $this->
lng = $DIC->language();
    92         $this->rbacreview = $DIC->rbac()->review();
    94         $this->
http = $DIC->http();
    95         $this->
user = $DIC->user();
    96         $this->
tabs = $DIC->tabs();
    98         $this->
lng->loadLanguageModule(
'search');
    99         $this->
lng->loadLanguageModule(
'crs');
   101         $this->
setTitle($this->
lng->txt(
'add_members_header'));
   107         $this->result_obj->setMaxHits(1000000);
   113         if ($this->
http->wrapper()->query()->has(
'user_type')) {
   114             return $this->
http->wrapper()->query()->retrieve(
   116                 $this->
refinery->kindlyTo()->string()
   124         if ($this->
http->wrapper()->post()->has(
'user_type')) {
   125             return $this->
http->wrapper()->post()->retrieve(
   127                 $this->
refinery->kindlyTo()->string()
   148         $this->search_title = $a_title;
   158         $this->searchable_check = $a_status;
   196         object $parent_object,
   198         array $a_options = [],
   199         bool $a_sticky = 
false   203         $ilToolbar = $DIC->toolbar();
   204         $lng = $DIC->language();
   205         $ilCtrl = $DIC->ctrl();
   206         $tree = $DIC->repositoryTree();
   207         $user = $DIC->user();
   208         $ui_factory = $DIC->ui()->factory();
   209         $ui_renderer = $DIC->ui()->renderer();
   212             $toolbar = $ilToolbar;
   216         if (!isset($a_options[
'auto_complete_name'])) {
   217             $a_options[
'auto_complete_name'] = $lng->
txt(
'obj_user');
   219         if (!isset($a_options[
'auto_complete_size'])) {
   220             $a_options[
'auto_complete_size'] = 15;
   222         if (!isset($a_options[
'submit_name'])) {
   223             $a_options[
'submit_name'] = $lng->
txt(
'btn_add');
   225         if (!isset($a_options[
'user_type_default'])) {
   226             $a_options[
'user_type_default'] = null;
   229         if (!isset($a_options[
'add_search'])) {
   230             $a_options[
'add_search'] = 
false;
   232         if (!isset($a_options[
'add_from_container'])) {
   233             $a_options[
'add_from_container'] = null;
   236         $ajax_url = $ilCtrl->getLinkTargetByClass(
   237             array(get_class($parent_object),
'ilRepositorySearchGUI'),
   238             'doUserAutoComplete',
   244         $ul = 
new ilTextInputGUI($a_options[
'auto_complete_name'], 
'user_login');
   245         $ul->setDataSource($ajax_url);
   246         $ul->setSize($a_options[
'auto_complete_size']);
   248             $toolbar->addInputItem($ul, 
true);
   250             $toolbar->addStickyItem($ul, 
true);
   253         if (isset($a_options[
'user_type']) && count((array) $a_options[
'user_type'])) {
   255             $si->setOptions($a_options[
'user_type']);
   256             $si->setValue($a_options[
'user_type_default']);
   258                 $toolbar->addInputItem($si);
   260                 $toolbar->addStickyItem($si);
   267         $add_button->setCaption($a_options[
'submit_name'], 
false);
   268         $add_button->setCommand(
'addUserFromAutoComplete');
   270         if (!$a_sticky || $clip->hasContent()) {
   271             $toolbar->addButtonInstance($add_button);
   273             $toolbar->addStickyItem($add_button);
   276         if ($clip->hasContent()) {
   278             $clip_button->addCSSClass(
'btn btndefault');
   280             $clip_button->setCaption($lng->
txt(
'clipboard_add_from_btn'), 
false);
   281             $clip_button->setCommand(
'showClipboard');
   283             $toolbar->addButtonInstance($clip_button);
   286         if ($a_options[
'add_search'] ||
   287             is_numeric($a_options[
'add_from_container'])) {
   290             $toolbar->addSeparator();
   292             if ($a_options[
'add_search']) {
   293                 $button = $ui_factory->
button()->standard(
   294                     $lng->
txt(
'search_users'),
   295                     $ilCtrl->getLinkTargetByClass(strtolower(self::class), 
'')
   297                 $toolbar->addComponent($button);
   300             if (is_numeric($a_options[
'add_from_container'])) {
   301                 $parent_ref_id = (
int) $a_options[
'add_from_container'];
   303                 $parent_container_type = 
"grp";
   304                 if (!$parent_container_ref_id) {
   306                     $parent_container_type = 
"crs";
   308                 if ($parent_container_ref_id) {
   309                     if ($a_options[
'add_search']) {
   310                         $toolbar->addSpacer();
   313                     $ilCtrl->setParameterByClass(
'ilRepositorySearchGUI', 
"list_obj", 
ilObject::_lookupObjId($parent_container_ref_id));
   315                     $button = $ui_factory->
button()->standard(
   316                         $lng->
txt(
'search_add_members_from_container_' . $parent_container_type),
   317                         $ilCtrl->getLinkTargetByClass(array(get_class($parent_object),
'ilRepositorySearchGUI'), 
'listUsers')
   319                     $toolbar->addComponent($button);
   324         $toolbar->setFormAction(
   325             $ilCtrl->getFormActionByClass(
   327                     get_class($parent_object),
   328                     'ilRepositorySearchGUI')
   338             echo json_encode(
new stdClass(), JSON_THROW_ON_ERROR);
   341         if (!$this->
http->wrapper()->query()->has(
'autoCompleteField')) {
   348             $result_field = 
'login';
   350             $auto_complete_field = $this->
http->wrapper()->query()->retrieve(
   352                 $this->
refinery->kindlyTo()->string()
   354             $a_fields = [$auto_complete_field];
   355             $result_field = $auto_complete_field;
   360         if ($this->
http->wrapper()->query()->has(
'fetchall')) {
   364         $auto->setMoreLinkAvailable(
true);
   365         $auto->setSearchFields($a_fields);
   366         $auto->setResultField($result_field);
   367         $auto->enableFieldSearchableCheck(
true);
   369         if (is_callable($this->user_filter)) {          
   370             $auto->addUserAccessFilterCallable(Closure::fromCallable($this->user_filter));
   374         if ($this->
http->wrapper()->post()->has(
'term')) {
   375             $query = $this->
http->wrapper()->post()->retrieve(
   377                 $this->
refinery->kindlyTo()->string()
   381             if ($this->
http->wrapper()->query()->has(
'term')) {
   382                 $query = $this->
http->wrapper()->query()->retrieve(
   384                     $this->
refinery->kindlyTo()->string()
   388         echo $auto->getList($query);
   396         $search[
'string'] = $this->
string = $a_str;
   406         $next_class = $this->
ctrl->getNextClass($this);
   407         $cmd = $this->
ctrl->getCmd();
   408         switch ($next_class) {
   429         $this->
ctrl->returnToParent($this);
   444         $class = $this->role_callback[
'class'];
   445         $method = $this->role_callback[
'method'];
   450         if ($this->
http->wrapper()->post()->has(
'obj')) {
   451             $obj_ids = $this->
http->wrapper()->post()->retrieve(
   457         foreach ($obj_ids as 
$id) {
   459             if ($obj_type == 
"crs" || $obj_type == 
"grp") {
   463                 $role_ids[] = $mem_role;
   468         $class->$method($role_ids);
   475         $class = $this->callback[
'class'];
   476         $method = $this->callback[
'method'];
   479         if ($this->
http->wrapper()->post()->has(
'user')) {
   480             $users = $this->
http->wrapper()->post()->retrieve(
   488         $class->$method($users);
   496         $class = $this->callback[
'class'];
   497         $method = $this->callback[
'method'];
   500         if ($this->
http->wrapper()->post()->has(
'user_login')) {
   501             $post_users = $this->
http->wrapper()->post()->retrieve(
   503                 $this->
refinery->kindlyTo()->string()
   507         $users = explode(
',', $post_users);
   509         foreach ($users as $user) {
   517         if (!$class->$method($user_ids, $user_type)) {
   518             $this->
ctrl->returnToParent($this);
   525         if ($user_type === 
'') {
   528         $this->
ctrl->setParameter($this, 
'user_type', $user_type);
   529         $this->
tabs->clearTargets();
   530         $this->
tabs->setBackTarget(
   531             $this->
lng->txt(
'back'),
   532             $this->
ctrl->getParentReturn($this)
   540         $this->tpl->setContent($clip->getHTML());
   547         if ($user_type === 
'') {
   550         $this->
ctrl->setParameter($this, 
'user_type', $user_type);
   553         if ($this->
http->wrapper()->post()->has(
'uids')) {
   554             $users = $this->
http->wrapper()->post()->retrieve(
   556                 $this->
refinery->kindlyTo()->dictOf(
   561         if (!count($users)) {
   562             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_one'), 
true);
   563             $this->
ctrl->redirect($this, 
'showClipboard');
   565         $class = $this->callback[
'class'];
   566         $method = $this->callback[
'method'];
   567         if (!$class->$method($users, $user_type)) {
   568             $this->
ctrl->returnToParent($this);
   576         if ($this->
http->wrapper()->post()->has(
'uids')) {
   577             $users = $this->
http->wrapper()->post()->retrieve(
   579                 $this->
refinery->kindlyTo()->listOf(
   586         if (!count($users)) {
   587             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_one'), 
true);
   588             $this->
ctrl->redirect($this, 
'showClipboard');
   592         $clip->delete($users);
   595         $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'settings_saved'), 
true);
   596         $this->
ctrl->redirect($this, 
'showClipboard');
   606         $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'settings_saved'), 
true);
   607         $this->
ctrl->returnToParent($this);
   613         $class = $this->callback[
'class'];
   614         $method = $this->callback[
'method'];
   616         $post_user = (array) ($this->
http->request()->getParsedBody()[
'user'] ?? []);
   617         $post_selected_command = 
'';
   619             $this->
http->wrapper()->post()->has(
'table_top_cmd') &&
   620             $this->
http->wrapper()->post()->has(
'selectedCommand_2')
   622             $post_selected_command = $this->
http->wrapper()->post()->retrieve(
   624                 $this->
refinery->kindlyTo()->string()
   626         } elseif ($this->
http->wrapper()->post()->has(
'selectedCommand')) {
   627             $post_selected_command = $this->
http->wrapper()->post()->retrieve(
   629                 $this->
refinery->kindlyTo()->string()
   633         if (!$class->$method($post_user, $post_selected_command)) {
   644         array $a_add_options = [],
   645         string $default_option = 
''   647         $this->callback = array(
'class' => $class,
'method' => $method);
   648         $this->add_options = $a_add_options;
   658         array $a_add_options = [],
   659         string $default_option = 
''   661         $this->role_callback = array(
'class' => $class,
'method' => $method);
   662         $this->add_options = $a_add_options;
   679         $this->tpl->setContent($this->
form->getHTML());
   685         if ($this->
http->wrapper()->query()->has(
'selected_id')) {
   686             $selected = $this->
http->wrapper()->query()->retrieve(
   691         $this->tpl->addBlockFile(
'ADM_CONTENT', 
'adm_content', 
'tpl.rep_search_result.html', 
'components/ILIAS/Search');
   699         $this->
form->setFormAction($this->
ctrl->getFormAction($this, 
'showSearch'));
   701         $this->
form->addCommandButton(
'performSearch', $this->
lng->txt(
'search'));
   702         $this->
form->addCommandButton(
'cancel', $this->
lng->txt(
'cancel'));
   706         $kind->
setValue($this->search_type);
   707         $this->
form->addItem($kind);
   718                     $sel = 
new ilSelectInputGUI($info[
'lang'], 
"rep_query[usr][" . $info[
'db'] . 
"]");
   719                     $sel->setOptions($info[
'values']);
   720                     $users->addSubItem($sel);
   727                     if (isset($info[
'autoComplete']) and $info[
'autoComplete']) {
   728                         $this->
ctrl->setParameterByClass(get_class($this), 
'autoCompleteField', $info[
'db']);
   729                         $ul = 
new ilTextInputGUI($info[
'lang'], 
"rep_query[usr][" . $info[
'db'] . 
"]");
   730                         $ul->setDataSourceSubmitOnSelection(
true);
   731                         $ul->setDataSourceSubmitUrl(
   732                             $this->
ctrl->getLinkTarget(
   734                                 'showSearchSelected',
   740                         $ul->setDataSource($this->
ctrl->getLinkTarget(
   742                             "doUserAutoComplete",
   747                         $ul->setMaxLength(120);
   750                             switch ($info[
'db']) {
   765                         $users->addSubItem($ul);
   769                         $txt->setMaxLength(120);
   770                         $users->addSubItem(
$txt);
   775         $kind->addOption($users);
   780         $roles = 
new ilRadioOption($this->
lng->txt(
'search_for_role_members'), 
'role');
   781         $role = 
new ilTextInputGUI($this->
lng->txt(
'search_role_title'), 
'rep_query[role][title]');
   783         $role->setMaxLength(120);
   785         $kind->addOption($roles);
   788         $groups = 
new ilRadioOption($this->
lng->txt(
'search_for_crs_members'), 
'crs');
   789         $group = 
new ilTextInputGUI($this->
lng->txt(
'search_crs_title'), 
'rep_query[crs][title]');
   791         $group->setMaxLength(120);
   793         $kind->addOption($groups);
   796         $groups = 
new ilRadioOption($this->
lng->txt(
'search_for_grp_members'), 
'grp');
   797         $group = 
new ilTextInputGUI($this->
lng->txt(
'search_grp_title'), 
'rep_query[grp][title]');
   799         $group->setMaxLength(120);
   801         $kind->addOption($groups);
   805             $orgus = 
new ilRadioOption($this->
lng->txt(
'search_for_orgu_members'), 
'orgu');
   807                 $this->
lng->txt(
'select_orgu'),
   812             $orgu->getExplorerGUI()->setSelectableTypes([
"orgu"]);
   813             $orgu->getExplorerGUI()->setTypeWhiteList([
"root", 
"orgu"]);
   815             $orgu->getExplorerGUI()->setAjax(
false);
   817             $kind->addOption($orgus);
   840         $found_query = 
false;
   842         $post_rep_query = (array) ($this->
http->request()->getParsedBody()[
'rep_query'] ?? []);
   843         $post_search_for = (string) ($this->
http->request()->getParsedBody()[
'search_for'] ?? 
'');
   844         if (isset($post_rep_query[$post_search_for])) {
   845             foreach ((array) $post_rep_query[$post_search_for] as $field => $value) {
   852         if ($this->
http->wrapper()->post()->has(
'rep_query_orgu')) {
   856             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'msg_no_search_string'));
   861         $post_cmd = (array) ($this->
http->request()->getParsedBody()[
'cmd'] ?? []);
   863         if (isset($post_cmd[
'performSearch'])) {
   867         switch ($this->search_type) {
   884                 $post_rep_query_orgu = (array) ($this->
http->request()->getParsedBody()[
'rep_query_orgu'] ?? []);
   891                 return $this->
listUsers($selected_objects);
   896         $this->result_obj->setRequiredPermission(
'read');
   897         $this->result_obj->addObserver($this, 
'searchResultFilterListener');
   901         if ($this->search_type == 
'usr') {
   903             if (is_callable($this->user_filter, 
true, $callable_name)) {
   904                 $result_ids = call_user_func_array($this->user_filter, [$this->result_obj->getResultIds()]);
   906                 $result_ids = $this->result_obj->getResultIds();
   909             $this->search_results = array_intersect(
   914             $this->search_results = array();
   915             foreach ($this->result_obj->getResults() as 
$res) {
   916                 $this->search_results[] = 
$res[
'obj_id'];
   920         if (!count($this->search_results)) {
   921             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'search_no_match'));
   926         if ($this->result_obj->isLimitReached()) {
   927             $message = sprintf($this->
lng->txt(
'search_limit_reached'), $this->
settings->getMaxHits());
   928             $this->tpl->setOnScreenMessage(
'info', $message);
   942             $query_string = $rep_query[
'usr'][$name] ?? 
'';
   944             if (!$query_string) {
   949                 $this->tpl->setOnScreenMessage(
'info', $query_parser);
   952             switch ($info[
'type']) {
   959                     $udf_search->setFields(array($name));
   960                     $result_obj = $udf_search->performSearch();
   968                     if ($info[
'db'] == 
'org_units') {
   970                         $result_obj = $user_search->performSearch();
   979                     $user_search->setFields(array($name));
   980                     $result_obj = $user_search->performSearch();
   988                     $multi_search->setFields(array($name));
   989                     $result_obj = $multi_search->performSearch();
  1000         $query_string = $rep_query[
'grp'][
'title'] ?? 
'';
  1002             $this->tpl->setOnScreenMessage(
'info', $query_parser, 
true);
  1007         $object_search->setFilter(array(
'grp'));
  1016         $query_string = $rep_query[
'crs'][
'title'] ?? 
'';
  1018             $this->tpl->setOnScreenMessage(
'info', $query_parser, 
true);
  1023         $object_search->setFilter(array(
'crs'));
  1032         $query_string = $rep_query[
'role'][
'title'] ?? 
'';
  1034             $this->tpl->setOnScreenMessage(
'info', $query_parser, 
true);
  1040         $object_search->setFilter(array(
'role'));
  1049     public function __parseQueryString(
string $a_string, 
bool $a_combination_or = 
true, 
bool $a_ignore_length = 
false)
  1053         $query_parser->setMinWordLength(1);
  1056         if (!$a_ignore_length) {
  1057             $query_parser->setGlobalMinLength(3); 
  1060         $query_parser->parse();
  1062         if (!$query_parser->validate()) {
  1063             return $query_parser->getMessage();
  1065         return $query_parser;
  1071         if ($this->
http->wrapper()->post()->has(
'rep_query')) {
  1074                 $this->
http->request()->getParsedBody()[
'rep_query']
  1083         if ($this->
http->wrapper()->post()->has(
'search_for')) {
  1086                 $this->
http->request()->getParsedBody()[
'search_for']
  1102         foreach ($this->search_results as $result) {
  1105         if (!$rep_search[$this->search_type]) {
  1121             $rep_search[
'usr'] = $a_usr_ids;
  1126         foreach ($a_usr_ids as $usr_id) {
  1127             $rep_search[
'usr'][] = $usr_id;
  1129         $rep_search[
'usr'] = array_unique($rep_search[
'usr'] ?? []);
  1131         return $rep_search[
'usr'];
  1136         if ($this->stored == 
false) {
  1137             $this->result_obj->mergeEntries($new_res);
  1138             $this->stored = 
true;
  1141             $this->result_obj->intersectEntries($new_res);
  1149         $toolbar->addButton(
  1150             $this->
lng->txt(
'search_new'),
  1151             $this->
ctrl->getLinkTarget($this, 
'showSearch')
  1153         $this->tpl->setVariable(
'ACTION_BUTTONS', $toolbar->getHTML());
  1159         $f_result = array();
  1161         $this->tpl->addBlockFile(
'ADM_CONTENT', 
'adm_content', 
'tpl.rep_search_result.html', 
'components/ILIAS/Search');
  1166         switch ($this->search_type) {
  1188         if ($this->
http->wrapper()->query()->has(
'baseClass')) {
  1189             $base_class = $this->
http->wrapper()->query()->retrieve(
  1191                 $this->
refinery->kindlyTo()->string()
  1196         $is_in_admin = ($base_class === strtolower(ilAdministrationGUI::class));
  1204         if (count($this->add_options)) {
  1205             $table->addMultiItemSelectionButton(
  1208                 'handleMultiCommand',
  1209                 $this->
lng->txt(
'execute'),
  1213             $table->addMultiCommand(
'addUser', $this->
lng->txt(
'btn_add'));
  1216         $table->parseUserIds($a_usr_ids);
  1218         $this->tpl->setVariable(
'RES_TABLE', $table->getHTML());
  1224         $table->parseObjectIds($a_obj_ids);
  1226         $this->tpl->setVariable(
'RES_TABLE', $table->getHTML());
  1232         $table->parseObjectIds($a_obj_ids);
  1234         $this->tpl->setVariable(
'RES_TABLE', $table->getHTML());
  1240         $table->parseObjectIds($a_obj_ids);
  1242         $this->tpl->setVariable(
'RES_TABLE', $table->getHTML());
  1245     protected function listUsers(array $selected_entries = []): bool
  1250             $this->
http->wrapper()->post()->has(
'obj') &&
  1251             !count($selected_entries)
  1253             $selected_entries = $this->
http->wrapper()->post()->retrieve(
  1259             $this->
http->wrapper()->query()->has(
'list_obj') &&
  1260             !count($selected_entries)
  1262             $selected_entries[] = $this->
http->wrapper()->query()->retrieve(
  1267         if (!count($selected_entries)) {
  1268             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_one'));
  1273         $rep_search[
'objs'] = $selected_entries;
  1278         foreach ($selected_entries as $obj_id) {
  1285                         if (is_callable($this->user_filter)) {
  1286                             $part = call_user_func_array(
  1296                         $members = array_merge((array) $members, $part);
  1302                     if (is_callable($this->user_filter)) {
  1303                         $assigned = call_user_func_array(
  1306                                 $this->rbacreview->assignedUsers($obj_id)
  1310                         $assigned = $this->rbacreview->assignedUsers($obj_id);
  1318                             ->getUserIdsOfOrgUnit(array_shift($ref_ids));
  1319                         if (is_callable($this->user_filter)) {
  1320                             $assigned = call_user_func_array(
  1326                         $members = array_merge(
  1334         $members = array_unique($members);
  1337         $this->tpl->addBlockFile(
'ADM_CONTENT', 
'adm_content', 
'tpl.rep_search_result.html', 
'components/ILIAS/Search');
  1348         $objects = $rep_search[
'objs'] ?? [];
  1360         if ($a_data[
'type'] == 
'usr') {
  1370         $this->object_selection = $a_value;
  1380         $selected_entries = [];
  1381         if ($this->
http->wrapper()->post()->has(
'obj')) {
  1382             $selected_entries = $this->
http->wrapper()->post()->retrieve(
  1388             $this->
http->wrapper()->query()->has(
'list_obj') &&
  1389             !count($selected_entries)
  1391             $selected_entries[] = $this->
http->wrapper()->query()->retrieve(
  1397         if (!count($selected_entries)) {
  1398             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_one'));
  1402         $this->
ctrl->setParameter($this->callback[
"class"], 
"obj", implode(
";", $selected_entries));
  1403         $this->
ctrl->redirect($this->callback[
"class"], $this->callback[
"method"]);
  1412         $this->user_limitations = $a_limitations;
 selectObject()
Return selection of course/group/roles to calling script. 
 
static get(string $a_var)
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
enableSearchableCheck(bool $a_status)
 
TableGUI class user search results. 
 
__storeEntries(ilSearchResult $new_res)
 
addUserFromAutoComplete()
 
isSearchableCheckEnabled()
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
 
setFormAction(string $a_form_action, bool $a_multipart=false)
 
__appendToStoredResults(array $a_usr_ids)
 
setPrivacyMode(int $privacy_mode)
 
static getUserOrgUnitAssignmentInstance(ilQueryParser $query_parser)
 
const PRIVACY_MODE_RESPECT_USER_SETTING
 
allowObjectSelection(bool $a_value=false)
 
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
 
listUsers(array $selected_entries=[])
 
static _getAllReferences(int $id)
get all reference ids for object ID 
 
static getInstanceByObjId(int $a_obj_id)
Get instance by obj type. 
 
const FIELD_TYPE_UDF_UNDEFINED
 
static _lookupId($a_user_str)
 
__parseQueryString(string $a_string, bool $a_combination_or=true, bool $a_ignore_length=false)
 
setRoleCallback(object $class, string $method, array $a_add_options=[], string $default_option='')
 
loadLanguageModule(string $a_module)
Load language module. 
 
static _getUserSearchInstance(ilQueryParser $query_parser)
 
showSearchGroupTable(array $a_obj_ids)
 
static getDefaultMemberRole(int $a_ref_id)
 
static getUserMultiFieldSearchInstance(ilQueryParser $query_parser)
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
static _lookupObjId(int $ref_id)
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
initFormSearch(ilObjUser $user=null)
 
checkForParentType(int $a_ref_id, string $a_type, bool $a_exclude_source_check=false)
Check for parent type e.g check if a folder (ref_id 3) is in a parent course obj => checkForParentTyp...
 
static http()
Fetches the global http state from ILIAS. 
 
static _getUserDefinedFieldSearchInstance(ilQueryParser $query_parser)
 
This is how the factory for UI elements looks. 
 
getUserLimitations()
allow user limitations like inactive and access limitations 
 
searchResultFilterListener(int $a_ref_id, array $a_data)
Listener called from ilSearchResult Id is obj_id for role, usr Id is ref_id for crs grp...
 
static fillAutoCompleteToolbar(object $parent_object, ilToolbarGUI $toolbar=null, array $a_options=[], bool $a_sticky=false)
array( auto_complete_name = $lng->txt('user'), auto_complete_size = 15, user_type = array(ilCoursePar...
 
ilGlobalTemplateInterface $tpl
 
RefineryFactory $refinery
 
static hasParticipantListAccess(int $a_obj_id, int $a_usr_id=null)
Check if (current) user has access to the participant list. 
 
static _getSearchableFieldsInfo(bool $a_admin=false)
 
setTitle(string $a_title)
 
setUserLimitations(bool $a_limitations)
allow user limitations like inactive and access limitations 
 
ilSearchSettings $settings
 
showSearchCourseTable(array $a_obj_ids)
 
TableGUI class object (course,group and role) search results Used in member search. 
 
form( $class_path, string $cmd, string $submit_caption="")
 
const FIELD_TYPE_UDF_SELECT
 
button()
 description: purpose: > Buttons trigger interactions that change the system’s or view's status...
 
addUserAccessFilterCallable(callable $user_filter)
Closure for filtering users e.g $rep_search_gui->addUserAccessFilterCallable(function($user_ids) use(...
 
ilSearchResult $result_obj
 
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins 
 
setCallback(object $class, string $method, array $a_add_options=[], string $default_option='')
 
filter(string $filter_id, $class_path, string $cmd, bool $activated=true, bool $expanded=true)
 
const PRIVACY_MODE_IGNORE_USER_SETTING
 
setPermissionQueryCallback(object $class, string $method)
 
static _lookupType(int $id, bool $reference=false)
 
showSearchRoleTable(array $a_obj_ids)
 
static clear(string $a_var)
 
static _isEnabled($a_key)
 
static set(string $a_var, $a_val)
Set a value. 
 
static getInstance(int $a_usr_id)
 
const FIELD_TYPE_UDF_TEXT
 
showSearchUserTable(array $a_usr_ids, string $a_parent_cmd)