function getOutputIcons(&$tpl, $a_option, $a_node_id, $scormtype = "sco")
 {
     global $lng;
     $tpl->setCurrentBlock("icon");
     if ($scormtype == 'asset') {
         $tpl->setVariable('ICON_IMAGE', ilUtil::getImagePath($this->getIconImagePathPrefix() . "asset.png"));
         $tpl->setVariable('TXT_ALT_IMG', '');
         $tpl->parseCurrentBlock();
         return;
     }
     $trdata = ilSCORMItem::_lookupTrackingDataOfUser($a_node_id, 0, $this->slm_obj->getId());
     // status
     $status = $trdata["cmi.core.lesson_status"] == "" ? "not attempted" : $trdata["cmi.core.lesson_status"];
     $statusChar = strtolower(substr($status, 0, 1));
     if ($statusChar == "f") {
         $status = "failed";
     } else {
         if ($statusChar == "b") {
             $status = "browsed";
         } else {
             if ($statusChar == "c") {
                 $status = "completed";
             } else {
                 if ($statusChar == "n") {
                     $status = "not_attempted";
                 } else {
                     if ($statusChar == "p") {
                         $status = "passed";
                     } else {
                         if ($statusChar == "r") {
                             $status = "running";
                         }
                     }
                 }
             }
         }
     }
     $alt = $lng->txt("cont_status") . ": " . $lng->txt("cont_sc_stat_" . str_replace(" ", "_", $status));
     // score
     if ($trdata["cmi.core.score.raw"] != "") {
         $alt .= ", " . $lng->txt("cont_credits") . ": " . $trdata["cmi.core.score.raw"];
     }
     // total time
     if ($trdata["cmi.core.total_time"] != "" && $trdata["cmi.core.total_time"] != "0000:00:00.00") {
         $alt .= ", " . $lng->txt("cont_total_time") . ": " . $trdata["cmi.core.total_time"];
     }
     $tpl->setVariable("ICON_NAME", 'scoIcon' . $a_node_id);
     $tpl->setVariable("ICON_IMAGE", ilUtil::getImagePath($this->getIconImagePathPrefix() . str_replace(" ", "_", $status) . ".png"));
     $tpl->setVariable("TXT_ALT_IMG", $alt);
     $tpl->parseCurrentBlock();
 }
Esempio n. 2
0
 function _getStatusInfo($a_obj_id)
 {
     // Which sco's determine the status
     include_once './Services/Object/classes/class.ilObjectLP.php';
     $olp = ilObjectLP::getInstance($a_obj_id);
     $collection = $olp->getCollectionInstance();
     if ($collection) {
         $status_info['scos'] = $collection->getItems();
     } else {
         $status_info['scos'] = array();
     }
     $status_info['num_scos'] = count($status_info['scos']);
     // Get subtype
     include_once './Modules/ScormAicc/classes/class.ilObjSAHSLearningModule.php';
     $status_info['subtype'] = ilObjSAHSLearningModule::_lookupSubType($a_obj_id);
     switch ($status_info['subtype']) {
         case 'hacp':
         case 'aicc':
             include_once './Modules/ScormAicc/classes/SCORM/class.ilObjSCORMTracking.php';
             $status_info['num_completed'] = ilObjSCORMTracking::_getCountCompletedPerUser($status_info['scos'], $a_obj_id);
             include_once './Modules/ScormAicc/classes/class.ilObjAICCLearningModule.php';
             foreach (ilObjAICCLearningModule::_getTrackingItems($a_obj_id) as $item) {
                 if (in_array($item['obj_id'], $status_info['scos'])) {
                     $status_info['scos_title']["{$item['obj_id']}"] = $item['title'];
                 }
             }
             $info = ilObjSCORMTracking::_getProgressInfo($status_info['scos'], $a_obj_id);
             break;
         case 'scorm':
             include_once './Modules/ScormAicc/classes/SCORM/class.ilObjSCORMTracking.php';
             $status_info['num_completed'] = ilObjSCORMTracking::_getCountCompletedPerUser($status_info['scos'], $a_obj_id);
             include_once './Modules/ScormAicc/classes/SCORM/class.ilSCORMItem.php';
             foreach ($status_info['scos'] as $sco_id) {
                 $status_info['scos_title'][$sco_id] = ilSCORMItem::_lookupTitle($sco_id);
             }
             $info = ilObjSCORMTracking::_getProgressInfo($status_info['scos'], $a_obj_id);
             break;
         case "scorm2004":
             include_once './Modules/Scorm2004/classes/class.ilSCORM2004Tracking.php';
             $status_info['num_completed'] = ilSCORM2004Tracking::_getCountCompletedPerUser($status_info['scos'], $a_obj_id, true);
             include_once './Modules/Scorm2004/classes/class.ilObjSCORM2004LearningModule.php';
             foreach ($status_info['scos'] as $sco_id) {
                 $status_info['scos_title'][$sco_id] = ilObjSCORM2004LearningModule::_lookupItemTitle($sco_id);
             }
             $info = ilSCORM2004Tracking::_getItemProgressInfo($status_info['scos'], $a_obj_id, true);
             break;
     }
     $status_info['completed'] = array();
     $status_info['failed'] = array();
     $status_info['in_progress'] = array();
     foreach ($status_info['scos'] as $sco_id) {
         $status_info['completed'][$sco_id] = $info['completed'][$sco_id] ? $info['completed'][$sco_id] : array();
         $status_info['failed'][$sco_id] = $info['failed'][$sco_id] ? $info['failed'][$sco_id] : array();
         $status_info['in_progress'][$sco_id] = $info['in_progress'][$sco_id] ? $info['in_progress'][$sco_id] : array();
     }
     //var_dump($status_info["completed"]);
     return $status_info;
 }