public function readMemberData($ids, $role = 'admin', $selected_columns = null) { if ($this->show_tracking) { include_once 'Services/Tracking/classes/class.ilLPStatusWrapper.php'; $completed = ilLPStatusWrapper::_lookupCompletedForObject($this->object->getId()); $in_progress = ilLPStatusWrapper::_lookupInProgressForObject($this->object->getId()); $failed = ilLPStatusWrapper::_lookupFailedForObject($this->object->getId()); } include_once './Services/PrivacySecurity/classes/class.ilPrivacySettings.php'; $privacy = ilPrivacySettings::_getInstance(); if ($privacy->enabledCourseAccessTimes()) { include_once './Services/Tracking/classes/class.ilLearningProgress.php'; $progress = ilLearningProgress::_lookupProgressByObjId($this->object->getId()); } $do_prtf = is_array($selected_columns) && in_array('prtf', $selected_columns) && is_array($ids); if ($do_prtf) { include_once "Modules/Portfolio/classes/class.ilObjPortfolio.php"; $all_prtf = ilObjPortfolio::getAvailablePortfolioLinksForUserIds($ids, $this->ctrl->getLinkTarget($this, "members")); } foreach ((array) $ids as $usr_id) { $name = ilObjUser::_lookupName($usr_id); $tmp_data['firstname'] = $name['firstname']; $tmp_data['lastname'] = $name['lastname']; $tmp_data['login'] = ilObjUser::_lookupLogin($usr_id); $tmp_data['passed'] = $this->object->getMembersObject()->hasPassed($usr_id) ? 1 : 0; if ($this->object->getStatusDetermination() == ilObjCourse::STATUS_DETERMINATION_LP) { $tmp_data['passed_info'] = $this->object->getMembersObject()->getPassedInfo($usr_id); } $tmp_data['notification'] = $this->object->getMembersObject()->isNotificationEnabled($usr_id) ? 1 : 0; $tmp_data['blocked'] = $this->object->getMembersObject()->isBlocked($usr_id) ? 1 : 0; $tmp_data['usr_id'] = $usr_id; if ($this->show_tracking) { if (in_array($usr_id, $completed)) { $tmp_data['progress'] = ilLPStatus::LP_STATUS_COMPLETED; } elseif (in_array($usr_id, $in_progress)) { $tmp_data['progress'] = ilLPStatus::LP_STATUS_IN_PROGRESS; } elseif (in_array($usr_id, $failed)) { $tmp_data['progress'] = ilLPStatus::LP_STATUS_FAILED; } else { $tmp_data['progress'] = ilLPStatus::LP_STATUS_NOT_ATTEMPTED; } } if ($privacy->enabledCourseAccessTimes()) { if (isset($progress[$usr_id]['ts']) and $progress[$usr_id]['ts']) { $tmp_data['access_ut'] = $progress[$usr_id]['ts']; $tmp_data['access_time'] = ilDatePresentation::formatDate(new ilDateTime($progress[$usr_id]['ts'], IL_CAL_UNIX)); } else { $tmp_data['access_ut'] = 0; $tmp_data['access_time'] = $this->lng->txt('no_date'); } } if ($do_prtf) { $tmp_data['prtf'] = $all_prtf[$usr_id]; } $members[$usr_id] = $tmp_data; } return $members ? $members : array(); }