Пример #1
0
 function _getFailed($a_obj_id)
 {
     $status_info = ilLPStatusWrapper::_getStatusInfo($a_obj_id);
     if (!count($status_info['scos'])) {
         return array();
     }
     $users = array();
     foreach ($status_info['scos'] as $sco_id) {
         // max attempts vs. failed
         if (sizeof($status_info['in_progress'][$sco_id])) {
             foreach ($status_info['in_progress'][$sco_id] as $user_id) {
                 if (!in_array($user_id, $status_info['failed'][$sco_id])) {
                     switch ($status_info["subtype"]) {
                         case 'hacp':
                         case 'aicc':
                         case 'scorm':
                             include_once './Modules/ScormAicc/classes/SCORM/class.ilObjSCORMTracking.php';
                             $has_max_attempts = ilObjSCORMTracking::_hasMaxAttempts($a_obj_id, $user_id);
                             break;
                         case 'scorm2004':
                             include_once "./Modules/Scorm2004/classes/class.ilSCORM2004Tracking.php";
                             $has_max_attempts = ilSCORM2004Tracking::_hasMaxAttempts($a_obj_id, $user_id);
                             break;
                     }
                     if ($has_max_attempts) {
                         $status_info['failed'][$sco_id][] = $user_id;
                     }
                 }
             }
         }
         $users = array_merge($users, (array) $status_info['failed'][$sco_id]);
     }
     return array_unique($users);
 }