ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilCourseParticipantsTableGUI.php
Go to the documentation of this file.
1<?php
2
3/*
4 +-----------------------------------------------------------------------------+
5 | ILIAS open source |
6 +-----------------------------------------------------------------------------+
7 | Copyright (c) 1998-2006 ILIAS open source, University of Cologne |
8 | |
9 | This program is free software; you can redistribute it and/or |
10 | modify it under the terms of the GNU General Public License |
11 | as published by the Free Software Foundation; either version 2 |
12 | of the License, or (at your option) any later version. |
13 | |
14 | This program is distributed in the hope that it will be useful, |
15 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
17 | GNU General Public License for more details. |
18 | |
19 | You should have received a copy of the GNU General Public License |
20 | along with this program; if not, write to the Free Software |
21 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
22 +-----------------------------------------------------------------------------+
23 */
24
25include_once './Services/Membership/classes/class.ilParticipantsTableGUI.php';
34{
35 protected $type = 'admin';
36 protected $show_learning_progress = false;
37 protected $show_timings = false;
38 protected $show_edit_link = true;
39
40 protected $role_id = 0;
41
49 public function __construct(
50 $a_parent_obj,
51 $a_type = 'admin',
52 $show_content = true,
53 $a_show_learning_progress = false,
54 $a_show_timings = false,
55 $a_show_edit_link= true,
56 $a_role_id = 0,
57 $a_show_lp_status_sync = false)
58 {
59 global $lng, $ilCtrl;
60
61 $this->show_learning_progress = $a_show_learning_progress;
62 $this->show_timings = $a_show_timings;
63 $this->show_edit_link = $a_show_edit_link;
64 $this->show_lp_status_sync = $a_show_lp_status_sync;
65
66 // #13208
67 include_once("Services/Tracking/classes/class.ilObjUserTracking.php");
69 {
70 $this->show_lp_status_sync = false;
71 }
72
73 $this->lng = $lng;
74 $this->lng->loadLanguageModule('crs');
75 $this->lng->loadLanguageModule('trac');
76 $this->lng->loadLanguageModule('rbac');
77
78 $this->ctrl = $ilCtrl;
79
80 $this->type = $a_type;
81 $this->setRoleId($a_role_id);
82
83 include_once('./Services/PrivacySecurity/classes/class.ilPrivacySettings.php');
84 $this->privacy = ilPrivacySettings::_getInstance();
85
86 // required before constructor for columns
87 $this->setId('crs_' . $a_type . '_' . $a_role_id.'_'. $a_parent_obj->object->getId());
88 parent::__construct($a_parent_obj, 'members');
89
90 $this->initSettings();
91
92 $this->setFormName('participants');
93
94 $this->addColumn('', 'f', "1");
95 $this->addColumn($this->lng->txt('name'), 'lastname', '20%');
96
97 $all_cols = $this->getSelectableColumns();
98 foreach($this->getSelectedColumns() as $col)
99 {
100 $this->addColumn($all_cols[$col]['txt'], $col);
101 }
102
103 if($this->show_learning_progress)
104 {
105 $this->addColumn($this->lng->txt('learning_progress'), 'progress');
106 }
107
108 if($this->privacy->enabledCourseAccessTimes())
109 {
110 $this->addColumn($this->lng->txt('last_access'), 'access_ut', '16em');
111 }
112
113 $this->addColumn($this->lng->txt('crs_member_passed'), 'passed');
114 if($this->show_lp_status_sync)
115 {
116 $this->addColumn($this->lng->txt('crs_member_passed_status_changed'), 'passed_info');
117 }
118
119 if($this->type == 'admin')
120 {
121 $this->setSelectAllCheckbox('admins');
122 // cognos-blu-patch: begin
123 $this->addColumn($this->lng->txt('crs_mem_contact'),'contact');
124 // cognos-blu-patch: end
125 $this->addColumn($this->lng->txt('crs_notification_list_title'), 'notification');
126 $this->addCommandButton('updateAdminStatus', $this->lng->txt('save'));
127 }
128 elseif($this->type == 'tutor')
129 {
130 $this->setSelectAllCheckbox('tutors');
131 // cognos-blu-patch: begin
132 $this->addColumn($this->lng->txt('crs_mem_contact'),'contact');
133 // cognos-blu-patch: end
134 $this->addColumn($this->lng->txt('crs_notification_list_title'), 'notification');
135 $this->addCommandButton('updateTutorStatus', $this->lng->txt('save'));
136 }
137 elseif($this->type == 'member')
138 {
139 $this->setSelectAllCheckbox('members');
140 $this->addColumn($this->lng->txt('crs_blocked'), 'blocked');
141 $this->addCommandButton('updateMemberStatus', $this->lng->txt('save'));
142 }
143 else
144 {
145 $this->setSelectAllCheckbox('roles');
146 $this->addColumn($this->lng->txt('crs_blocked'), 'blocked');
147 $this->addCommandButton('updateRoleStatus', $this->lng->txt('save'));
148
149 }
150 $this->addColumn($this->lng->txt(''), 'optional');
151
152 $this->setRowTemplate("tpl.show_participants_row.html", "Modules/Course");
153
154 if($show_content)
155 {
156 $this->setDefaultOrderField('lastname');
157 $this->enable('sort');
158 $this->enable('header');
159 $this->enable('numinfo');
160 $this->enable('select_all');
161 }
162 else
163 {
164 $this->disable('content');
165 $this->disable('header');
166 $this->disable('footer');
167 $this->disable('numinfo');
168 $this->disable('select_all');
169 }
170
171 $this->setEnableNumInfo(true);
172 $this->setExternalSegmentation(true);
173
174 $this->getItems();
175 $this->setTopCommands(true);
176 $this->setEnableHeader(true);
177 $this->setEnableTitle(true);
178 $this->initFilter();
179
180 $this->setShowRowsSelector(true);
181
182 include_once "Services/Certificate/classes/class.ilCertificate.php";
183 $this->enable_certificates = ilCertificate::isActive();
184 if($this->enable_certificates)
185 {
186 $this->enable_certificates = ilCertificate::isObjectActive($a_parent_obj->object->getId());
187 }
188 if($this->enable_certificates)
189 {
190 $lng->loadLanguageModule('certificate');
191 }
192 }
193
197 public function setRoleId($a_role_id)
198 {
199 $this->role_id = $a_role_id;
200 }
201
206 public function getRoleId()
207 {
208 return $this->role_id;
209 }
210
211 public function getItems()
212 {
213
214 }
215
216
224 public function fillRow($a_set)
225 {
226 global $ilAccess;
227
228 $this->tpl->setVariable('VAL_ID', $a_set['usr_id']);
229 $this->tpl->setVariable('VAL_NAME', $a_set['lastname'] . ', ' . $a_set['firstname']);
230
231 if(!$ilAccess->checkAccessOfUser($a_set['usr_id'], 'read', '', $this->getParentObject()->object->getRefId()) and
232 is_array($info = $ilAccess->getInfo()))
233 {
234 $this->tpl->setCurrentBlock('access_warning');
235 $this->tpl->setVariable('PARENT_ACCESS', $info[0]['text']);
236 $this->tpl->parseCurrentBlock();
237 }
238
239 if(!ilObjUser::_lookupActive($a_set['usr_id']))
240 {
241 $this->tpl->setCurrentBlock('access_warning');
242 $this->tpl->setVariable('PARENT_ACCESS', $this->lng->txt('usr_account_inactive'));
243 $this->tpl->parseCurrentBlock();
244 }
245
246
247 foreach($this->getSelectedColumns() as $field)
248 {
249 switch($field)
250 {
251 case 'gender':
252 $a_set['gender'] = $a_set['gender'] ? $this->lng->txt('gender_' . $a_set['gender']) : '';
253 $this->tpl->setCurrentBlock('custom_fields');
254 $this->tpl->setVariable('VAL_CUST', $a_set[$field]);
255 $this->tpl->parseCurrentBlock();
256 break;
257
258 case 'birthday':
259 $a_set['birthday'] = $a_set['birthday'] ? ilDatePresentation::formatDate(new ilDate($a_set['birthday'], IL_CAL_DATE)) : $this->lng->txt('no_date');
260 $this->tpl->setCurrentBlock('custom_fields');
261 $this->tpl->setVariable('VAL_CUST', $a_set[$field]);
262 $this->tpl->parseCurrentBlock();
263 break;
264
265 case 'consultation_hour':
266 $this->tpl->setCurrentBlock('custom_fields');
267 $dts = array();
268 foreach((array) $a_set['consultation_hours'] as $ch)
269 {
271 new ilDateTime($ch['dt'],IL_CAL_UNIX),
272 new ilDateTime($ch['dtend'],IL_CAL_UNIX)
273 );
274 if($ch['explanation'])
275 {
276 $tmp .= ' ' . $ch['explanation'];
277 }
278 $dts[] = $tmp;
279 }
280 $dt_string = implode('<br />', $dts);
281 $this->tpl->setVariable('VAL_CUST',$dt_string);
282 $this->tpl->parseCurrentBlock();
283 break;
284
285 case 'prtf':
286 $tmp = array();
287 if(is_array($a_set['prtf']))
288 {
289 foreach($a_set['prtf'] as $prtf_url => $prtf_txt)
290 {
291 $tmp[] = '<a href="'.$prtf_url.'">'.$prtf_txt.'</a>';
292 }
293 }
294 $this->tpl->setVariable('VAL_CUST', implode('<br />', $tmp)) ;
295 break;
296
297
298 case 'odf_last_update':
299 $this->tpl->setCurrentBlock('custom_fields');
300 $this->tpl->setVariable('VAL_CUST',(string) $a_set['odf_info_txt']);
301 $this->tpl->parseCurrentBlock();
302 break;
303
304 default:
305 $this->tpl->setCurrentBlock('custom_fields');
306 $this->tpl->setVariable('VAL_CUST', isset($a_set[$field]) ? (string) $a_set[$field] : '');
307 $this->tpl->parseCurrentBlock();
308 break;
309 }
310 }
311
312 if($this->privacy->enabledCourseAccessTimes())
313 {
314 $this->tpl->setVariable('VAL_ACCESS', $a_set['access_time']);
315 }
316 if($this->show_learning_progress)
317 {
318 $this->tpl->setCurrentBlock('lp');
319 switch($a_set['progress'])
320 {
322 $this->tpl->setVariable('LP_STATUS_ALT', $this->lng->txt($a_set['progress']));
323 $this->tpl->setVariable('LP_STATUS_PATH', ilUtil::getImagePath('scorm/complete.svg'));
324 break;
325
327 $this->tpl->setVariable('LP_STATUS_ALT', $this->lng->txt($a_set['progress']));
328 $this->tpl->setVariable('LP_STATUS_PATH', ilUtil::getImagePath('scorm/incomplete.svg'));
329 break;
330
332 $this->tpl->setVariable('LP_STATUS_ALT', $this->lng->txt($a_set['progress']));
333 $this->tpl->setVariable('LP_STATUS_PATH', ilUtil::getImagePath('scorm/not_attempted.svg'));
334 break;
335
337 $this->tpl->setVariable('LP_STATUS_ALT', $this->lng->txt($a_set['progress']));
338 $this->tpl->setVariable('LP_STATUS_PATH', ilUtil::getImagePath('scorm/failed.svg'));
339 break;
340 }
341 $this->tpl->parseCurrentBlock();
342 }
343 if($this->type == 'admin')
344 {
345 $this->tpl->setVariable('VAL_POSTNAME', 'admins');
346 // cognos-blu-patch: begin
347 $this->tpl->setVariable('VAL_CONTACT_ID',$a_set['usr_id']);
348 $this->tpl->setVariable('VAL_CONTACT_CHECKED',$a_set['contact'] ? 'checked="checked"' : '');
349 // cognos-blu-patch: end
350 $this->tpl->setVariable('VAL_NOTIFICATION_ID', $a_set['usr_id']);
351 $this->tpl->setVariable('VAL_NOTIFICATION_CHECKED', ($a_set['notification'] ? 'checked="checked"' : ''));
352 }
353 elseif($this->type == 'tutor')
354 {
355 $this->tpl->setVariable('VAL_POSTNAME', 'tutors');
356 // cognos-blu-patch: begin
357 $this->tpl->setVariable('VAL_CONTACT_ID',$a_set['usr_id']);
358 $this->tpl->setVariable('VAL_CONTACT_CHECKED',$a_set['contact'] ? 'checked="checked"' : '');
359 // cognos-blu-patch: end
360 $this->tpl->setVariable('VAL_NOTIFICATION_ID', $a_set['usr_id']);
361 $this->tpl->setVariable('VAL_NOTIFICATION_CHECKED', ($a_set['notification'] ? 'checked="checked"' : ''));
362 }
363 elseif($this->type == 'member')
364 {
365 $this->tpl->setCurrentBlock('blocked');
366 $this->tpl->setVariable('VAL_POSTNAME','members');
367 $this->tpl->setVariable('VAL_BLOCKED_ID',$a_set['usr_id']);
368 $this->tpl->setVariable('VAL_BLOCKED_CHECKED',($a_set['blocked'] ? 'checked="checked"' : ''));
369 $this->tpl->parseCurrentBlock();
370 }
371 else
372 {
373 $this->tpl->setCurrentBlock('blocked');
374 $this->tpl->setVariable('VAL_BLOCKED_ID', $a_set['usr_id']);
375 $this->tpl->setVariable('VAL_BLOCKED_CHECKED', ($a_set['blocked'] ? 'checked="checked"' : ''));
376 $this->tpl->parseCurrentBlock();
377
378 $this->tpl->setVariable('VAL_POSTNAME','roles');
379 }
380
381 $this->tpl->setVariable('VAL_PASSED_ID',$a_set['usr_id']);
382 $this->tpl->setVariable('VAL_PASSED_CHECKED',($a_set['passed'] ? 'checked="checked"' : ''));
383
384 if($this->show_lp_status_sync)
385 {
386 $this->tpl->setVariable('PASSED_INFO', $a_set["passed_info"]);
387 }
388
389 $this->showActionLinks($a_set);
390
391 if($a_set['passed'] && $this->enable_certificates)
392 {
393 $this->tpl->setCurrentBlock('link');
394 $this->tpl->setVariable('LINK_NAME', $this->ctrl->getLinkTarget($this->parent_obj, 'deliverCertificate'));
395 $this->tpl->setVariable('LINK_TXT', $this->lng->txt('download_certificate'));
396 $this->tpl->parseCurrentBlock();
397 }
398 $this->ctrl->clearParameters($this->parent_obj);
399
400 if($this->show_timings)
401 {
402 $this->ctrl->setParameterByClass('ilcoursecontentgui', 'member_id', $a_set['usr_id']);
403 $this->tpl->setCurrentBlock('link');
404 $this->tpl->setVariable('LINK_NAME', $this->ctrl->getLinkTargetByClass('ilcoursecontentgui', 'showUserTimings'));
405 $this->tpl->setVariable('LINK_TXT', $this->lng->txt('timings_timings'));
406 $this->tpl->parseCurrentBlock();
407 }
408 }
409
416 public function parse()
417 {
418 global $rbacreview;
419
421
422 include_once './Services/User/classes/class.ilUserQuery.php';
423
424 $additional_fields = $this->getSelectedColumns();
425 unset($additional_fields["firstname"]);
426 unset($additional_fields["lastname"]);
427 unset($additional_fields["last_login"]);
428 unset($additional_fields["access_until"]);
429 unset($additional_fields['consultation_hour']);
430 unset($additional_fields['prtf']);
431
432 $udf_ids = $usr_data_fields = $odf_ids = array();
433 foreach($additional_fields as $field)
434 {
435 if(substr($field, 0, 3) == 'udf')
436 {
437 $udf_ids[] = substr($field, 4);
438 continue;
439 }
440 if(substr($field, 0, 3) == 'odf')
441 {
442 $odf_ids[] = substr($field, 4);
443 continue;
444 }
445
446 $usr_data_fields[] = $field;
447 }
448
450 $this->getOrderField(),
451 $this->getOrderDirection(),
452 $this->getOffset(),
453 $this->getLimit(),
454 '',
455 '',
456 null,
457 false,
458 false,
459 0,
460 $this->getRoleId(),
461 null,
462 $usr_data_fields,
463 $part
464 );
465 foreach((array) $usr_data['set'] as $user)
466 {
467 $usr_ids[] = $user['usr_id'];
468 }
469
470 // merge course data
471 $course_user_data = $this->getParentObject()->readMemberData($usr_ids,
472 $this->type == 'admin',
473 $this->getSelectedColumns());
474 $a_user_data = array();
475 foreach((array) $usr_data['set'] as $ud)
476 {
477 $user_id = $ud['usr_id'];
478
479 // #15434
480 if(!$this->checkAcceptance($user_id))
481 {
482 $ud = array();
483 }
484
485 $a_user_data[$user_id] = array_merge($ud,$course_user_data[$user_id]);
486
487 if($this->show_lp_status_sync)
488 {
489 // #9912 / #13208
490 $passed_info = "";
491 if($a_user_data[$user_id]["passed_info"])
492 {
493 $pinfo = $a_user_data[$user_id]["passed_info"];
494 if($pinfo["user_id"])
495 {
496 if($pinfo["user_id"] < 0)
497 {
498 $passed_info = $this->lng->txt("crs_passed_status_system");
499 }
500 else if($pinfo["user_id"] > 0)
501 {
502 $name = ilObjUser::_lookupName($pinfo["user_id"]);
503 $passed_info = $this->lng->txt("crs_passed_status_manual_by").": ".$name["login"];
504 }
505 }
506 if($pinfo["timestamp"])
507 {
508 $passed_info .= "<br />".ilDatePresentation::formatDate($pinfo["timestamp"]);
509 }
510 }
511 $a_user_data[$user_id]["passed_info"] = $passed_info;
512 }
513 }
514
515 // Custom user data fields
516 if($udf_ids)
517 {
518 include_once './Services/User/classes/class.ilUserDefinedData.php';
519 $data = ilUserDefinedData::lookupData($usr_ids, $udf_ids);
520 foreach($data as $usr_id => $fields)
521 {
522 if(!$this->checkAcceptance($usr_id))
523 {
524 continue;
525 }
526
527 foreach($fields as $field_id => $value)
528 {
529 $a_user_data[$usr_id]['udf_' . $field_id] = $value;
530 }
531 }
532 }
533 // Object specific user data fields
534 if($odf_ids)
535 {
536 include_once './Modules/Course/classes/Export/class.ilCourseUserData.php';
537 $data = ilCourseUserData::_getValuesByObjId($this->getParentObject()->object->getId());
538 foreach($data as $usr_id => $fields)
539 {
540 // #7264: as we get data for all course members filter against user data
541 if(!$this->checkAcceptance($usr_id) || !in_array($usr_id, $usr_ids))
542 {
543 continue;
544 }
545
546 foreach($fields as $field_id => $value)
547 {
548 $a_user_data[$usr_id]['odf_' . $field_id] = $value;
549 }
550 }
551
552
553 // add last edit date
554 include_once './Services/Membership/classes/class.ilObjectCustomUserFieldHistory.php';
555 foreach(ilObjectCustomUserFieldHistory::lookupEntriesByObjectId($this->getParentObject()->object->getId()) as $usr_id => $edit_info)
556 {
557 if(!isset($a_user_data[$usr_id]))
558 {
559 continue;
560 }
561
562 include_once './Services/PrivacySecurity/classes/class.ilPrivacySettings.php';
563 if($usr_id == $edit_info['update_user'])
564 {
565 $a_user_data[$usr_id]['odf_last_update'] = '';
566 $a_user_data[$usr_id]['odf_info_txt'] = $GLOBALS['lng']->txt('cdf_edited_by_self');
567 if(ilPrivacySettings::_getInstance()->enabledAccessTimesByType($this->getParentObject()->object->getType()))
568 {
569 $a_user_data[$usr_id]['odf_last_update'] .= ('_'.$edit_info['editing_time']->get(IL_CAL_UNIX));
570 $a_user_data[$usr_id]['odf_info_txt'] .= (', '.ilDatePresentation::formatDate($edit_info['editing_time']));
571 }
572 }
573 else
574 {
575 $a_user_data[$usr_id]['odf_last_update'] = $edit_info['update_user'];
576 $a_user_data[$usr_id]['odf_last_update'] .= ('_'.$edit_info['editing_time']->get(IL_CAL_UNIX));
577
578 $name = ilObjUser::_lookupName($edit_info['update_user']);
579 $a_user_data[$usr_id]['odf_info_txt'] = ($name['firstname'].' '.$name['lastname'].', '.ilDatePresentation::formatDate($edit_info['editing_time']));
580 }
581 }
582 }
583
584 // consultation hours
585 if($this->isColumnSelected('consultation_hour'))
586 {
587 include_once './Services/Booking/classes/class.ilBookingEntry.php';
588 foreach(ilBookingEntry::lookupManagedBookingsForObject($this->getParentObject()->object->getId(), $GLOBALS['ilUser']->getId()) as $buser => $booking)
589 {
590 if(isset($a_user_data[$buser]))
591 {
592 $a_user_data[$buser]['consultation_hour'] = $booking[0]['dt'];
593 $a_user_data[$buser]['consultation_hour_end'] = $booking[0]['dtend'];
594 $a_user_data[$buser]['consultation_hours'] = $booking;
595 }
596 }
597 }
598 $this->setMaxCount($usr_data['cnt'] ? $usr_data['cnt'] : 0);
599 return $this->setData($a_user_data);
600 }
601
602}
603?>
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.
static isObjectActive($a_obj_id)
__construct( $a_parent_obj, $a_type='admin', $show_content=true, $a_show_learning_progress=false, $a_show_timings=false, $a_show_edit_link=true, $a_role_id=0, $a_show_lp_status_sync=false)
Constructor.
static _getValuesByObjId($a_obj_id)
Get values by obj_id (for all users)
static formatPeriod(ilDateTime $start, ilDateTime $end)
Format a period of two date Shows: 14.
static formatDate(ilDateTime $date)
Format a date @access public.
@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
_lookupActive($a_usr_id)
Check user account active.
static _lookupName($a_user_id)
lookup user name
static lookupEntriesByObjectId($a_obj_id)
Get entries by obj_id @global type $ilDB.
getSelectableColumns()
Get selectable columns.
showActionLinks($a_set)
show edit links
checkAcceptance($a_usr_id)
Check acceptance.
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.
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.
getParentObject()
Get parent object.
initFilter()
Init filter.
determineOffsetAndOrder($a_omit_offset=false)
Determine offset and order.
setData($a_data)
set table data @access public
setEnableTitle($a_enabletitle)
Set Enable Title.
setEnableNumInfo($a_val)
Set enable num info.
getLimit()
Get limit.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
setFormName($a_formname)
Set Form name.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
setSelectAllCheckbox($a_select_all_checkbox)
Set the name of the checkbox that should be toggled with a select all button.
getOffset()
Get offset.
setExternalSegmentation($a_val)
Set external segmentation.
setId($a_val)
Set id.
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.
setMaxCount($a_max_count)
set max.
disable($a_module_name)
diesables particular modules of table
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="")
Get data for user administration list.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
$info
Definition: example_052.php:80
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
Definition: CAS.php:276
global $ilCtrl
Definition: ilias.php:18
global $lng
Definition: privfeed.php:40