ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
class.ilCourseParticipantsTableGUI.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
4 
5 include_once './Services/Membership/classes/class.ilParticipantsTableGUI.php';
14 {
15  protected $show_learning_progress = false;
16  protected $show_timings = false;
17  protected $show_lp_status_sync = false;
18 
19 
27  public function __construct(
28  $a_parent_obj,
30  $a_show_learning_progress = false,
31  $a_show_timings = false,
32  $a_show_lp_status_sync = false
33  ) {
34  global $lng, $ilCtrl;
35 
36  $this->show_learning_progress = $a_show_learning_progress;
37  if ($this->show_learning_progress) {
38  include_once './Services/Tracking/classes/class.ilLPStatus.php';
39  }
40 
41  $this->show_timings = $a_show_timings;
42  $this->show_lp_status_sync = $a_show_lp_status_sync;
43 
44  $this->rep_object = $rep_object;
45 
46  // #13208
47  include_once("Services/Tracking/classes/class.ilObjUserTracking.php");
49  $this->show_lp_status_sync = false;
50  }
51 
52  $this->lng = $lng;
53  $this->lng->loadLanguageModule('crs');
54  $this->lng->loadLanguageModule('trac');
55  $this->lng->loadLanguageModule('rbac');
56  $this->lng->loadLanguageModule('mmbr');
57 
58  $this->ctrl = $ilCtrl;
59 
60  include_once('./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
61  $this->privacy = ilPrivacySettings::_getInstance();
62 
63  include_once './Services/Membership/classes/class.ilParticipants.php';
64  $this->participants = ilParticipants::getInstanceByObjId($this->getRepositoryObject()->getId());
65 
66 
67  // required before constructor for columns
68  $this->setId('crs_' . $this->getRepositoryObject()->getId());
69  parent::__construct($a_parent_obj, 'participants');
70 
71  $this->initSettings();
72 
73  $this->setFormName('participants');
74 
75  $this->addColumn('', 'f', "1");
76  $this->addColumn($this->lng->txt('name'), 'name', '20%');
77 
78  $all_cols = $this->getSelectableColumns();
79  foreach ($this->getSelectedColumns() as $col) {
80  $this->addColumn($all_cols[$col]['txt'], $col);
81  }
82 
83  if ($this->show_learning_progress) {
84  $this->addColumn($this->lng->txt('learning_progress'), 'progress');
85  }
86 
87  if ($this->privacy->enabledCourseAccessTimes()) {
88  $this->addColumn($this->lng->txt('last_access'), 'access_ut', '16em');
89  }
90 
91  $this->addColumn($this->lng->txt('crs_member_passed'), 'passed');
92  if ($this->show_lp_status_sync) {
93  $this->addColumn($this->lng->txt('crs_member_passed_status_changed'), 'passed_info');
94  }
95 
96 
97  $this->setSelectAllCheckbox('participants');
98  $this->addColumn($this->lng->txt('crs_mem_contact'), 'contact');
99  $this->addColumn($this->lng->txt('crs_blocked'), 'blocked');
100  $this->addColumn($this->lng->txt('crs_notification_list_title'), 'notification');
101 
102  $this->addColumn($this->lng->txt(''), 'optional');
103 
104  $this->setRowTemplate("tpl.show_participants_row.html", "Modules/Course");
105 
106  $this->setDefaultOrderField('roles');
107  $this->enable('sort');
108  $this->enable('header');
109  $this->enable('numinfo');
110  $this->enable('select_all');
111 
112  $this->setEnableNumInfo(true);
113  $this->setExternalSegmentation(false);
114 
115  $this->getItems();
116  $this->setTopCommands(true);
117  $this->setEnableHeader(true);
118  $this->setEnableTitle(true);
119  $this->initFilter();
120 
121  $this->setShowRowsSelector(true);
122 
123  include_once "Services/Certificate/classes/class.ilCertificate.php";
124  $this->enable_certificates = ilCertificate::isActive();
125  if ($this->enable_certificates) {
126  $this->enable_certificates = ilCertificate::isObjectActive($this->getRepositoryObject()->getId());
127  }
128  if ($this->enable_certificates) {
129  $lng->loadLanguageModule('certificate');
130  }
131 
132  $this->addMultiCommand('editParticipants', $this->lng->txt('edit'));
133  $this->addMultiCommand('confirmDeleteParticipants', $this->lng->txt('remove'));
134  $this->addMultiCommand('sendMailToSelectedUsers', $this->lng->txt('mmbr_btn_mail_selected_users'));
135  $this->lng->loadLanguageModule('user');
136  $this->addMultiCommand('addToClipboard', $this->lng->txt('clipboard_add_btn'));
137 
138  $this->addCommandButton('updateParticipantsStatus', $this->lng->txt('save'));
139  }
140 
141 
142 
143  public function getItems()
144  {
145  }
146 
147 
155  public function fillRow($a_set)
156  {
157  global $ilAccess;
158 
159  $this->tpl->setVariable('VAL_ID', $a_set['usr_id']);
160  $this->tpl->setVariable('VAL_NAME', $a_set['lastname'] . ', ' . $a_set['firstname']);
161 
162  if (!$ilAccess->checkAccessOfUser($a_set['usr_id'], 'read', '', $this->getRepositoryObject()->getRefId()) and
163  is_array($info = $ilAccess->getInfo())) {
164  $this->tpl->setCurrentBlock('access_warning');
165  $this->tpl->setVariable('PARENT_ACCESS', $info[0]['text']);
166  $this->tpl->parseCurrentBlock();
167  }
168 
169  if (!ilObjUser::_lookupActive($a_set['usr_id'])) {
170  $this->tpl->setCurrentBlock('access_warning');
171  $this->tpl->setVariable('PARENT_ACCESS', $this->lng->txt('usr_account_inactive'));
172  $this->tpl->parseCurrentBlock();
173  }
174 
175  foreach ($this->getSelectedColumns() as $field) {
176  switch ($field) {
177  case 'gender':
178  $a_set['gender'] = $a_set['gender'] ? $this->lng->txt('gender_' . $a_set['gender']) : '';
179  $this->tpl->setCurrentBlock('custom_fields');
180  $this->tpl->setVariable('VAL_CUST', $a_set[$field]);
181  $this->tpl->parseCurrentBlock();
182  break;
183 
184  case 'birthday':
185  $a_set['birthday'] = $a_set['birthday'] ? ilDatePresentation::formatDate(new ilDate($a_set['birthday'], IL_CAL_DATE)) : $this->lng->txt('no_date');
186  $this->tpl->setCurrentBlock('custom_fields');
187  $this->tpl->setVariable('VAL_CUST', $a_set[$field]);
188  $this->tpl->parseCurrentBlock();
189  break;
190 
191  case 'consultation_hour':
192  $this->tpl->setCurrentBlock('custom_fields');
193  $dts = array();
194  foreach ((array) $a_set['consultation_hours'] as $ch) {
196  new ilDateTime($ch['dt'], IL_CAL_UNIX),
197  new ilDateTime($ch['dtend'], IL_CAL_UNIX)
198  );
199  if ($ch['explanation']) {
200  $tmp .= ' ' . $ch['explanation'];
201  }
202  $dts[] = $tmp;
203  }
204  $dt_string = implode('<br />', $dts);
205  $this->tpl->setVariable('VAL_CUST', $dt_string);
206  $this->tpl->parseCurrentBlock();
207  break;
208 
209  case 'prtf':
210  $tmp = array();
211  if (is_array($a_set['prtf'])) {
212  foreach ($a_set['prtf'] as $prtf_url => $prtf_txt) {
213  $tmp[] = '<a href="' . $prtf_url . '">' . $prtf_txt . '</a>';
214  }
215  }
216  $this->tpl->setCurrentBlock('custom_fields');
217  $this->tpl->setVariable('VAL_CUST', (string) implode('<br />', $tmp)) ;
218  $this->tpl->parseCurrentBlock();
219  break;
220 
221 
222  case 'odf_last_update':
223  $this->tpl->setCurrentBlock('custom_fields');
224  $this->tpl->setVariable('VAL_CUST', (string) $a_set['odf_info_txt']);
225  $this->tpl->parseCurrentBlock();
226  break;
227 
228  case 'roles':
229  $this->tpl->setCurrentBlock('custom_fields');
230  $this->tpl->setVariable('VAL_CUST', (string) $a_set['roles_label']);
231  $this->tpl->parseCurrentBlock();
232  break;
233 
234  case 'org_units':
235  $this->tpl->setCurrentBlock('custom_fields');
236  include_once './Modules/OrgUnit/classes/PathStorage/class.ilOrgUnitPathStorage.php';
237  $this->tpl->setVariable('VAL_CUST', (string) ilOrgUnitPathStorage::getTextRepresentationOfUsersOrgUnits($a_set['usr_id']));
238  $this->tpl->parseCurrentBlock();
239  break;
240 
241  default:
242  $this->tpl->setCurrentBlock('custom_fields');
243  $this->tpl->setVariable('VAL_CUST', isset($a_set[$field]) ? (string) $a_set[$field] : '');
244  $this->tpl->parseCurrentBlock();
245  break;
246  }
247  }
248 
249  if ($this->privacy->enabledCourseAccessTimes()) {
250  $this->tpl->setVariable('VAL_ACCESS', $a_set['access_time']);
251  }
252  if ($this->show_learning_progress) {
253  $this->tpl->setCurrentBlock('lp');
254  switch ($a_set['progress']) {
256  $this->tpl->setVariable('LP_STATUS_ALT', $this->lng->txt($a_set['progress']));
257  $this->tpl->setVariable('LP_STATUS_PATH', ilUtil::getImagePath('scorm/complete.svg'));
258  break;
259 
261  $this->tpl->setVariable('LP_STATUS_ALT', $this->lng->txt($a_set['progress']));
262  $this->tpl->setVariable('LP_STATUS_PATH', ilUtil::getImagePath('scorm/incomplete.svg'));
263  break;
264 
266  $this->tpl->setVariable('LP_STATUS_ALT', $this->lng->txt($a_set['progress']));
267  $this->tpl->setVariable('LP_STATUS_PATH', ilUtil::getImagePath('scorm/not_attempted.svg'));
268  break;
269 
271  $this->tpl->setVariable('LP_STATUS_ALT', $this->lng->txt($a_set['progress']));
272  $this->tpl->setVariable('LP_STATUS_PATH', ilUtil::getImagePath('scorm/failed.svg'));
273  break;
274  }
275  $this->tpl->parseCurrentBlock();
276  }
277 
278  $this->tpl->setVariable('VAL_POSTNAME', 'participants');
279 
280  if ($ilAccess->checkAccess("grade", "", $this->rep_object->getRefId())) {
281  $this->tpl->setCurrentBlock('grade');
282  $this->tpl->setVariable('VAL_PASSED_ID', $a_set['usr_id']);
283  $this->tpl->setVariable('VAL_PASSED_CHECKED', ($a_set['passed'] ? 'checked="checked"' : ''));
284  $this->tpl->parseCurrentBlock();
285  } else {
286  $this->tpl->setVariable('VAL_PASSED_TXT', ($a_set['passed']
287  ? $this->lng->txt("yes")
288  : $this->lng->txt("no")));
289  }
290 
291  if (
292  $this->getParticipants()->isAdmin($a_set['usr_id']) ||
293  $this->getParticipants()->isTutor($a_set['usr_id'])
294  ) {
295  // cognos-blu-patch: begin
296  $this->tpl->setCurrentBlock('with_contact');
297  $this->tpl->setVariable('VAL_CONTACT_ID', $a_set['usr_id']);
298  $this->tpl->setVariable('VAL_CONTACT_CHECKED', $a_set['contact'] ? 'checked="checked"' : '');
299  $this->tpl->parseCurrentBlock();
300  // cognos-blu-patch: end
301 
302  $this->tpl->setCurrentBlock('with_notification');
303  $this->tpl->setVariable('VAL_NOTIFICATION_ID', $a_set['usr_id']);
304  $this->tpl->setVariable('VAL_NOTIFICATION_CHECKED', ($a_set['notification'] ? 'checked="checked"' : ''));
305  $this->tpl->parseCurrentBlock();
306  }
307 
308  // blocked only for real members
309  if (
310  !$this->getParticipants()->isAdmin($a_set['usr_id']) &&
311  !$this->getParticipants()->isTutor($a_set['usr_id'])
312  ) {
313  $this->tpl->setCurrentBlock('with_blocked');
314  $this->tpl->setVariable('VAL_BLOCKED_ID', $a_set['usr_id']);
315  $this->tpl->setVariable('VAL_BLOCKED_CHECKED', ($a_set['blocked'] ? 'checked="checked"' : ''));
316  $this->tpl->parseCurrentBlock();
317  }
318 
319 
320  if ($this->show_lp_status_sync) {
321  $this->tpl->setVariable('PASSED_INFO', $a_set["passed_info"]);
322  }
323 
324  $this->showActionLinks($a_set);
325 
326  if ($a_set['passed'] && $this->enable_certificates) {
327  $this->tpl->setCurrentBlock('link');
328  $this->tpl->setVariable('LINK_NAME', $this->ctrl->getLinkTarget($this->parent_obj, 'deliverCertificate'));
329  $this->tpl->setVariable('LINK_TXT', $this->lng->txt('download_certificate'));
330  $this->tpl->parseCurrentBlock();
331  }
332  $this->ctrl->clearParameters($this->parent_obj);
333 
334  if ($this->show_timings) {
335  $this->ctrl->setParameterByClass('ilcoursecontentgui', 'member_id', $a_set['usr_id']);
336  $this->tpl->setCurrentBlock('link');
337  $this->tpl->setVariable('LINK_NAME', $this->ctrl->getLinkTargetByClass('ilcoursecontentgui', 'showUserTimings'));
338  $this->tpl->setVariable('LINK_TXT', $this->lng->txt('timings_timings'));
339  $this->tpl->parseCurrentBlock();
340  }
341  }
342 
349  public function parse()
350  {
351  global $rbacreview;
352 
353  $this->determineOffsetAndOrder(true);
354 
355  include_once './Services/User/classes/class.ilUserQuery.php';
356 
357  $additional_fields = $this->getSelectedColumns();
358  unset($additional_fields["firstname"]);
359  unset($additional_fields["lastname"]);
360  unset($additional_fields["last_login"]);
361  unset($additional_fields["access_until"]);
362  unset($additional_fields['consultation_hour']);
363  unset($additional_fields['prtf']);
364  unset($additional_fields['roles']);
365  unset($additional_fields['org_units']);
366 
367  $part = $this->participants->getParticipants();
368 
369  $part = $GLOBALS['DIC']->access()->filterUserIdsByRbacOrPositionOfCurrentUser(
370  'manage_members',
371  'manage_members',
372  $this->getRepositoryObject()->getRefId(),
373  $part
374  );
375 
376 
377  if (!$part) {
378  $this->setData(array());
379  return;
380  }
381 
382  $udf_ids = $usr_data_fields = $odf_ids = array();
383  foreach ($additional_fields as $field) {
384  if (substr($field, 0, 3) == 'udf') {
385  $udf_ids[] = substr($field, 4);
386  continue;
387  }
388  if (substr($field, 0, 3) == 'odf') {
389  $odf_ids[] = substr($field, 4);
390  continue;
391  }
392 
393  $usr_data_fields[] = $field;
394  }
395 
396  $usr_data = ilUserQuery::getUserListData(
397  '',
398  '',
399  0,
400  9999,
401  $this->current_filter['login'],
402  '',
403  null,
404  false,
405  false,
406  0,
407  0,
408  null,
409  $usr_data_fields,
410  $part
411  );
412  // filter by array
413  $usr_ids = array();
414  $local_roles = $this->getParentObject()->getLocalRoles();
415  foreach ((array) $usr_data['set'] as $user) {
416  if ($this->current_filter['roles']) {
417  if (!$GLOBALS['rbacreview']->isAssigned($user['usr_id'], $this->current_filter['roles'])) {
418  continue;
419  }
420  }
421  if ($this->current_filter['org_units']) {
422  $org_unit = $this->current_filter['org_units'];
423 
424  include_once './Modules/OrgUnit/classes/class.ilObjOrgUnitTree.php';
425  $assigned = ilObjOrgUnitTree::_getInstance()->getOrgUnitOfUser($user['usr_id']);
426  if (!in_array($org_unit, $assigned)) {
427  continue;
428  }
429  }
430 
431 
432  $usr_ids[] = $user['usr_id'];
433  }
434 
435  // merge course data
436  $course_user_data = $this->getParentObject()->readMemberData(
437  $usr_ids,
438  $this->getSelectedColumns()
439  );
440  $a_user_data = array();
441  foreach ((array) $usr_data['set'] as $ud) {
442  $user_id = $ud['usr_id'];
443 
444  if (!in_array($user_id, $usr_ids)) {
445  continue;
446  }
447  // #15434
448  if (!$this->checkAcceptance($user_id)) {
449  $ud = array();
450  }
451 
452  $a_user_data[$user_id] = array_merge($ud, $course_user_data[$user_id]);
453 
454 
455  $roles = array();
456  foreach ($local_roles as $role_id => $role_name) {
457  // @todo fix performance
458  if ($GLOBALS['rbacreview']->isAssigned($user_id, $role_id)) {
459  $roles[] = $role_name;
460  }
461  }
462 
463  $a_user_data[$user_id]['name'] = ($a_user_data[$user_id]['lastname'] . ', ' . $a_user_data[$user_id]['firstname']);
464  $a_user_data[$user_id]['roles_label'] = implode('<br />', $roles);
465  $a_user_data[$user_id]['roles'] = $this->participants->setRoleOrderPosition($user_id);
466 
467 
468  if ($this->show_lp_status_sync) {
469  // #9912 / #13208
470  $passed_info = "";
471  if ($a_user_data[$user_id]["passed_info"]) {
472  $pinfo = $a_user_data[$user_id]["passed_info"];
473  if ($pinfo["user_id"]) {
474  if ($pinfo["user_id"] < 0) {
475  $passed_info = $this->lng->txt("crs_passed_status_system");
476  } elseif ($pinfo["user_id"] > 0) {
477  $name = ilObjUser::_lookupName($pinfo["user_id"]);
478  $passed_info = $this->lng->txt("crs_passed_status_manual_by") . ": " . $name["login"];
479  }
480  }
481  if ($pinfo["timestamp"]) {
482  $passed_info .= "<br />" . ilDatePresentation::formatDate($pinfo["timestamp"]);
483  }
484  }
485  $a_user_data[$user_id]["passed_info"] = $passed_info;
486  }
487  }
488 
489  // Custom user data fields
490  if ($udf_ids) {
491  include_once './Services/User/classes/class.ilUserDefinedData.php';
492  $data = ilUserDefinedData::lookupData($usr_ids, $udf_ids);
493  foreach ($data as $usr_id => $fields) {
494  if (!$this->checkAcceptance($usr_id)) {
495  continue;
496  }
497 
498  foreach ($fields as $field_id => $value) {
499  $a_user_data[$usr_id]['udf_' . $field_id] = $value;
500  }
501  }
502  }
503  // Object specific user data fields
504  if ($odf_ids) {
505  include_once './Modules/Course/classes/Export/class.ilCourseUserData.php';
507  foreach ($data as $usr_id => $fields) {
508  // #7264: as we get data for all course members filter against user data
509  if (!$this->checkAcceptance($usr_id) || !in_array($usr_id, $usr_ids)) {
510  continue;
511  }
512 
513  foreach ($fields as $field_id => $value) {
514  $a_user_data[$usr_id]['odf_' . $field_id] = $value;
515  }
516  }
517 
518 
519  // add last edit date
520  include_once './Services/Membership/classes/class.ilObjectCustomUserFieldHistory.php';
521  foreach (ilObjectCustomUserFieldHistory::lookupEntriesByObjectId($this->getRepositoryObject()->getId()) as $usr_id => $edit_info) {
522  if (!isset($a_user_data[$usr_id])) {
523  continue;
524  }
525 
526  include_once './Services/PrivacySecurity/classes/class.ilPrivacySettings.php';
527  if ($usr_id == $edit_info['update_user']) {
528  $a_user_data[$usr_id]['odf_last_update'] = '';
529  $a_user_data[$usr_id]['odf_info_txt'] = $GLOBALS['lng']->txt('cdf_edited_by_self');
530  if (ilPrivacySettings::_getInstance()->enabledAccessTimesByType($this->getRepositoryObject()->getType())) {
531  $a_user_data[$usr_id]['odf_last_update'] .= ('_' . $edit_info['editing_time']->get(IL_CAL_UNIX));
532  $a_user_data[$usr_id]['odf_info_txt'] .= (', ' . ilDatePresentation::formatDate($edit_info['editing_time']));
533  }
534  } else {
535  $a_user_data[$usr_id]['odf_last_update'] = $edit_info['update_user'];
536  $a_user_data[$usr_id]['odf_last_update'] .= ('_' . $edit_info['editing_time']->get(IL_CAL_UNIX));
537 
538  $name = ilObjUser::_lookupName($edit_info['update_user']);
539  $a_user_data[$usr_id]['odf_info_txt'] = ($name['firstname'] . ' ' . $name['lastname'] . ', ' . ilDatePresentation::formatDate($edit_info['editing_time']));
540  }
541  }
542  }
543 
544  // consultation hours
545  if ($this->isColumnSelected('consultation_hour')) {
546  include_once './Services/Booking/classes/class.ilBookingEntry.php';
547  foreach (ilBookingEntry::lookupManagedBookingsForObject($this->getRepositoryObject()->getId(), $GLOBALS['ilUser']->getId()) as $buser => $booking) {
548  if (isset($a_user_data[$buser])) {
549  $a_user_data[$buser]['consultation_hour'] = $booking[0]['dt'];
550  $a_user_data[$buser]['consultation_hour_end'] = $booking[0]['dtend'];
551  $a_user_data[$buser]['consultation_hours'] = $booking;
552  }
553  }
554  }
555 
556  // always sort by name first
557  $a_user_data = ilUtil::sortArray(
558  $a_user_data,
559  'name',
560  $this->getOrderDirection()
561  );
562 
563  return $this->setData($a_user_data);
564  }
565 }
showActionLinks($a_set)
show edit links
addCommandButton($a_cmd, $a_text, $a_onclick='', $a_id="", $a_class=null)
Add Command button.
static sortArray( $array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
static _lookupName($a_user_id)
lookup user name
__construct( $a_parent_obj, ilObject $rep_object, $a_show_learning_progress=false, $a_show_timings=false, $a_show_lp_status_sync=false)
Constructor.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
static lookupManagedBookingsForObject($a_obj_id, $a_usr_id)
Lookup bookings for own and managed consultation hours of an object.
setEnableNumInfo($a_val)
Set enable num info.
static _getValuesByObjId($a_obj_id)
Get values by obj_id (for all users)
const LP_STATUS_NOT_ATTEMPTED
setExternalSegmentation($a_val)
Set external segmentation.
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false)
Format a date public.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
const IL_CAL_UNIX
getOrderDirection()
Get order direction.
getParentObject()
Get parent object.
setId($a_val)
Set id.
const LP_STATUS_IN_PROGRESS
global $ilCtrl
Definition: ilias.php:18
static lookupData($a_user_ids, $a_field_ids)
Lookup data.
static _enabledLearningProgress()
check wether learing progress is enabled or not
if($format !==null) $name
Definition: metadata.php:146
setTopCommands($a_val)
Set top commands (display command buttons on top of table, too)
const LP_STATUS_FAILED
Class for single dates.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
addMultiCommand($a_cmd, $a_text)
Add Command button.
enable($a_module_name)
enables particular modules of table
Date and time handling
getSelectedColumns()
Get selected columns.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
Create styles array
The data for the language used.
getSelectableColumns()
Get selectable columns.
isColumnSelected($a_col)
Is given column selected?
determineOffsetAndOrder($a_omit_offset=false)
Determine offset and order.
static isObjectActive($a_obj_id)
const IL_CAL_DATE
static formatPeriod(ilDateTime $start, ilDateTime $end, $a_skip_starting_day=false)
Format a period of two date Shows: 14.
setFormName($a_formname="")
Set Form name.
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.
setShowRowsSelector($a_value)
Toggle rows-per-page selector.
setEnableHeader($a_enableheader)
Set Enable Header.
checkAcceptance($a_usr_id)
Check acceptance.
static _lookupActive($a_usr_id)
Check user account active.
static _getInstance()
Get instance of ilPrivacySettings.
setSelectAllCheckbox($a_select_all_checkbox)
Set the name of the checkbox that should be toggled with a select all button.
getId()
Get element id.
$info
Definition: index.php:5
setEnableTitle($a_enabletitle)
Set Enable Title.
const LP_STATUS_COMPLETED
static lookupEntriesByObjectId($a_obj_id)
Get entries by obj_id type $ilDB.
static getInstanceByObjId($a_obj_id)
Get instance by obj type.
static getUserListData( $a_order_field, $a_order_dir, $a_offset, $a_limit, $a_string_filter="", $a_activation_filter="", $a_last_login_filter=null, $a_limited_access_filter=false, $a_no_courses_filter=false, $a_course_group_filter=0, $a_role_filter=0, $a_user_folder_filter=null, $a_additional_fields='', $a_user_filter=null, $a_first_letter="", $a_authentication_filter=null)
Get data for user administration list.