ILIAS  release_8 Revision v8.25-1-g13de6a5eca6
class.ilUserTableGUI.php
Go to the documentation of this file.
1<?php
2
25{
26 public const MODE_USER_FOLDER = 1;
27 public const MODE_LOCAL_USER = 2;
28
29 private ?int $mode = null;
30 private int $user_folder_id = 0;
31 private bool $with_write_access = false;
32 protected \ILIAS\User\StandardGUIRequest $user_request;
33 protected array $udf_fields = [];
34 protected array $filter = [];
35
36 public function __construct(
37 object $a_parent_obj,
38 string $a_parent_cmd,
39 int $a_mode = self::MODE_USER_FOLDER,
40 bool $a_load_items = true
41 ) {
43 global $DIC;
44
45 $ilCtrl = $DIC->ctrl();
46 $lng = $DIC->language();
47
48
49 $this->user_folder_id = $a_parent_obj->getObject()->getRefId();
50
51 if ($DIC['rbacsystem']->checkAccess('write', $this->user_folder_id)
52 || $DIC['rbacsystem']->checkAccess('cat_administrate_users', $this->user_folder_id)) {
53 $this->with_write_access = true;
54 }
55
56 $this->setMode($a_mode);
57 $this->setId("user" . $this->getUserFolderId());
59
60 parent::__construct($a_parent_obj, $a_parent_cmd);
61 // $this->setTitle($this->lng->txt("users"));
62
63 $this->addColumn("", "", "1", true);
64 $this->addColumn($this->lng->txt("login"), "login");
65
66 foreach ($this->getSelectedColumns() as $c) {
67 if ($this->isUdfColumn($c)) {
68 $f = $this->getUserDefinedField($c);
69 $this->addColumn($f["txt"], $f["sortable"] ? $c : "");
70 } else { // usual column
71 $this->addColumn($this->lng->txt($c), $c);
72 }
73 }
74
75 if ($this->getMode() == self::MODE_LOCAL_USER) {
76 $this->addColumn($this->lng->txt('context'), 'time_limit_owner');
77 $this->addColumn($this->lng->txt('role_assignment'));
78 }
79
80 $this->setShowRowsSelector(true);
81 $this->setExternalSorting(true);
82 $this->setExternalSegmentation(true);
83 $this->setEnableHeader(true);
84
85 $this->setFormAction($ilCtrl->getFormAction($this->parent_obj, "applyFilter"));
86 $this->setRowTemplate("tpl.user_list_row.html", "Services/User");
87 //$this->disable("footer");
88 $this->setEnableTitle(true);
89 $this->initFilter();
90 $this->setFilterCommand("applyFilter");
91 $this->setDefaultOrderField("login");
92 $this->setDefaultOrderDirection("asc");
93
94 $this->setSelectAllCheckbox("id[]");
95 $this->setTopCommands(true);
96
97 $this->user_request = new \ILIAS\User\StandardGUIRequest(
98 $DIC->http(),
99 $DIC->refinery()
100 );
101
102 if ($this->getMode() == self::MODE_USER_FOLDER) {
103 $this->setEnableAllCommand(true);
104
105 $cmds = $a_parent_obj->getUserMultiCommands();
106 foreach ($cmds as $cmd => $caption) {
107 $this->addMultiCommand($cmd, $caption);
108 }
109 } else {
110 $this->addMultiCommand("deleteUsers", $lng->txt("delete"));
111 }
112
113 if ($a_load_items) {
114 $this->getItems();
115 }
116 }
117
118 protected function setMode(int $a_mode): void
119 {
120 $this->mode = $a_mode;
121 }
122
123 protected function getMode(): int
124 {
125 return $this->mode;
126 }
127
128 protected function getUserFolderId(): int
129 {
131 }
132
136 public function readUserDefinedFieldsDefinitions(): void
137 {
138 $user_defined_fields = ilUserDefinedFields::_getInstance();
139 foreach ($user_defined_fields->getDefinitions() as $field => $definition) {
140 if ($this->mode === self::MODE_LOCAL_USER
141 && $definition['visib_lua'] === '0') {
142 continue;
143 }
144
145 $this->udf_fields["udf_" . $field] = array(
146 "txt" => $definition["field_name"],
147 "default" => false,
148 "options" => $definition["field_values"],
149 "type" => $definition["field_type"],
150 "sortable" => in_array($definition["field_type"], array(UDF_TYPE_TEXT, UDF_TYPE_SELECT)),
151 );
152 }
153 }
154
158 public function getUserDefinedField(string $a_key): array // Missing array type.
159 {
160 return $this->udf_fields[$a_key] ?? array();
161 }
162
163 public function isUdfColumn(string $a_key): bool
164 {
165 if (strpos($a_key, "udf_") === 0) {
166 return true;
167 }
168 return false;
169 }
170
171 public function getSelectableColumns(): array // Missing array type.
172 {
173 global $DIC;
174
175 $lng = $DIC['lng'];
176
177 $up = new ilUserProfile();
178 $up->skipGroup("preferences");
179 $up->skipGroup("interests");
180 $up->skipGroup("settings");
181
182 // default fields
183 $cols = array();
184
185 // first and last name cannot be hidden
186 $cols["firstname"] = array(
187 "txt" => $lng->txt("firstname"),
188 "default" => true);
189 $cols["lastname"] = array(
190 "txt" => $lng->txt("lastname"),
191 "default" => true);
192 if ($this->getMode() == self::MODE_USER_FOLDER) {
193 $ufs = $up->getStandardFields();
194
195 $cols["access_until"] = array(
196 "txt" => $lng->txt("access_until"),
197 "default" => true);
198 $cols["last_login"] = array(
199 "txt" => $lng->txt("last_login"),
200 "default" => true);
201
202 // #13967
203 $cols["create_date"] = array(
204 "txt" => $lng->txt("create_date"));
205 $cols["approve_date"] = array(
206 "txt" => $lng->txt("approve_date"));
207 $cols["agree_date"] = array(
208 "txt" => $lng->txt("agree_date"));
209 } else {
210 $ufs = $up->getLocalUserAdministrationFields();
211 }
212
213 // email should be the 1st "optional" field (can be hidden)
214 if (isset($ufs["email"])) {
215 $cols["email"] = array(
216 "txt" => $lng->txt("email"),
217 "default" => true);
218 }
219 if (isset($ufs["second_email"])) {
220 $cols["second_email"] = array(
221 "txt" => $lng->txt("second_email"),
222 "default" => true);
223 }
224 // other user profile fields
225 foreach ($ufs as $f => $fd) {
226 if (!isset($cols[$f]) && (!isset($fd["lists_hide"]) || !$fd["lists_hide"])) {
227 // #18795
228 $caption = $fd["lang_var"] ?? $f;
229 $cols[$f] = array(
230 "txt" => $lng->txt($caption),
231 "default" => false);
232 }
233 }
234
235
239 $cols["auth_mode"] = array(
240 "txt" => $lng->txt("auth_mode"),
241 "default" => false);
242
243 foreach ($this->udf_fields as $k => $field) {
244 $cols[$k] = $field;
245 }
246
247 // fields that are always shown
248 unset($cols["username"]);
249
250 return $cols;
251 }
252
253 protected function buildUserQuery(): ilUserQuery
254 {
255 $query = new ilUserQuery();
256 $query->setOffset($this->getOffset());
257 $query->setLimit($this->getLimit());
258 $query->setTextFilter($this->filter['query'] ?? '');
259 $query->setActionFilter($this->filter['activation'] ?? '');
260 $query->setLastLogin($this->filter['last_login'] ?? null);
261 $query->setLimitedAccessFilter($this->filter['limited_access'] ?? false);
262 $query->setNoCourseFilter($this->filter['no_courses'] ?? false);
263 $query->setNoGroupFilter($this->filter['no_groups'] ?? false);
264 $query->setCourseGroupFilter($this->filter['course_group'] ?? 0);
265 $query->setRoleFilter((int) ($this->filter['global_role'] ?? 0));
266 $query->setUserFilter($this->filter['user_ids'] ?? []);
267 $query->setFirstLetterLastname($this->user_request->getLetter());
268 $query->setAuthenticationFilter($this->filter['authentication'] ?? '');
269 return $query;
270 }
271
272 public function getItems(): void
273 {
274 global $DIC;
275
276 $lng = $DIC['lng'];
277
279 if ($this->getMode() == self::MODE_USER_FOLDER) {
280 // All accessible users
281 $user_filter = ilLocalUser::_getFolderIds(true);
282 } else {
283 if ($this->filter['time_limit_owner'] ?? null) {
284 $user_filter = array($this->filter['time_limit_owner']);
285 } else {
286 // All accessible users
287 $user_filter = ilLocalUser::_getFolderIds();
288 }
289 }
290
291
292
293 //#13221 don't show all users if user filter is empty!
294 if (!count($user_filter)) {
295 $this->setMaxCount(0);
296 $this->setData([]);
297 return;
298 }
299
300 if (isset($this->filter['user_ids']) && is_array($this->filter['user_ids']) && !count($this->filter['user_ids'])) {
301 $this->setMaxCount(0);
302 $this->setData([]);
303 return;
304 }
305
306 $additional_fields = $this->getSelectedColumns();
307 unset(
308 $additional_fields["firstname"],
309 $additional_fields["lastname"],
310 $additional_fields["email"],
311 $additional_fields["second_email"],
312 $additional_fields["last_login"],
313 $additional_fields["access_until"],
314 $additional_fields['org_units']
315 );
316
317 $udf_filter = array();
318 foreach ($this->filter as $k => $v) {
319 if (strpos($k, "udf_") === 0) {
320 $udf_filter[$k] = $v;
321 }
322 }
323
324 $query = $this->buildUserQuery();
325 $order_field = $this->getOrderField();
326 if (strpos($order_field, "udf_") !== 0 || isset($additional_fields[$order_field])) {
327 $query->setOrderField($order_field);
328 $query->setOrderDirection($this->getOrderDirection());
329 }
330 $query->setAdditionalFields($additional_fields);
331 $query->setUserFolder($user_filter);
332 $query->setUdfFilter($udf_filter);
333 $usr_data = $query->query();
334
335 if (count($usr_data["set"]) == 0 && $this->getOffset() > 0) {
336 $this->resetOffset();
337 $query->setOffset($this->getOffset());
338 $usr_data = $query->query();
339 }
340
341 foreach ($usr_data["set"] as $k => $user) {
342 if (in_array('org_units', $this->getSelectedColumns())) {
343 $usr_data['set'][$k]['org_units'] = ilObjUser::lookupOrgUnitsRepresentation($user['usr_id']);
344 }
345
346
347 $current_time = time();
348 if ($user['active']) {
349 if ($user["time_limit_unlimited"]) {
350 $txt_access = $lng->txt("access_unlimited");
351 $usr_data["set"][$k]["access_class"] = "smallgreen";
352 } elseif ($user["time_limit_until"] < $current_time) {
353 $txt_access = $lng->txt("access_expired");
354 $usr_data["set"][$k]["access_class"] = "smallred";
355 } else {
356 $txt_access = ilDatePresentation::formatDate(new ilDateTime($user["time_limit_until"], IL_CAL_UNIX));
357 $usr_data["set"][$k]["access_class"] = "small";
358 }
359 } else {
360 $txt_access = $lng->txt("inactive");
361 $usr_data["set"][$k]["access_class"] = "smallred";
362 }
363 $usr_data["set"][$k]["access_until"] = $txt_access;
364 }
365
366 $this->setMaxCount($usr_data["cnt"]);
367 $this->setData($usr_data["set"]);
368 }
369
370 public function addFilterItemValue($filter, $value): void // Missing parameter types.
371 {
372 $this->filter[$filter] = $value;
373 }
374
375 public function getUserIdsForFilter(): array // Missing array type.
376 {
377 if ($this->getMode() == self::MODE_USER_FOLDER) {
378 // All accessible users
379 $user_filter = ilLocalUser::_getFolderIds(true);
380 } else {
381 if ($this->filter['time_limit_owner']) {
382 $user_filter = array($this->filter['time_limit_owner']);
383 } else {
384 // All accessible users
385 $user_filter = ilLocalUser::_getFolderIds();
386 }
387 }
388
389 if (!isset($this->filter['user_ids'])) {
390 $this->filter['user_ids'] = null;
391 }
392
393 $query = $this->buildUserQuery();
394 $query->setUserFolder($user_filter);
395 if ($this->getOrderField()) {
396 $query->setOrderField(ilUtil::stripSlashes($this->getOrderField()));
397 $query->setOrderDirection(ilUtil::stripSlashes($this->getOrderDirection()));
398 }
399 $usr_data = $query->query();
400
401 $user_ids = array();
402
403 foreach ($usr_data["set"] as $item) {
404 // #11632
405 if ($item["usr_id"] != SYSTEM_USER_ID) {
406 $user_ids[] = $item["usr_id"];
407 }
408 }
409 return $user_ids;
410 }
411
412 public function initFilter(): void
413 {
414 global $DIC;
415
416 $lng = $DIC['lng'];
417 $rbacreview = $DIC['rbacreview'];
418 $ilUser = $DIC['ilUser'];
419 $ilCtrl = $DIC['ilCtrl'];
420
421
422 // Show context filter
423 if ($this->getMode() == self::MODE_LOCAL_USER) {
424 $parent_ids = ilLocalUser::_getFolderIds();
425
426 if (count($parent_ids) > 1) {
427 $co = new ilSelectInputGUI($lng->txt('context'), 'time_limit_owner');
428
429 $ref_id = $this->getUserFolderId();
430
431 $opt[0] = $this->lng->txt('all_users');
432 $opt[$this->getUserFolderId()] = $lng->txt('users') . ' (' . ilObject::_lookupTitle(ilObject::_lookupObjId($this->getUserFolderId())) . ')';
433
434 foreach ($parent_ids as $parent_id) {
435 if ($parent_id == $this->getUserFolderId()) {
436 continue;
437 }
438 switch ($parent_id) {
439 case USER_FOLDER_ID:
440 $opt[USER_FOLDER_ID] = $lng->txt('global_user');
441 break;
442
443 default:
444 $opt[$parent_id] = $lng->txt('users') . ' (' . ilObject::_lookupTitle(ilObject::_lookupObjId($parent_id)) . ')';
445 break;
446 }
447 }
448 $co->setOptions($opt);
449 $this->addFilterItem($co);
450 $co->readFromSession();
451 $this->filter['time_limit_owner'] = $co->getValue();
452 }
453 }
454
455 // User name, login, email filter
456 $ul = new ilTextInputGUI($lng->txt("login") . "/" . $lng->txt("email") . "/" .
457 $lng->txt("name"), "query");
458 $ul->setDataSource($ilCtrl->getLinkTarget(
459 $this->getParentObject(),
460 "addUserAutoComplete",
461 "",
462 true
463 ));
464 $ul->setSize(20);
465 $ul->setSubmitFormOnEnter(true);
466 $this->addFilterItem($ul);
467 $ul->readFromSession();
468 $this->filter["query"] = $ul->getValue();
469
470
471 // activation
472 $options = array(
473 "" => $lng->txt("user_all"),
474 "active" => $lng->txt("active"),
475 "inactive" => $lng->txt("inactive"),
476 );
477 $si = new ilSelectInputGUI($this->lng->txt("user_activation"), "activation");
478 $si->setOptions($options);
479 $this->addFilterItem($si);
480 $si->readFromSession();
481 $this->filter["activation"] = $si->getValue();
482
483 // limited access
484 $cb = new ilCheckboxInputGUI($this->lng->txt("user_limited_access"), "limited_access");
485 $this->addFilterItem($cb);
486 $cb->readFromSession();
487 $this->filter["limited_access"] = $cb->getChecked();
488
489 // last login
490 $di = new ilDateTimeInputGUI($this->lng->txt("user_last_login_before"), "last_login");
491 $default_date = new ilDateTime(time(), IL_CAL_UNIX);
492 $default_date->increment(IL_CAL_DAY, 1);
493 $di->setDate($default_date);
494 $this->addFilterItem($di);
495 $di->readFromSession();
496 $this->filter["last_login"] = $di->getDate();
497
498 if ($this->getMode() == self::MODE_USER_FOLDER) {
499 // no assigned courses
500 $cb = new ilCheckboxInputGUI($this->lng->txt("user_no_courses"), "no_courses");
501 $this->addFilterItem($cb);
502 $cb->readFromSession();
503 $this->filter["no_courses"] = $cb->getChecked();
504
505 // no assigned groups
506 $ng = new ilCheckboxInputGUI($this->lng->txt("user_no_groups"), "no_groups");
507 $this->addFilterItem($ng);
508 $ng->readFromSession();
509 $this->filter['no_groups'] = $ng->getChecked();
510
511 // course/group members
512 $rs = new ilRepositorySelectorInputGUI($lng->txt("user_member_of_course_group"), "course_group");
513 $rs->setSelectText($lng->txt("user_select_course_group"));
514 $rs->setHeaderMessage($lng->txt("user_please_select_course_group"));
515 $rs->setClickableTypes(array("crs", "grp"));
516 $this->addFilterItem($rs);
517 $rs->readFromSession();
518 $this->filter["course_group"] = $rs->getValue();
519 }
520
521 // global roles
522 $options = array(
523 "" => $lng->txt("user_any"),
524 );
525 foreach ($rbacreview->getRolesByFilter(2, $ilUser->getId()) as $role) {
526 $options[$role["rol_id"]] = $role["title"];
527 }
528 $si = new ilSelectInputGUI($this->lng->txt("user_global_role"), "global_role");
529 $si->setOptions($options);
530 $this->addFilterItem($si);
531 $si->readFromSession();
532 $this->filter["global_role"] = $si->getValue();
533
534 // authentication mode
535 $auth_methods = ilAuthUtils::_getActiveAuthModes();
536 $options = array(
537 "" => $lng->txt("user_any"),
538 );
539 foreach ($auth_methods as $method => $value) {
540 if ($method == 'default') {
541 $options[$method] = $this->lng->txt('auth_' . $method) . " (" . $this->lng->txt('auth_' . ilAuthUtils::_getAuthModeName($value)) . ")";
542 } else {
543 $options[$method] = ilAuthUtils::getAuthModeTranslation($value);
544 }
545 }
546 $si = new ilSelectInputGUI($this->lng->txt("auth_mode"), "authentication_method");
547 $si->setOptions($options);
548 $this->addFilterItem($si);
549 $si->readFromSession();
550 $this->filter["authentication"] = $si->getValue();
551
552 // udf fields
553 foreach ($this->udf_fields as $id => $f) {
554 $this->addFilterItemByUdfType($id, $f["type"], true, $f["txt"], $f["options"]);
555 }
556 }
557
561 public function addFilterItemByUdfType(
562 string $id,
563 int $type,
564 bool $a_optional = false,
565 ?string $caption = null,
566 array $a_options = array()
568 global $DIC;
569
570 $lng = $DIC['lng'];
571
572 if (!$caption) {
573 $caption = $lng->txt($id);
574 }
575
576 switch ($type) {
577 case UDF_TYPE_SELECT:
578 $item = new ilSelectInputGUI($caption, $id);
579 $sel_options = array("" => $this->lng->txt("user_all"));
580 foreach ($a_options as $o) {
581 $sel_options[$o] = $o;
582 }
583 $item->setOptions($sel_options);
584 break;
585
586 case UDF_TYPE_TEXT:
587 $item = new ilTextInputGUI($caption, $id);
588 $item->setMaxLength(64);
589 $item->setSize(20);
590 // $item->setSubmitFormOnEnter(true);
591 break;
592
593 default:
594 return null;
595 }
596
597 if ($item) {
598 $this->addFilterItem($item, $a_optional);
599 $item->readFromSession();
600 $this->filter[$id] = $item->getValue();
601 }
602 return $item;
603 }
604
605 protected function fillRow(array $a_set): void // Missing array type.
606 {
607 global $DIC;
608
609 $ilCtrl = $DIC['ilCtrl'];
610 $lng = $DIC['lng'];
611
612 $ilCtrl->setParameterByClass("ilobjusergui", "letter", $this->user_request->getLetter());
613
614 foreach ($this->getSelectedColumns() as $c) {
615 if ($c == "access_until") {
616 $this->tpl->setCurrentBlock("access_until");
617 $this->tpl->setVariable("VAL_ACCESS_UNTIL", $a_set["access_until"]);
618 $this->tpl->setVariable("CLASS_ACCESS_UNTIL", $a_set["access_class"]);
619 } elseif ($c == "last_login") {
620 $this->tpl->setCurrentBlock("last_login");
621 $this->tpl->setVariable(
622 "VAL_LAST_LOGIN",
624 );
625 } elseif (in_array($c, array("firstname", "lastname"))) {
626 $this->tpl->setCurrentBlock($c);
627 $this->tpl->setVariable("VAL_" . strtoupper($c), (string) $a_set[$c]);
628 } elseif ($c == 'auth_mode') {
629 $this->tpl->setCurrentBlock('user_field');
630 $this->tpl->setVariable('VAL_UF', ilAuthUtils::getAuthModeTranslation(ilAuthUtils::_getAuthMode($a_set['auth_mode'])));
631 $this->tpl->parseCurrentBlock();
632 } else { // all other fields
633 $this->tpl->setCurrentBlock("user_field");
634 $val = (trim($a_set[$c]) == "")
635 ? " "
636 : $a_set[$c];
637 if ($a_set[$c] != "") {
638 switch ($c) {
639 case "birthday":
641 break;
642
643 case "gender":
644 $val = $lng->txt("gender_" . $a_set[$c]);
645 break;
646
647 case "create_date":
648 case "agree_date":
649 case "approve_date":
650 // $val = ilDatePresentation::formatDate(new ilDateTime($val,IL_CAL_DATETIME));
652 break;
653 }
654 }
655 $this->tpl->setVariable("VAL_UF", $val);
656 }
657
658 $this->tpl->parseCurrentBlock();
659 }
660
661 if ($a_set["usr_id"] != 6
662 && ($this->getMode() == self::MODE_USER_FOLDER || $a_set['time_limit_owner'] == $this->getUserFolderId())) {
663 $this->tpl->setCurrentBlock("checkb");
664 $this->tpl->setVariable("ID", $a_set["usr_id"]);
665 $this->tpl->parseCurrentBlock();
666 }
667
668 if ($this->with_write_access
669 && ($this->getMode() == self::MODE_USER_FOLDER
670 || $a_set['time_limit_owner'] == $this->getUserFolderId())) {
671 $this->tpl->setVariable("VAL_LOGIN", $a_set["login"]);
672 $ilCtrl->setParameterByClass("ilobjusergui", "obj_id", $a_set["usr_id"]);
673 $this->tpl->setVariable(
674 "HREF_LOGIN",
675 $ilCtrl->getLinkTargetByClass("ilobjusergui", "view")
676 );
677 $ilCtrl->setParameterByClass("ilobjusergui", "obj_id", "");
678 } else {
679 $this->tpl->setVariable('VAL_LOGIN_PLAIN', $a_set['login']);
680 }
681
682 if ($this->getMode() == self::MODE_LOCAL_USER) {
683 $this->tpl->setCurrentBlock('context');
684 $this->tpl->setVariable(
685 'VAL_CONTEXT',
686 ilObject::_lookupTitle(ilObject::_lookupObjId($a_set['time_limit_owner']))
687 );
688 $this->tpl->parseCurrentBlock();
689
690 $this->tpl->setCurrentBlock('roles');
691 $ilCtrl->setParameter($this->getParentObject(), 'obj_id', $a_set['usr_id']);
692 $this->tpl->setVariable('ROLE_LINK', $ilCtrl->getLinkTarget($this->getParentObject(), 'assignRoles'));
693 $this->tpl->setVariable('TXT_ROLES', $this->lng->txt('edit'));
694 $ilCtrl->clearParameters($this->getParentObject());
695 $this->tpl->parseCurrentBlock();
696 }
697 }
698}
const IL_CAL_DATE
const IL_CAL_UNIX
const IL_CAL_DATETIME
const IL_CAL_DAY
const UDF_TYPE_SELECT
const UDF_TYPE_TEXT
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _getActiveAuthModes()
static getAuthModeTranslation(string $a_auth_key, string $auth_name='')
static _getAuthMode(?string $a_auth_mode)
static _getAuthModeName($a_auth_key)
This class represents a checkbox property in a property form.
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
@classDescription Date and time handling
Class for single dates.
This class represents a property in a property form.
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...
static _getFolderIds(bool $access_with_orgunit=false)
static lookupOrgUnitsRepresentation(int $a_usr_id)
lookup org unit representation
static _lookupObjId(int $ref_id)
static _lookupTitle(int $obj_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This class represents a selection list property in a property form.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
__construct(?object $a_parent_obj, string $a_parent_cmd="", string $a_template_context="")
setShowRowsSelector(bool $a_value)
Toggle rows-per-page selector.
setFilterCommand(string $a_val, string $a_caption="")
setEnableAllCommand(bool $a_value)
determineOffsetAndOrder(bool $a_omit_offset=false)
setExternalSegmentation(bool $a_val)
addFilterItem(ilTableFilterItem $a_input_item, bool $a_optional=false)
setEnableTitle(bool $a_enabletitle)
addMultiCommand(string $a_cmd, string $a_text)
setFormAction(string $a_form_action, bool $a_multipart=false)
resetOffset(bool $a_in_determination=false)
addColumn(string $a_text, string $a_sort_field="", string $a_width="", bool $a_is_checkbox_action_column=false, string $a_class="", string $a_tooltip="", bool $a_tooltip_with_html=false)
setEnableHeader(bool $a_enableheader)
setDefaultOrderField(string $a_defaultorderfield)
setSelectAllCheckbox(string $a_select_all_checkbox, bool $a_select_all_on_top=false)
setTopCommands(bool $a_val)
setExternalSorting(bool $a_val)
setRowTemplate(string $a_template, string $a_template_dir="")
Set row template.
setId(string $a_val)
setDefaultOrderDirection(string $a_defaultorderdirection)
setData(array $a_data)
Set table data.
ilLanguage $lng
setMaxCount(int $a_max_count)
set max.
This class represents a text property in a property form.
Class ilUserProfile.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
fillRow(array $a_set)
Standard Version of Fill Row.
readUserDefinedFieldsDefinitions()
Read user defined fields definitions.
ILIAS User StandardGUIRequest $user_request
getUserDefinedField(string $a_key)
Get user defined field.
addFilterItemValue($filter, $value)
addFilterItemByUdfType(string $id, int $type, bool $a_optional=false, ?string $caption=null, array $a_options=array())
Add filter by standard type.
getSelectableColumns()
Get selectable columns.
isUdfColumn(string $a_key)
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
$c
Definition: cli.php:38
const USER_FOLDER_ID
Definition: constants.php:33
const SYSTEM_USER_ID
This file contains constants for PHPStan analyis, see: https://phpstan.org/config-reference#constants...
Definition: constants.php:26
global $DIC
Definition: feed.php:28
$ilUser
Definition: imgupload.php:34
$ref_id
Definition: ltiauth.php:67
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
$query
$type
$lng
$cols
Definition: xhr_table.php:11