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