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
5include_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,
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
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}
An exception for terminatinating execution or to throw for unit testing.
const IL_CAL_DATE
const IL_CAL_UNIX
static lookupManagedBookingsForObject($a_obj_id, $a_usr_id)
Lookup bookings for own and managed consultation hours of an object.
__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.
static _getValuesByObjId($a_obj_id)
Get values by obj_id (for all users)
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date @access public.
static formatPeriod(ilDateTime $start, ilDateTime $end, $a_skip_starting_day=false)
Format a period of two date Shows: 14.
@classDescription Date and time handling
Class for single dates.
const LP_STATUS_COMPLETED
const LP_STATUS_FAILED
const LP_STATUS_NOT_ATTEMPTED
const LP_STATUS_IN_PROGRESS
static _enabledLearningProgress()
check wether learing progress is enabled or not
static _lookupName($a_user_id)
lookup user name
static _lookupActive($a_usr_id)
Check user account active.
static lookupEntriesByObjectId($a_obj_id)
Get entries by obj_id @global type $ilDB.
Class ilObject Basic functions for all objects.
getSelectableColumns()
Get selectable columns.
showActionLinks($a_set)
show edit links
checkAcceptance($a_usr_id)
Check acceptance.
static getInstanceByObjId($a_obj_id)
Get instance by obj type.
static _getInstance()
Get instance of ilPrivacySettings.
getSelectedColumns()
Get selected columns.
setTopCommands($a_val)
Set top commands (display command buttons on top of table, too)
setEnableHeader($a_enableheader)
Set Enable Header.
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.
getId()
Get element id.
setData($a_data)
set table data @access public
setEnableTitle($a_enabletitle)
Set Enable Title.
setEnableNumInfo($a_val)
Set enable num info.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
addMultiCommand($a_cmd, $a_text)
Add Command button.
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.
setExternalSegmentation($a_val)
Set external segmentation.
setId($a_val)
Set id.
setFormName($a_formname="")
Set Form name.
isColumnSelected($a_col)
Is given column selected?
addCommandButton($a_cmd, $a_text, $a_onclick='', $a_id="", $a_class=null)
Add Command button.
getOrderDirection()
Get order direction.
enable($a_module_name)
enables particular modules of table
static lookupData($a_user_ids, $a_field_ids)
Lookup data.
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.
static sortArray( $array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
global $ilCtrl
Definition: ilias.php:18
$info
Definition: index.php:5
$user
Definition: migrateto20.php:57
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.
global $DIC
Definition: saml.php:7