ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
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 
23  private $preLoader;
24 
36  public function __construct(
37  $a_parent_obj,
39  $a_show_learning_progress = false,
40  $a_show_timings = false,
41  $a_show_lp_status_sync = false,
42  ilCertificateUserForObjectPreloader $preloader = null
43  ) {
44  global $DIC;
45 
46  $lng = $DIC['lng'];
47  $ilCtrl = $DIC['ilCtrl'];
48 
49  $this->show_learning_progress = $a_show_learning_progress;
50  if ($this->show_learning_progress) {
51  include_once './Services/Tracking/classes/class.ilLPStatus.php';
52  }
53 
54  if (null === $preloader) {
56  }
57  $this->preLoader = $preloader;
58 
59  $this->show_timings = $a_show_timings;
60  $this->show_lp_status_sync = $a_show_lp_status_sync;
61 
62  $this->rep_object = $rep_object;
63 
64  // #13208
65  include_once("Services/Tracking/classes/class.ilObjUserTracking.php");
67  $this->show_lp_status_sync = false;
68  }
69 
70  $this->lng = $lng;
71  $this->lng->loadLanguageModule('crs');
72  $this->lng->loadLanguageModule('trac');
73  $this->lng->loadLanguageModule('rbac');
74  $this->lng->loadLanguageModule('mmbr');
75  $this->lng->loadLanguageModule('cert');
76 
77  $this->ctrl = $ilCtrl;
78 
79  include_once('./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
80  $this->privacy = ilPrivacySettings::_getInstance();
81 
82  include_once './Services/Membership/classes/class.ilParticipants.php';
83  $this->participants = ilParticipants::getInstanceByObjId($this->getRepositoryObject()->getId());
84 
85 
86  // required before constructor for columns
87  $this->setId('crs_' . $this->getRepositoryObject()->getId());
88  parent::__construct($a_parent_obj, 'participants');
89 
90  $this->initSettings();
91 
92  $this->setFormName('participants');
93 
94  $this->addColumn('', 'f', '1', true);
95  $this->addColumn($this->lng->txt('name'), 'name', '20%');
96 
97  $all_cols = $this->getSelectableColumns();
98  foreach ($this->getSelectedColumns() as $col) {
99  $this->addColumn($all_cols[$col]['txt'], $col);
100  }
101 
102  if ($this->show_learning_progress) {
103  $this->addColumn($this->lng->txt('learning_progress'), 'progress');
104  }
105 
106  if ($this->privacy->enabledCourseAccessTimes()) {
107  $this->addColumn($this->lng->txt('last_access'), 'access_ut', '16em');
108  }
109 
110  $this->addColumn($this->lng->txt('crs_member_passed'), 'passed');
111  if ($this->show_lp_status_sync) {
112  $this->addColumn($this->lng->txt('crs_member_passed_status_changed'), 'passed_info');
113  }
114 
115 
116  $this->setSelectAllCheckbox('participants', true);
117  $this->addColumn($this->lng->txt('crs_mem_contact'), 'contact');
118  $this->addColumn($this->lng->txt('crs_blocked'), 'blocked');
119  $this->addColumn($this->lng->txt('crs_notification_list_title'), 'notification');
120 
121  $this->addColumn($this->lng->txt(''), 'optional');
122 
123  $this->setRowTemplate("tpl.show_participants_row.html", "Modules/Course");
124 
125  $this->setDefaultOrderField('roles');
126  $this->enable('sort');
127  $this->enable('header');
128  $this->enable('numinfo');
129  $this->enable('select_all');
130 
131  $this->setEnableNumInfo(true);
132  $this->setExternalSegmentation(false);
133 
134  $this->getItems();
135  $this->setTopCommands(true);
136  $this->setEnableHeader(true);
137  $this->setEnableTitle(true);
138  $this->initFilter();
139 
140  $this->setShowRowsSelector(true);
141 
142  $preloader->preLoadDownloadableCertificates($this->getRepositoryObject()->getId());
143 
144  $lng->loadLanguageModule('certificate');
145 
146  $this->addMultiCommand('editParticipants', $this->lng->txt('edit'));
147  $this->addMultiCommand('confirmDeleteParticipants', $this->lng->txt('remove'));
148  $this->addMultiCommand('sendMailToSelectedUsers', $this->lng->txt('mmbr_btn_mail_selected_users'));
149  $this->lng->loadLanguageModule('user');
150  $this->addMultiCommand('addToClipboard', $this->lng->txt('clipboard_add_btn'));
151 
152  $this->addCommandButton('updateParticipantsStatus', $this->lng->txt('save'));
153  }
154 
155 
156 
157  public function getItems()
158  {
159  }
160 
161 
169  public function fillRow($a_set)
170  {
171  global $DIC;
172 
173  $ilAccess = $DIC['ilAccess'];
174 
175  $this->tpl->setVariable('VAL_ID', $a_set['usr_id']);
176  $this->tpl->setVariable('VAL_NAME', $a_set['lastname'] . ', ' . $a_set['firstname']);
177 
178  if (!$ilAccess->checkAccessOfUser($a_set['usr_id'], 'read', '', $this->getRepositoryObject()->getRefId()) and
179  is_array($info = $ilAccess->getInfo())) {
180  $this->tpl->setCurrentBlock('access_warning');
181  $this->tpl->setVariable('PARENT_ACCESS', $info[0]['text']);
182  $this->tpl->parseCurrentBlock();
183  }
184 
185  if (!ilObjUser::_lookupActive($a_set['usr_id'])) {
186  $this->tpl->setCurrentBlock('access_warning');
187  $this->tpl->setVariable('PARENT_ACCESS', $this->lng->txt('usr_account_inactive'));
188  $this->tpl->parseCurrentBlock();
189  }
190 
191  foreach ($this->getSelectedColumns() as $field) {
192  switch ($field) {
193  case 'gender':
194  $a_set['gender'] = $a_set['gender'] ? $this->lng->txt('gender_' . $a_set['gender']) : '';
195  $this->tpl->setCurrentBlock('custom_fields');
196  $this->tpl->setVariable('VAL_CUST', $a_set[$field]);
197  $this->tpl->parseCurrentBlock();
198  break;
199 
200  case 'birthday':
201  $a_set['birthday'] = $a_set['birthday'] ? ilDatePresentation::formatDate(new ilDate($a_set['birthday'], IL_CAL_DATE)) : $this->lng->txt('no_date');
202  $this->tpl->setCurrentBlock('custom_fields');
203  $this->tpl->setVariable('VAL_CUST', $a_set[$field]);
204  $this->tpl->parseCurrentBlock();
205  break;
206 
207  case 'consultation_hour':
208  $this->tpl->setCurrentBlock('custom_fields');
209  $dts = array();
210  foreach ((array) $a_set['consultation_hours'] as $ch) {
212  new ilDateTime($ch['dt'], IL_CAL_UNIX),
213  new ilDateTime($ch['dtend'], IL_CAL_UNIX)
214  );
215  if ($ch['explanation']) {
216  $tmp .= ' ' . $ch['explanation'];
217  }
218  $dts[] = $tmp;
219  }
220  $dt_string = implode('<br />', $dts);
221  $this->tpl->setVariable('VAL_CUST', $dt_string);
222  $this->tpl->parseCurrentBlock();
223  break;
224 
225  case 'prtf':
226  $tmp = array();
227  if (is_array($a_set['prtf'])) {
228  foreach ($a_set['prtf'] as $prtf_url => $prtf_txt) {
229  $tmp[] = '<a href="' . $prtf_url . '">' . $prtf_txt . '</a>';
230  }
231  }
232  $this->tpl->setCurrentBlock('custom_fields');
233  $this->tpl->setVariable('VAL_CUST', (string) implode('<br />', $tmp)) ;
234  $this->tpl->parseCurrentBlock();
235  break;
236 
237 
238  case 'odf_last_update':
239  $this->tpl->setCurrentBlock('custom_fields');
240  $this->tpl->setVariable('VAL_CUST', (string) $a_set['odf_info_txt']);
241  $this->tpl->parseCurrentBlock();
242  break;
243 
244  case 'roles':
245  $this->tpl->setCurrentBlock('custom_fields');
246  $this->tpl->setVariable('VAL_CUST', (string) $a_set['roles_label']);
247  $this->tpl->parseCurrentBlock();
248  break;
249 
250  case 'org_units':
251  $this->tpl->setCurrentBlock('custom_fields');
252  include_once './Modules/OrgUnit/classes/PathStorage/class.ilOrgUnitPathStorage.php';
253  $this->tpl->setVariable('VAL_CUST', (string) ilOrgUnitPathStorage::getTextRepresentationOfUsersOrgUnits($a_set['usr_id']));
254  $this->tpl->parseCurrentBlock();
255  break;
256 
257  default:
258  $this->tpl->setCurrentBlock('custom_fields');
259  $this->tpl->setVariable('VAL_CUST', isset($a_set[$field]) ? (string) $a_set[$field] : '');
260  $this->tpl->parseCurrentBlock();
261  break;
262  }
263  }
264 
265  if ($this->privacy->enabledCourseAccessTimes()) {
266  $this->tpl->setVariable('VAL_ACCESS', $a_set['access_time']);
267  }
268  if ($this->show_learning_progress) {
269  $this->tpl->setCurrentBlock('lp');
270  switch ($a_set['progress']) {
272  $this->tpl->setVariable('LP_STATUS_ALT', $this->lng->txt($a_set['progress']));
273  $this->tpl->setVariable('LP_STATUS_PATH', ilUtil::getImagePath('scorm/complete.svg'));
274  break;
275 
277  $this->tpl->setVariable('LP_STATUS_ALT', $this->lng->txt($a_set['progress']));
278  $this->tpl->setVariable('LP_STATUS_PATH', ilUtil::getImagePath('scorm/incomplete.svg'));
279  break;
280 
282  $this->tpl->setVariable('LP_STATUS_ALT', $this->lng->txt($a_set['progress']));
283  $this->tpl->setVariable('LP_STATUS_PATH', ilUtil::getImagePath('scorm/not_attempted.svg'));
284  break;
285 
287  $this->tpl->setVariable('LP_STATUS_ALT', $this->lng->txt($a_set['progress']));
288  $this->tpl->setVariable('LP_STATUS_PATH', ilUtil::getImagePath('scorm/failed.svg'));
289  break;
290  }
291  $this->tpl->parseCurrentBlock();
292  }
293 
294  $this->tpl->setVariable('VAL_POSTNAME', 'participants');
295 
296  if ($ilAccess->checkAccess("grade", "", $this->rep_object->getRefId())) {
297  $this->tpl->setCurrentBlock('grade');
298  $this->tpl->setVariable('VAL_PASSED_ID', $a_set['usr_id']);
299  $this->tpl->setVariable('VAL_PASSED_CHECKED', ($a_set['passed'] ? 'checked="checked"' : ''));
300  $this->tpl->parseCurrentBlock();
301  } else {
302  $this->tpl->setVariable('VAL_PASSED_TXT', ($a_set['passed']
303  ? $this->lng->txt("yes")
304  : $this->lng->txt("no")));
305  }
306 
307  if (
308  $this->getParticipants()->isAdmin($a_set['usr_id']) ||
309  $this->getParticipants()->isTutor($a_set['usr_id'])
310  ) {
311  // cognos-blu-patch: begin
312  $this->tpl->setCurrentBlock('with_contact');
313  $this->tpl->setVariable('VAL_CONTACT_ID', $a_set['usr_id']);
314  $this->tpl->setVariable('VAL_CONTACT_CHECKED', $a_set['contact'] ? 'checked="checked"' : '');
315  $this->tpl->parseCurrentBlock();
316  // cognos-blu-patch: end
317 
318  $this->tpl->setCurrentBlock('with_notification');
319  $this->tpl->setVariable('VAL_NOTIFICATION_ID', $a_set['usr_id']);
320  $this->tpl->setVariable('VAL_NOTIFICATION_CHECKED', ($a_set['notification'] ? 'checked="checked"' : ''));
321  $this->tpl->parseCurrentBlock();
322  }
323 
324  // blocked only for real members
325  if (
326  !$this->getParticipants()->isAdmin($a_set['usr_id']) &&
327  !$this->getParticipants()->isTutor($a_set['usr_id'])
328  ) {
329  $this->tpl->setCurrentBlock('with_blocked');
330  $this->tpl->setVariable('VAL_BLOCKED_ID', $a_set['usr_id']);
331  $this->tpl->setVariable('VAL_BLOCKED_CHECKED', ($a_set['blocked'] ? 'checked="checked"' : ''));
332  $this->tpl->parseCurrentBlock();
333  }
334 
335 
336  if ($this->show_lp_status_sync) {
337  $this->tpl->setVariable('PASSED_INFO', $a_set["passed_info"]);
338  }
339 
340  $this->showActionLinks($a_set);
341 
342  $isPreloaded = $this->preLoader->isPreloaded($this->getRepositoryObject()->getId(), $a_set['usr_id']);
343  if (true === $isPreloaded) {
344  $this->tpl->setCurrentBlock('link');
345  $this->tpl->setVariable('LINK_NAME', $this->ctrl->getLinkTarget($this->parent_obj, 'deliverCertificate'));
346  $this->tpl->setVariable('LINK_TXT', $this->lng->txt('download_certificate'));
347  $this->tpl->parseCurrentBlock();
348  }
349  $this->ctrl->clearParameters($this->parent_obj);
350 
351  if ($this->show_timings) {
352  $this->ctrl->setParameterByClass('ilcoursecontentgui', 'member_id', $a_set['usr_id']);
353  $this->tpl->setCurrentBlock('link');
354  $this->tpl->setVariable('LINK_NAME', $this->ctrl->getLinkTargetByClass('ilcoursecontentgui', 'showUserTimings'));
355  $this->tpl->setVariable('LINK_TXT', $this->lng->txt('timings_timings'));
356  $this->tpl->parseCurrentBlock();
357  }
358  }
359 
366  public function parse()
367  {
368  global $DIC;
369 
370  $rbacreview = $DIC['rbacreview'];
371 
372  $this->determineOffsetAndOrder(true);
373 
374  include_once './Services/User/classes/class.ilUserQuery.php';
375 
376  $additional_fields = $this->getSelectedColumns();
377  unset($additional_fields["firstname"]);
378  unset($additional_fields["lastname"]);
379  unset($additional_fields["last_login"]);
380  unset($additional_fields["access_until"]);
381  unset($additional_fields['consultation_hour']);
382  unset($additional_fields['prtf']);
383  unset($additional_fields['roles']);
384  unset($additional_fields['org_units']);
385 
386  $part = $this->participants->getParticipants();
387 
388  $part = $GLOBALS['DIC']->access()->filterUserIdsByRbacOrPositionOfCurrentUser(
389  'manage_members',
390  'manage_members',
391  $this->getRepositoryObject()->getRefId(),
392  $part
393  );
394 
395 
396  if (!$part) {
397  $this->setData(array());
398  return;
399  }
400 
401  $udf_ids = $usr_data_fields = $odf_ids = array();
402  foreach ($additional_fields as $field) {
403  if (substr($field, 0, 3) == 'udf') {
404  $udf_ids[] = substr($field, 4);
405  continue;
406  }
407  if (substr($field, 0, 3) == 'odf') {
408  $odf_ids[] = substr($field, 4);
409  continue;
410  }
411 
412  $usr_data_fields[] = $field;
413  }
414 
415  $usr_data = ilUserQuery::getUserListData(
416  '',
417  '',
418  0,
419  9999,
420  $this->current_filter['login'],
421  '',
422  null,
423  false,
424  false,
425  0,
426  0,
427  null,
428  $usr_data_fields,
429  $part
430  );
431  // filter by array
432  $usr_ids = array();
433  $local_roles = $this->getParentObject()->getLocalRoles();
434  foreach ((array) $usr_data['set'] as $user) {
435  if ($this->current_filter['roles']) {
436  if (!$GLOBALS['DIC']['rbacreview']->isAssigned($user['usr_id'], $this->current_filter['roles'])) {
437  continue;
438  }
439  }
440  if ($this->current_filter['org_units']) {
441  $org_unit = $this->current_filter['org_units'];
442 
443  include_once './Modules/OrgUnit/classes/class.ilObjOrgUnitTree.php';
444  $assigned = ilObjOrgUnitTree::_getInstance()->getOrgUnitOfUser($user['usr_id']);
445  if (!in_array($org_unit, $assigned)) {
446  continue;
447  }
448  }
449 
450 
451  $usr_ids[] = $user['usr_id'];
452  }
453 
454  // merge course data
455  $course_user_data = $this->getParentObject()->readMemberData(
456  $usr_ids,
457  $this->getSelectedColumns()
458  );
459  $a_user_data = array();
460  foreach ((array) $usr_data['set'] as $ud) {
461  $user_id = $ud['usr_id'];
462 
463  if (!in_array($user_id, $usr_ids)) {
464  continue;
465  }
466  // #15434
467  if (!$this->checkAcceptance($user_id)) {
468  $ud = array();
469  }
470 
471  $a_user_data[$user_id] = array_merge($ud, $course_user_data[$user_id]);
472 
473 
474  $roles = array();
475  foreach ($local_roles as $role_id => $role_name) {
476  // @todo fix performance
477  if ($GLOBALS['DIC']['rbacreview']->isAssigned($user_id, $role_id)) {
478  $roles[] = $role_name;
479  }
480  }
481 
482  $a_user_data[$user_id]['name'] = ($a_user_data[$user_id]['lastname'] . ', ' . $a_user_data[$user_id]['firstname']);
483  $a_user_data[$user_id]['roles_label'] = implode('<br />', $roles);
484  $a_user_data[$user_id]['roles'] = $this->participants->setRoleOrderPosition($user_id);
485 
486 
487  if ($this->show_lp_status_sync) {
488  // #9912 / #13208
489  $passed_info = "";
490  if ($a_user_data[$user_id]["passed_info"]) {
491  $pinfo = $a_user_data[$user_id]["passed_info"];
492  if ($pinfo["user_id"]) {
493  if ($pinfo["user_id"] < 0) {
494  $passed_info = $this->lng->txt("crs_passed_status_system");
495  } elseif ($pinfo["user_id"] > 0) {
496  $name = ilObjUser::_lookupName($pinfo["user_id"]);
497  $passed_info = $this->lng->txt("crs_passed_status_manual_by") . ": " . $name["login"];
498  }
499  }
500  if ($pinfo["timestamp"]) {
501  $passed_info .= "<br />" . ilDatePresentation::formatDate($pinfo["timestamp"]);
502  }
503  }
504  $a_user_data[$user_id]["passed_info"] = $passed_info;
505  }
506  }
507 
508  // Custom user data fields
509  if ($udf_ids) {
510  include_once './Services/User/classes/class.ilUserDefinedData.php';
511  $data = ilUserDefinedData::lookupData($usr_ids, $udf_ids);
512  foreach ($data as $usr_id => $fields) {
513  if (!$this->checkAcceptance($usr_id)) {
514  continue;
515  }
516 
517  foreach ($fields as $field_id => $value) {
518  $a_user_data[$usr_id]['udf_' . $field_id] = $value;
519  }
520  }
521  }
522  // Object specific user data fields
523  if ($odf_ids) {
524  include_once './Modules/Course/classes/Export/class.ilCourseUserData.php';
526  foreach ($data as $usr_id => $fields) {
527  // #7264: as we get data for all course members filter against user data
528  if (!$this->checkAcceptance($usr_id) || !in_array($usr_id, $usr_ids)) {
529  continue;
530  }
531 
532  foreach ($fields as $field_id => $value) {
533  $a_user_data[$usr_id]['odf_' . $field_id] = $value;
534  }
535  }
536 
537 
538  // add last edit date
539  include_once './Services/Membership/classes/class.ilObjectCustomUserFieldHistory.php';
540  foreach (ilObjectCustomUserFieldHistory::lookupEntriesByObjectId($this->getRepositoryObject()->getId()) as $usr_id => $edit_info) {
541  if (!isset($a_user_data[$usr_id])) {
542  continue;
543  }
544 
545  include_once './Services/PrivacySecurity/classes/class.ilPrivacySettings.php';
546  if ($usr_id == $edit_info['update_user']) {
547  $a_user_data[$usr_id]['odf_last_update'] = '';
548  $a_user_data[$usr_id]['odf_info_txt'] = $GLOBALS['DIC']['lng']->txt('cdf_edited_by_self');
549  if (ilPrivacySettings::_getInstance()->enabledAccessTimesByType($this->getRepositoryObject()->getType())) {
550  $a_user_data[$usr_id]['odf_last_update'] .= ('_' . $edit_info['editing_time']->get(IL_CAL_UNIX));
551  $a_user_data[$usr_id]['odf_info_txt'] .= (', ' . ilDatePresentation::formatDate($edit_info['editing_time']));
552  }
553  } else {
554  $a_user_data[$usr_id]['odf_last_update'] = $edit_info['update_user'];
555  $a_user_data[$usr_id]['odf_last_update'] .= ('_' . $edit_info['editing_time']->get(IL_CAL_UNIX));
556 
557  $name = ilObjUser::_lookupName($edit_info['update_user']);
558  $a_user_data[$usr_id]['odf_info_txt'] = ($name['firstname'] . ' ' . $name['lastname'] . ', ' . ilDatePresentation::formatDate($edit_info['editing_time']));
559  }
560  }
561  }
562 
563  // consultation hours
564  if ($this->isColumnSelected('consultation_hour')) {
565  include_once './Services/Booking/classes/class.ilBookingEntry.php';
566  foreach (ilBookingEntry::lookupManagedBookingsForObject($this->getRepositoryObject()->getId(), $GLOBALS['DIC']['ilUser']->getId()) as $buser => $booking) {
567  if (isset($a_user_data[$buser])) {
568  $a_user_data[$buser]['consultation_hour'] = $booking[0]['dt'];
569  $a_user_data[$buser]['consultation_hour_end'] = $booking[0]['dtend'];
570  $a_user_data[$buser]['consultation_hours'] = $booking;
571  }
572  }
573  }
574 
575  // always sort by name first
576  $a_user_data = ilUtil::sortArray(
577  $a_user_data,
578  'name',
579  $this->getOrderDirection()
580  );
581 
582  return $this->setData($a_user_data);
583  }
584 }
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
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
global $DIC
Definition: saml.php:7
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.
__construct( $a_parent_obj, ilObject $rep_object, $a_show_learning_progress=false, $a_show_timings=false, $a_show_lp_status_sync=false, ilCertificateUserForObjectPreloader $preloader=null)
Constructor.
const IL_CAL_UNIX
getOrderDirection()
Get order direction.
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date public.
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
setTopCommands($a_val)
Set top commands (display command buttons on top of table, too)
const LP_STATUS_FAILED
Class for single dates.
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.
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.
$user
Definition: migrateto20.php:57
setRowTemplate($a_template, $a_template_dir="")
Set row template.
getSelectableColumns()
Get selectable columns.
isColumnSelected($a_col)
Is given column selected?
determineOffsetAndOrder($a_omit_offset=false)
Determine offset and order.
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.
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.
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.