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);
   265         if ($clip->hasContent()) {
   269             $add_button->setCaption($a_options[
'submit_name'], 
false);
   270             $add_button->setCommand(
'addUserFromAutoComplete');
   272             $action_button->setDefaultButton($add_button);
   275             $clip_button->addCSSClass(
'btn btndefault');
   277             $clip_button->setCaption($lng->
txt(
'clipboard_add_from_btn'), 
false);
   278             $clip_button->setCommand(
'showClipboard');
   282             $toolbar->addButtonInstance($action_button);
   285             $button->setCaption($a_options[
'submit_name'], 
false);
   286             $button->setCommand(
'addUserFromAutoComplete');
   288                 $toolbar->addButtonInstance($button);
   290                 $toolbar->addStickyItem($button);
   294         if ($a_options[
'add_search'] ||
   295             is_numeric($a_options[
'add_from_container'])) {
   298             $toolbar->addSeparator();
   300             if ($a_options[
'add_search']) {
   301                 $button = $ui_factory->
button()->standard(
   302                     $lng->
txt(
'search_users'),
   303                     $ilCtrl->getLinkTargetByClass(strtolower(self::class), 
'')
   305                 $toolbar->addComponent($button);
   308             if (is_numeric($a_options[
'add_from_container'])) {
   309                 $parent_ref_id = (
int) $a_options[
'add_from_container'];
   311                 $parent_container_type = 
"grp";
   312                 if (!$parent_container_ref_id) {
   314                     $parent_container_type = 
"crs";
   316                 if ($parent_container_ref_id) {
   317                     if ($a_options[
'add_search']) {
   318                         $toolbar->addSpacer();
   321                     $ilCtrl->setParameterByClass(
'ilRepositorySearchGUI', 
"list_obj", 
ilObject::_lookupObjId($parent_container_ref_id));
   323                     $button = $ui_factory->
button()->standard(
   324                         $lng->
txt(
'search_add_members_from_container_' . $parent_container_type),
   325                         $ilCtrl->getLinkTargetByClass(array(get_class($parent_object),
'ilRepositorySearchGUI'), 
'listUsers')
   327                     $toolbar->addComponent($button);
   332         $toolbar->setFormAction(
   333             $ilCtrl->getFormActionByClass(
   335                     get_class($parent_object),
   336                     'ilRepositorySearchGUI')
   346             echo json_encode(
new stdClass(), JSON_THROW_ON_ERROR);
   349         if (!$this->
http->wrapper()->query()->has(
'autoCompleteField')) {
   356             $result_field = 
'login';
   358             $auto_complete_field = $this->
http->wrapper()->query()->retrieve(
   360                 $this->
refinery->kindlyTo()->string()
   362             $a_fields = [$auto_complete_field];
   363             $result_field = $auto_complete_field;
   368         if ($this->
http->wrapper()->query()->has(
'fetchall')) {
   372         $auto->setMoreLinkAvailable(
true);
   373         $auto->setSearchFields($a_fields);
   374         $auto->setResultField($result_field);
   375         $auto->enableFieldSearchableCheck(
true);
   377         if (is_callable($this->user_filter)) {          
   378             $auto->addUserAccessFilterCallable(Closure::fromCallable($this->user_filter));
   382         if ($this->
http->wrapper()->post()->has(
'term')) {
   383             $query = $this->
http->wrapper()->post()->retrieve(
   385                 $this->
refinery->kindlyTo()->string()
   389             if ($this->
http->wrapper()->query()->has(
'term')) {
   390                 $query = $this->
http->wrapper()->query()->retrieve(
   392                     $this->
refinery->kindlyTo()->string()
   396         echo $auto->getList($query);
   404         $search[
'string'] = $this->
string = $a_str;
   414         $next_class = $this->
ctrl->getNextClass($this);
   415         $cmd = $this->
ctrl->getCmd();
   416         switch ($next_class) {
   437         $this->
ctrl->returnToParent($this);
   452         $class = $this->role_callback[
'class'];
   453         $method = $this->role_callback[
'method'];
   458         if ($this->
http->wrapper()->post()->has(
'obj')) {
   459             $obj_ids = $this->
http->wrapper()->post()->retrieve(
   465         foreach ($obj_ids as 
$id) {
   467             if ($obj_type == 
"crs" || $obj_type == 
"grp") {
   471                 $role_ids[] = $mem_role;
   476         $class->$method($role_ids);
   483         $class = $this->callback[
'class'];
   484         $method = $this->callback[
'method'];
   487         if ($this->
http->wrapper()->post()->has(
'user')) {
   488             $users = $this->
http->wrapper()->post()->retrieve(
   496         $class->$method($users);
   504         $class = $this->callback[
'class'];
   505         $method = $this->callback[
'method'];
   508         if ($this->
http->wrapper()->post()->has(
'user_login')) {
   509             $post_users = $this->
http->wrapper()->post()->retrieve(
   511                 $this->
refinery->kindlyTo()->string()
   515         $users = explode(
',', $post_users);
   517         foreach ($users as $user) {
   520                 $user_ids[] = $user_id;
   525         if (!$class->$method($user_ids, $user_type)) {
   526             $this->
ctrl->returnToParent($this);
   533         if ($user_type === 
'') {
   536         $this->
ctrl->setParameter($this, 
'user_type', $user_type);
   537         $this->
tabs->clearTargets();
   538         $this->
tabs->setBackTarget(
   539             $this->
lng->txt(
'back'),
   540             $this->
ctrl->getParentReturn($this)
   548         $this->tpl->setContent($clip->getHTML());
   555         if ($user_type === 
'') {
   558         $this->
ctrl->setParameter($this, 
'user_type', $user_type);
   561         if ($this->
http->wrapper()->post()->has(
'uids')) {
   562             $users = $this->
http->wrapper()->post()->retrieve(
   564                 $this->
refinery->kindlyTo()->dictOf(
   569         if (!count($users)) {
   570             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_one'), 
true);
   571             $this->
ctrl->redirect($this, 
'showClipboard');
   573         $class = $this->callback[
'class'];
   574         $method = $this->callback[
'method'];
   575         if (!$class->$method($users, $user_type)) {
   576             $this->
ctrl->returnToParent($this);
   584         if ($this->
http->wrapper()->post()->has(
'uids')) {
   585             $users = $this->
http->wrapper()->post()->retrieve(
   587                 $this->
refinery->kindlyTo()->listOf(
   594         if (!count($users)) {
   595             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_one'), 
true);
   596             $this->
ctrl->redirect($this, 
'showClipboard');
   600         $clip->delete($users);
   603         $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'settings_saved'), 
true);
   604         $this->
ctrl->redirect($this, 
'showClipboard');
   614         $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
'settings_saved'), 
true);
   615         $this->
ctrl->returnToParent($this);
   621         $class = $this->callback[
'class'];
   622         $method = $this->callback[
'method'];
   624         $post_user = (array) ($this->
http->request()->getParsedBody()[
'user'] ?? []);
   625         $post_selected_command = 
'';
   627             $this->
http->wrapper()->post()->has(
'table_top_cmd') &&
   628             $this->
http->wrapper()->post()->has(
'selectedCommand_2')
   630             $post_selected_command = $this->
http->wrapper()->post()->retrieve(
   632                 $this->
refinery->kindlyTo()->string()
   634         } elseif ($this->
http->wrapper()->post()->has(
'selectedCommand')) {
   635             $post_selected_command = $this->
http->wrapper()->post()->retrieve(
   637                 $this->
refinery->kindlyTo()->string()
   641         if (!$class->$method($post_user, $post_selected_command)) {
   652         array $a_add_options = [],
   653         string $default_option = 
''   655         $this->callback = array(
'class' => $class,
'method' => $method);
   656         $this->add_options = $a_add_options;
   666         array $a_add_options = [],
   667         string $default_option = 
''   669         $this->role_callback = array(
'class' => $class,
'method' => $method);
   670         $this->add_options = $a_add_options;
   687         $this->tpl->setContent($this->
form->getHTML());
   693         if ($this->
http->wrapper()->query()->has(
'selected_id')) {
   694             $selected = $this->
http->wrapper()->query()->retrieve(
   699         $this->tpl->addBlockFile(
'ADM_CONTENT', 
'adm_content', 
'tpl.rep_search_result.html', 
'Services/Search');
   707         $this->
form->setFormAction($this->
ctrl->getFormAction($this, 
'showSearch'));
   709         $this->
form->addCommandButton(
'performSearch', $this->
lng->txt(
'search'));
   710         $this->
form->addCommandButton(
'cancel', $this->
lng->txt(
'cancel'));
   714         $kind->
setValue($this->search_type);
   715         $this->
form->addItem($kind);
   726                     $sel = 
new ilSelectInputGUI($info[
'lang'], 
"rep_query[usr][" . $info[
'db'] . 
"]");
   727                     $sel->setOptions($info[
'values']);
   728                     $users->addSubItem($sel);
   735                     if (isset($info[
'autoComplete']) and $info[
'autoComplete']) {
   736                         $this->
ctrl->setParameterByClass(get_class($this), 
'autoCompleteField', $info[
'db']);
   737                         $ul = 
new ilTextInputGUI($info[
'lang'], 
"rep_query[usr][" . $info[
'db'] . 
"]");
   738                         $ul->setDataSourceSubmitOnSelection(
true);
   739                         $ul->setDataSourceSubmitUrl(
   740                             $this->
ctrl->getLinkTarget(
   742                                 'showSearchSelected',
   748                         $ul->setDataSource($this->
ctrl->getLinkTarget(
   750                             "doUserAutoComplete",
   755                         $ul->setMaxLength(120);
   758                             switch ($info[
'db']) {
   773                         $users->addSubItem($ul);
   777                         $txt->setMaxLength(120);
   778                         $users->addSubItem(
$txt);
   783         $kind->addOption($users);
   788         $roles = 
new ilRadioOption($this->
lng->txt(
'search_for_role_members'), 
'role');
   789         $role = 
new ilTextInputGUI($this->
lng->txt(
'search_role_title'), 
'rep_query[role][title]');
   791         $role->setMaxLength(120);
   793         $kind->addOption($roles);
   796         $groups = 
new ilRadioOption($this->
lng->txt(
'search_for_crs_members'), 
'crs');
   797         $group = 
new ilTextInputGUI($this->
lng->txt(
'search_crs_title'), 
'rep_query[crs][title]');
   799         $group->setMaxLength(120);
   801         $kind->addOption($groups);
   804         $groups = 
new ilRadioOption($this->
lng->txt(
'search_for_grp_members'), 
'grp');
   805         $group = 
new ilTextInputGUI($this->
lng->txt(
'search_grp_title'), 
'rep_query[grp][title]');
   807         $group->setMaxLength(120);
   809         $kind->addOption($groups);
   813             $orgus = 
new ilRadioOption($this->
lng->txt(
'search_for_orgu_members'), 
'orgu');
   815                 $this->
lng->txt(
'select_orgu'),
   820             $orgu->getExplorerGUI()->setSelectableTypes([
"orgu"]);
   821             $orgu->getExplorerGUI()->setTypeWhiteList([
"root", 
"orgu"]);
   823             $orgu->getExplorerGUI()->setAjax(
false);
   825             $kind->addOption($orgus);
   848         $found_query = 
false;
   850         $post_rep_query = (array) ($this->
http->request()->getParsedBody()[
'rep_query'] ?? []);
   851         $post_search_for = (string) ($this->
http->request()->getParsedBody()[
'search_for'] ?? 
'');
   852         if (isset($post_rep_query[$post_search_for])) {
   853             foreach ((array) $post_rep_query[$post_search_for] as $field => $value) {
   860         if ($this->
http->wrapper()->post()->has(
'rep_query_orgu')) {
   864             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'msg_no_search_string'));
   869         $post_cmd = (array) ($this->
http->request()->getParsedBody()[
'cmd'] ?? []);
   871         if (isset($post_cmd[
'performSearch'])) {
   875         switch ($this->search_type) {
   892                 $post_rep_query_orgu = (array) ($this->
http->request()->getParsedBody()[
'rep_query_orgu'] ?? []);
   893                 $selected_objects = array_map(
   899                 return $this->
listUsers($selected_objects);
   904         $this->result_obj->setRequiredPermission(
'read');
   905         $this->result_obj->addObserver($this, 
'searchResultFilterListener');
   909         if ($this->search_type == 
'usr') {
   911             if (is_callable($this->user_filter, 
true, $callable_name)) {
   912                 $result_ids = call_user_func_array($this->user_filter, [$this->result_obj->getResultIds()]);
   914                 $result_ids = $this->result_obj->getResultIds();
   917             $this->search_results = array_intersect(
   922             $this->search_results = array();
   923             foreach ($this->result_obj->getResults() as 
$res) {
   924                 $this->search_results[] = 
$res[
'obj_id'];
   928         if (!count($this->search_results)) {
   929             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'search_no_match'));
   934         if ($this->result_obj->isLimitReached()) {
   935             $message = sprintf($this->
lng->txt(
'search_limit_reached'), $this->
settings->getMaxHits());
   936             $this->tpl->setOnScreenMessage(
'info', 
$message);
   950             $query_string = $rep_query[
'usr'][$name] ?? 
'';
   952             if (!$query_string) {
   957                 $this->tpl->setOnScreenMessage(
'info', $query_parser);
   960             switch ($info[
'type']) {
   967                     $udf_search->setFields(array($name));
   968                     $result_obj = $udf_search->performSearch();
   976                     if ($info[
'db'] == 
'org_units') {
   978                         $result_obj = $user_search->performSearch();
   987                     $user_search->setFields(array($name));
   988                     $result_obj = $user_search->performSearch();
   996                     $multi_search->setFields(array($name));
   997                     $result_obj = $multi_search->performSearch();
  1008         $query_string = $rep_query[
'grp'][
'title'] ?? 
'';
  1010             $this->tpl->setOnScreenMessage(
'info', $query_parser, 
true);
  1015         $object_search->setFilter(array(
'grp'));
  1024         $query_string = $rep_query[
'crs'][
'title'] ?? 
'';
  1026             $this->tpl->setOnScreenMessage(
'info', $query_parser, 
true);
  1031         $object_search->setFilter(array(
'crs'));
  1040         $query_string = $rep_query[
'role'][
'title'] ?? 
'';
  1042             $this->tpl->setOnScreenMessage(
'info', $query_parser, 
true);
  1048         $object_search->setFilter(array(
'role'));
  1057     public function __parseQueryString(
string $a_string, 
bool $a_combination_or = 
true, 
bool $a_ignore_length = 
false)
  1061         $query_parser->setMinWordLength(1);
  1064         if (!$a_ignore_length) {
  1065             $query_parser->setGlobalMinLength(3); 
  1068         $query_parser->parse();
  1070         if (!$query_parser->validate()) {
  1071             return $query_parser->getMessage();
  1073         return $query_parser;
  1079         if ($this->
http->wrapper()->post()->has(
'rep_query')) {
  1082                 $this->
http->request()->getParsedBody()[
'rep_query']
  1091         if ($this->
http->wrapper()->post()->has(
'search_for')) {
  1094                 $this->
http->request()->getParsedBody()[
'search_for']
  1110         foreach ($this->search_results as $result) {
  1113         if (!$rep_search[$this->search_type]) {
  1129             $rep_search[
'usr'] = $a_usr_ids;
  1134         foreach ($a_usr_ids as $usr_id) {
  1135             $rep_search[
'usr'][] = $usr_id;
  1137         $rep_search[
'usr'] = array_unique($rep_search[
'usr'] ?? []);
  1139         return $rep_search[
'usr'];
  1144         if ($this->stored == 
false) {
  1145             $this->result_obj->mergeEntries($new_res);
  1146             $this->stored = 
true;
  1149             $this->result_obj->intersectEntries($new_res);
  1157         $toolbar->addButton(
  1158             $this->
lng->txt(
'search_new'),
  1159             $this->
ctrl->getLinkTarget($this, 
'showSearch')
  1161         $this->tpl->setVariable(
'ACTION_BUTTONS', $toolbar->getHTML());
  1167         $f_result = array();
  1169         $this->tpl->addBlockFile(
'ADM_CONTENT', 
'adm_content', 
'tpl.rep_search_result.html', 
'Services/Search');
  1174         switch ($this->search_type) {
  1196         if ($this->
http->wrapper()->query()->has(
'baseClass')) {
  1197             $base_class = $this->
http->wrapper()->query()->retrieve(
  1199                 $this->
refinery->kindlyTo()->string()
  1204         $is_in_admin = ($base_class === strtolower(ilAdministrationGUI::class));
  1212         if (count($this->add_options)) {
  1213             $table->addMultiItemSelectionButton(
  1216                 'handleMultiCommand',
  1217                 $this->
lng->txt(
'execute'),
  1221             $table->addMultiCommand(
'addUser', $this->
lng->txt(
'btn_add'));
  1224         $table->parseUserIds($a_usr_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());
  1248         $table->parseObjectIds($a_obj_ids);
  1250         $this->tpl->setVariable(
'RES_TABLE', $table->getHTML());
  1253     protected function listUsers(array $selected_entries = []): bool
  1258             $this->
http->wrapper()->post()->has(
'obj') &&
  1259             !count($selected_entries)
  1261             $selected_entries = $this->
http->wrapper()->post()->retrieve(
  1267             $this->
http->wrapper()->query()->has(
'list_obj') &&
  1268             !count($selected_entries)
  1270             $selected_entries[] = $this->
http->wrapper()->query()->retrieve(
  1275         if (!count($selected_entries)) {
  1276             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_one'));
  1281         $rep_search[
'objs'] = $selected_entries;
  1286         foreach ($selected_entries as $obj_id) {
  1293                         if (is_callable($this->user_filter)) {
  1294                             $part = call_user_func_array(
  1304                         $members = array_merge((array) $members, $part);
  1310                     if (is_callable($this->user_filter)) {
  1311                         $assigned = call_user_func_array(
  1314                                 $this->rbacreview->assignedUsers($obj_id)
  1318                         $assigned = $this->rbacreview->assignedUsers($obj_id);
  1326                             ->getUserIdsOfOrgUnit(array_shift($ref_ids));
  1327                         if (is_callable($this->user_filter)) {
  1328                             $assigned = call_user_func_array(
  1334                         $members = array_merge(
  1342         $members = array_unique($members);
  1345         $this->tpl->addBlockFile(
'ADM_CONTENT', 
'adm_content', 
'tpl.rep_search_result.html', 
'Services/Search');
  1356         $objects = $rep_search[
'objs'] ?? [];
  1368         if ($a_data[
'type'] == 
'usr') {
  1378         $this->object_selection = $a_value;
  1388         $selected_entries = [];
  1389         if ($this->
http->wrapper()->post()->has(
'obj')) {
  1390             $selected_entries = $this->
http->wrapper()->post()->retrieve(
  1396             $this->
http->wrapper()->query()->has(
'list_obj') &&
  1397             !count($selected_entries)
  1399             $selected_entries[] = $this->
http->wrapper()->query()->retrieve(
  1405         if (!count($selected_entries)) {
  1406             $this->tpl->setOnScreenMessage(
'failure', $this->
lng->txt(
'select_one'));
  1410         $this->
ctrl->setParameter($this->callback[
"class"], 
"obj", implode(
";", $selected_entries));
  1411         $this->
ctrl->redirect($this->callback[
"class"], $this->callback[
"method"]);
  1420         $this->user_limitations = $a_limitations;
 Interface GlobalHttpState. 
 
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...
 
An entity that renders components to a string output. 
 
enableSearchableCheck(bool $a_status)
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
__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)
 
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
 
setCallback(object $class, string $method, array $a_add_options=[], string $default_option='')
 
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins 
 
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)