19 declare(strict_types=0);
31 foreach ($status_info[
'in_progress'] as $in_progress) {
32 $users = array_merge($users, $in_progress);
34 $users = array_unique($users);
51 $items = $status_info[
'scos'];
54 foreach ($items as $sco_id) {
55 $tmp_users = $status_info[
'completed'][$sco_id];
60 $users = array_intersect($users, $tmp_users);
72 if (!count($status_info[
'scos'])) {
76 foreach ($status_info[
'scos'] as $sco_id) {
79 (array) $status_info[
'failed'][$sco_id]
82 return array_unique($users);
113 $collection = $olp->getCollectionInstance();
115 $status_info[
'scos'] = $collection->getItems();
117 $status_info[
'scos'] = array();
119 $status_info[
'num_scos'] = count($status_info[
'scos']);
126 switch ($status_info[
'subtype']) {
130 $status_info[
'scos'],
134 foreach (ilObjAICCLearningModule::_getTrackingItems(
137 if (in_array($item[
'obj_id'], $status_info[
'scos'])) {
138 $status_info[
'scos_title'][
"$item[obj_id]"] = $item[
'title'];
142 $status_info[
'scos'],
149 $status_info[
'scos'],
153 foreach ($status_info[
'scos'] as $sco_id) {
159 $status_info[
'scos'],
166 $status_info[
'scos'],
170 foreach ($status_info[
'scos'] as $sco_id) {
177 $status_info[
'scos'],
184 $status_info[
'completed'] = array();
185 $status_info[
'failed'] = array();
186 $status_info[
'in_progress'] = array();
187 foreach ($status_info[
'scos'] as $sco_id) {
188 $status_info[
'completed'][$sco_id] = $info[
'completed'][$sco_id] ?? array();
189 $status_info[
'failed'][$sco_id] = $info[
'failed'][$sco_id] ?? array();
190 $status_info[
'in_progress'][$sco_id] = $info[
'in_progress'][$sco_id] ?? array();
199 ?
object $a_obj =
null 203 $status = self::LP_STATUS_NOT_ATTEMPTED_NUM;
208 $status = self::LP_STATUS_IN_PROGRESS_NUM;
212 $collection = $olp->getCollectionInstance();
214 $scos = $collection->getItems();
240 switch ($scorm_status) {
242 $status = self::LP_STATUS_IN_PROGRESS_NUM;
245 $status = self::LP_STATUS_COMPLETED_NUM;
248 $status = self::LP_STATUS_FAILED_NUM;
261 ?
object $a_obj =
null 265 $collection = $olp->getCollectionInstance();
269 $scos = $collection->getItems();
270 $reqscos = count($scos);
273 if ($subtype !=
"scorm2004") {
290 $per = (
int) min(100, 100 / $reqscos * $compl);
300 parent::refreshStatus($a_obj_id, $a_users);
306 $all_active_users = array_unique(
307 array_merge($in_progress, $completed, $failed)
312 if ($subtype !=
"scorm2004") {
322 $not_attempted_users = array_diff(
326 unset($all_tracked_users);
327 unset($all_active_users);
330 if ($not_attempted_users) {
331 foreach ($not_attempted_users as $usr_id) {
336 self::LP_STATUS_NOT_ATTEMPTED_NUM
static _getInProgress(int $a_obj_id)
static _getCompleted(int $a_obj_id)
Static function to read the users who have the status 'completed'.
static _getCountCompletedPerUser(array $a_scorm_item_ids, int $a_obj_id, bool $a_omit_failed=false)
Get progress of selected scos.
static _getCollectionStatus(?array $a_scos, int $a_obj_id, int $a_user_id)
determineStatus(int $a_obj_id, int $a_usr_id, ?object $a_obj=null)
static _getItemProgressInfo(array $a_scorm_item_ids, int $a_obj_id, bool $a_omit_failed)
static _getStatusInfo(int $a_obj_id)
Reads informations about the object e.g test results, tlt, number of visits.
static _getTrackedUsers(int $a_obj_id)
Get all tracked users.
static hasAccessed(int $a_obj_id, int $a_usr_id)
Has accessed.
static _getProgressInfo(array $sco_item_ids, int $a_obj_id)
Get info about.
static _getInProgress(int $a_obj_id)
Static function to read users who have the status 'in_progress'.
static _lookupSubType(int $a_obj_id)
lookup subtype id (scorm, )
static _getCollectionStatus(array $a_scos, int $a_obj_id, int $a_user_id)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
refreshStatus(int $a_obj_id, ?array $a_users=null)
static _getCompleted(int $a_obj_id)
static _getFailed(int $a_obj_id)
static _getNotAttempted(int $a_obj_id)
static _lookupTitle(int $a_obj_id)
static _getFailed(int $a_obj_id)
Static function to read the users who have the status 'completed'.
static _getStatusInfo(int $a_obj_id)
static _lookupItemTitle(int $a_node_id)
static _getTrackedUsers(int $a_obj_id)
Get all tracked users.
static _countCompleted(?array $a_scos, int $a_obj_id, int $a_user_id)
static _getCountCompletedPerUser(array $a_scorm_item_ids, int $a_obj_id)
Get users who have status completed or passed.
determinePercentage(int $a_obj_id, int $a_usr_id, ?object $a_obj=null)
static writeStatus(int $a_obj_id, int $a_user_id, int $a_status, int $a_percentage=0, bool $a_force_per=false, ?int &$a_old_status=self::LP_STATUS_NOT_ATTEMPTED_NUM)
Write status for user and object.
static _countCompleted(array $a_scos, int $a_obj_id, int $a_user_id, bool $a_omit_failed)
static getInstance(int $obj_id)