ILIAS  release_7 Revision v7.30-3-g800a261c036
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 protected $cached_user_names = [];
25
37 public function __construct(
38 $a_parent_obj,
40 $a_show_learning_progress = false,
41 $a_show_timings = false,
42 $a_show_lp_status_sync = false,
44 ) {
45 global $DIC;
46
47 $lng = $DIC['lng'];
48 $ilCtrl = $DIC['ilCtrl'];
49
50 $this->show_learning_progress = $a_show_learning_progress;
51 if ($this->show_learning_progress) {
52 include_once './Services/Tracking/classes/class.ilLPStatus.php';
53 }
54
55 if (null === $preloader) {
57 }
58 $this->preLoader = $preloader;
59
60 $this->show_timings = $a_show_timings;
61 $this->show_lp_status_sync = $a_show_lp_status_sync;
62
63 $this->rep_object = $rep_object;
64
65 // #13208
66 include_once("Services/Tracking/classes/class.ilObjUserTracking.php");
68 $this->show_lp_status_sync = false;
69 }
70
71 $this->lng = $lng;
72 $this->lng->loadLanguageModule('crs');
73 $this->lng->loadLanguageModule('trac');
74 $this->lng->loadLanguageModule('rbac');
75 $this->lng->loadLanguageModule('mmbr');
76 $this->lng->loadLanguageModule('cert');
77
78 $this->ctrl = $ilCtrl;
79
80 include_once('./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
81 $this->privacy = ilPrivacySettings::_getInstance();
82
83 include_once './Services/Membership/classes/class.ilParticipants.php';
84 $this->participants = ilParticipants::getInstanceByObjId($this->getRepositoryObject()->getId());
85
86
87 // required before constructor for columns
88 $this->setId('crs_' . $this->getRepositoryObject()->getId());
89 parent::__construct($a_parent_obj, 'participants');
90
91 $this->initSettings();
92
93 $this->setFormName('participants');
94
95 $this->addColumn('', 'f', '1', true);
96 $this->addColumn($this->lng->txt('name'), 'name', '20%');
97
98 $all_cols = $this->getSelectableColumns();
99 foreach ($this->getSelectedColumns() as $col) {
100 $this->addColumn($all_cols[$col]['txt'], $col);
101 }
102
103 if ($this->show_learning_progress) {
104 $this->addColumn($this->lng->txt('learning_progress'), 'progress');
105 }
106
107 if ($this->privacy->enabledCourseAccessTimes()) {
108 $this->addColumn($this->lng->txt('last_access'), 'access_ut', '16em');
109 }
110
111 $this->addColumn($this->lng->txt('crs_member_passed'), 'passed');
112 if ($this->show_lp_status_sync) {
113 $this->addColumn($this->lng->txt('crs_member_passed_status_changed'), 'passed_info');
114 }
115
116
117 $this->setSelectAllCheckbox('participants', true);
118 $this->addColumn($this->lng->txt('crs_mem_contact'), 'contact');
119 $this->addColumn($this->lng->txt('crs_blocked'), 'blocked');
120 $this->addColumn($this->lng->txt('crs_notification_list_title'), 'notification');
121 $this->addColumn($this->lng->txt('actions'), 'optional', '', false, 'ilMembershipRowActionsHeader');
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 (!$a_set['active']) {
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');
271 $icon_rendered = $icons->renderIconForStatus($icons->lookupNumStatus($a_set['progress']));
272
273 $this->tpl->setVariable('LP_STATUS_ALT', $this->lng->txt($a_set['progress']));
274 $this->tpl->setVariable('LP_STATUS_ICON', $icon_rendered);
275
276 $this->tpl->parseCurrentBlock();
277 }
278
279 $this->tpl->setVariable('VAL_POSTNAME', 'participants');
280
281 if ($ilAccess->checkAccess("grade", "", $this->rep_object->getRefId())) {
282 $this->tpl->setCurrentBlock('grade');
283 $this->tpl->setVariable('VAL_PASSED_ID', $a_set['usr_id']);
284 $this->tpl->setVariable('VAL_PASSED_CHECKED', ($a_set['passed'] ? 'checked="checked"' : ''));
285 $this->tpl->parseCurrentBlock();
286 } else {
287 $this->tpl->setVariable('VAL_PASSED_TXT', ($a_set['passed']
288 ? $this->lng->txt("yes")
289 : $this->lng->txt("no")));
290 }
291
292 if (
293 $this->getParticipants()->isAdmin($a_set['usr_id']) ||
294 $this->getParticipants()->isTutor($a_set['usr_id'])
295 ) {
296 // cognos-blu-patch: begin
297 $this->tpl->setCurrentBlock('with_contact');
298 $this->tpl->setVariable('VAL_CONTACT_ID', $a_set['usr_id']);
299 $this->tpl->setVariable('VAL_CONTACT_CHECKED', $a_set['contact'] ? 'checked="checked"' : '');
300 $this->tpl->parseCurrentBlock();
301 // cognos-blu-patch: end
302
303 $this->tpl->setCurrentBlock('with_notification');
304 $this->tpl->setVariable('VAL_NOTIFICATION_ID', $a_set['usr_id']);
305 $this->tpl->setVariable('VAL_NOTIFICATION_CHECKED', ($a_set['notification'] ? 'checked="checked"' : ''));
306 $this->tpl->parseCurrentBlock();
307 }
308
309 // blocked only for real members
310 if (
311 !$this->getParticipants()->isAdmin($a_set['usr_id']) &&
312 !$this->getParticipants()->isTutor($a_set['usr_id'])
313 ) {
314 $this->tpl->setCurrentBlock('with_blocked');
315 $this->tpl->setVariable('VAL_BLOCKED_ID', $a_set['usr_id']);
316 $this->tpl->setVariable('VAL_BLOCKED_CHECKED', ($a_set['blocked'] ? 'checked="checked"' : ''));
317 $this->tpl->parseCurrentBlock();
318 }
319
320
321 if ($this->show_lp_status_sync) {
322 $this->tpl->setVariable('PASSED_INFO', $a_set["passed_info"]);
323 }
324
325 $this->showActionLinks($a_set);
326
327 $isPreloaded = $this->preLoader->isPreloaded($this->getRepositoryObject()->getId(), $a_set['usr_id']);
328 if (true === $isPreloaded) {
329 $this->tpl->setCurrentBlock('link');
330 $this->tpl->setVariable('LINK_NAME', $this->ctrl->getLinkTarget($this->parent_obj, 'deliverCertificate'));
331 $this->tpl->setVariable('LINK_TXT', $this->lng->txt('download_certificate'));
332 $this->tpl->parseCurrentBlock();
333 }
334 $this->ctrl->clearParameters($this->parent_obj);
335
336 if ($this->show_timings) {
337 $this->ctrl->setParameterByClass('ilcoursecontentgui', 'member_id', $a_set['usr_id']);
338 $this->tpl->setCurrentBlock('link');
339 $this->tpl->setVariable('LINK_NAME', $this->ctrl->getLinkTargetByClass('ilcoursecontentgui', 'showUserTimings'));
340 $this->tpl->setVariable('LINK_TXT', $this->lng->txt('timings_timings'));
341 $this->tpl->parseCurrentBlock();
342 }
343 }
344
351 public function parse()
352 {
353 global $DIC;
354
355 $rbacreview = $DIC['rbacreview'];
356
357 $this->determineOffsetAndOrder(true);
358
359 include_once './Services/User/classes/class.ilUserQuery.php';
360
361 $additional_fields = $this->getSelectedColumns();
362 unset($additional_fields["firstname"]);
363 unset($additional_fields["lastname"]);
364 unset($additional_fields["last_login"]);
365 unset($additional_fields["access_until"]);
366 unset($additional_fields['consultation_hour']);
367 unset($additional_fields['prtf']);
368 unset($additional_fields['roles']);
369 unset($additional_fields['org_units']);
370
371 $part = $this->participants->getParticipants();
372
373 $part = $GLOBALS['DIC']->access()->filterUserIdsByRbacOrPositionOfCurrentUser(
374 'manage_members',
375 'manage_members',
376 $this->getRepositoryObject()->getRefId(),
377 $part
378 );
379
380
381 if (!$part) {
382 $this->setData(array());
383 return;
384 }
385
386 $udf_ids = $usr_data_fields = $odf_ids = array();
387 foreach ($additional_fields as $field) {
388 if (substr($field, 0, 3) == 'udf') {
389 $udf_ids[] = substr($field, 4);
390 continue;
391 }
392 if (substr($field, 0, 3) == 'odf') {
393 $odf_ids[] = substr($field, 4);
394 continue;
395 }
396
397 $usr_data_fields[] = $field;
398 }
399
401 '',
402 '',
403 0,
404 9999,
405 $this->current_filter['login'],
406 '',
407 null,
408 false,
409 false,
410 0,
411 0,
412 null,
413 $usr_data_fields,
414 $part
415 );
416 // filter by array
417 $usr_ids = array();
418 $local_roles = $this->getParentObject()->getLocalRoles();
419 foreach ((array) $usr_data['set'] as $user) {
420 if ($this->current_filter['roles']) {
421 if (!$GLOBALS['DIC']['rbacreview']->isAssigned($user['usr_id'], $this->current_filter['roles'])) {
422 continue;
423 }
424 }
425 if ($this->current_filter['org_units']) {
426 $org_unit = $this->current_filter['org_units'];
427
428 include_once './Modules/OrgUnit/classes/class.ilObjOrgUnitTree.php';
429 $assigned = ilObjOrgUnitTree::_getInstance()->getOrgUnitOfUser($user['usr_id']);
430 if (!in_array($org_unit, $assigned)) {
431 continue;
432 }
433 }
434
435
436 $usr_ids[] = $user['usr_id'];
437 }
438
439 // merge course data
440 $course_user_data = $this->getParentObject()->readMemberData(
441 $usr_ids,
442 $this->getSelectedColumns(),
443 true
444 );
445 $a_user_data = array();
446 foreach ((array) $usr_data['set'] as $ud) {
447 $user_id = $ud['usr_id'];
448
449 if (!in_array($user_id, $usr_ids)) {
450 continue;
451 }
452 // #15434
453 if (!$this->checkAcceptance($user_id)) {
454 $ud = [
455 'active' => $ud['active'],
456 'firstname' => $ud['firstname'],
457 'lastname' => $ud['lastname'],
458 'login' => $ud['login']
459 ];
460 }
461
462 $a_user_data[$user_id] = array_merge($ud, $course_user_data[$user_id]);
463
464
465 $roles = array();
466 foreach ($local_roles as $role_id => $role_name) {
467 // @todo fix performance
468 if ($GLOBALS['DIC']['rbacreview']->isAssigned($user_id, $role_id)) {
469 $roles[] = $role_name;
470 }
471 }
472
473 $a_user_data[$user_id]['name'] = ($a_user_data[$user_id]['lastname'] . ', ' . $a_user_data[$user_id]['firstname']);
474 $a_user_data[$user_id]['roles_label'] = implode('<br />', $roles);
475 $a_user_data[$user_id]['roles'] = $this->participants->setRoleOrderPosition($user_id);
476
477
478 if ($this->show_lp_status_sync) {
479 // #9912 / #13208
480 $passed_info = "";
481 if ($a_user_data[$user_id]["passed_info"]) {
482 $pinfo = $a_user_data[$user_id]["passed_info"];
483 if ($pinfo["user_id"]) {
484 if ($pinfo["user_id"] < 0) {
485 $passed_info = $this->lng->txt("crs_passed_status_system");
486 } elseif ($pinfo["user_id"] > 0) {
487 $name = $this->lookupUserName((int) $pinfo["user_id"]);
488 $passed_info = $this->lng->txt("crs_passed_status_manual_by") . ": " . $name["login"];
489 }
490 }
491 if ($pinfo["timestamp"]) {
492 $passed_info .= "<br />" . ilDatePresentation::formatDate($pinfo["timestamp"]);
493 }
494 }
495 $a_user_data[$user_id]["passed_info"] = $passed_info;
496 }
497 }
498
499 // Custom user data fields
500 if ($udf_ids) {
501 include_once './Services/User/classes/class.ilUserDefinedData.php';
502 $data = ilUserDefinedData::lookupData($usr_ids, $udf_ids);
503 foreach ($data as $usr_id => $fields) {
504 if (!$this->checkAcceptance($usr_id)) {
505 continue;
506 }
507
508 foreach ($fields as $field_id => $value) {
509 $a_user_data[$usr_id]['udf_' . $field_id] = $value;
510 }
511 }
512 }
513 // Object specific user data fields
514 if ($odf_ids) {
515 include_once './Modules/Course/classes/Export/class.ilCourseUserData.php';
517 foreach ($data as $usr_id => $fields) {
518 // #7264: as we get data for all course members filter against user data
519 if (!$this->checkAcceptance($usr_id) || !in_array($usr_id, $usr_ids)) {
520 continue;
521 }
522
523 foreach ($fields as $field_id => $value) {
524 $a_user_data[$usr_id]['odf_' . $field_id] = $value;
525 }
526 }
527
528
529 // add last edit date
530 include_once './Services/Membership/classes/class.ilObjectCustomUserFieldHistory.php';
531 foreach (ilObjectCustomUserFieldHistory::lookupEntriesByObjectId($this->getRepositoryObject()->getId()) as $usr_id => $edit_info) {
532 if (!isset($a_user_data[$usr_id])) {
533 continue;
534 }
535
536 include_once './Services/PrivacySecurity/classes/class.ilPrivacySettings.php';
537 if ($usr_id == $edit_info['update_user']) {
538 $a_user_data[$usr_id]['odf_last_update'] = '';
539 $a_user_data[$usr_id]['odf_info_txt'] = $GLOBALS['DIC']['lng']->txt('cdf_edited_by_self');
540 if (ilPrivacySettings::_getInstance()->enabledAccessTimesByType($this->getRepositoryObject()->getType())) {
541 $a_user_data[$usr_id]['odf_last_update'] .= ('_' . $edit_info['editing_time']->get(IL_CAL_UNIX));
542 $a_user_data[$usr_id]['odf_info_txt'] .= (', ' . ilDatePresentation::formatDate($edit_info['editing_time']));
543 }
544 } else {
545 $a_user_data[$usr_id]['odf_last_update'] = $edit_info['update_user'];
546 $a_user_data[$usr_id]['odf_last_update'] .= ('_' . $edit_info['editing_time']->get(IL_CAL_UNIX));
547
548 $name = $this->lookupUserName((int) $edit_info['update_user']);
549 $a_user_data[$usr_id]['odf_info_txt'] = ($name['firstname'] . ' ' . $name['lastname'] . ', ' . ilDatePresentation::formatDate($edit_info['editing_time']));
550 }
551 }
552 }
553
554 // consultation hours
555 if ($this->isColumnSelected('consultation_hour')) {
556 include_once './Services/Booking/classes/class.ilBookingEntry.php';
557 foreach (ilBookingEntry::lookupManagedBookingsForObject($this->getRepositoryObject()->getId(), $GLOBALS['DIC']['ilUser']->getId()) as $buser => $booking) {
558 if (isset($a_user_data[$buser])) {
559 $a_user_data[$buser]['consultation_hour'] = $booking[0]['dt'];
560 $a_user_data[$buser]['consultation_hour_end'] = $booking[0]['dtend'];
561 $a_user_data[$buser]['consultation_hours'] = $booking;
562 }
563 }
564 }
565
566 // always sort by name first
567 $a_user_data = ilUtil::sortArray(
568 $a_user_data,
569 'name',
570 $this->getOrderDirection()
571 );
572
573 return $this->setData($a_user_data);
574 }
575
579 protected function lookupUserName(int $user_id) : array
580 {
581 if (isset($this->cached_user_names[$user_id])) {
582 return $this->cached_user_names[$user_id];
583 }
584 return $this->cached_user_names[$user_id] = ilObjUser::_lookupName($user_id);
585 }
586}
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
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.
static getInstance(int $variant=ilLPStatusIcons::ICON_VARIANT_DEFAULT, ?\ILIAS\UI\Renderer $renderer=null, ?\ILIAS\UI\Factory $factory=null)
static _enabledLearningProgress()
check wether learing progress is enabled or not
static _lookupName($a_user_id)
lookup user name
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
global $DIC
Definition: goto.php:24
if($format !==null) $name
Definition: metadata.php:230
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc