public function getScoresForUserAndCP_Node_Id($item_id, $user_id) { include_once './Modules/ScormAicc/classes/class.ilObjSAHSLearningModule.php'; switch (ilObjSAHSLearningModule::_lookupSubType($this->obj_id)) { case 'hacp': case 'aicc': include_once './Modules/ScormAicc/classes/class.ilObjAICCLearningModule.php'; return ilObjAICCLearningModule::_getScoresForUser($item_id, $user_id); case 'scorm': include_once './Modules/ScormAicc/classes/class.ilObjSCORMLearningModule.php'; //include_once './Modules/ScormAicc/classes/SCORM/class.ilSCORMItem.php'; return ilObjSCORMLearningModule::_getScoresForUser($item_id, $user_id); case 'scorm2004': include_once './Modules/Scorm2004/classes/class.ilObjSCORM2004LearningModule.php'; return ilObjSCORM2004LearningModule::_getScores2004ForUser($item_id, $user_id); } return array("raw" => null, "max" => null, "scaled" => null); }
/** * Constructor * @access public * @param integer reference_id or object_id * @param boolean treat the id as reference_id (true) or object_id (false) */ function ilObjHACPLearningModule($a_id = 0, $a_call_by_reference = true) { $this->type = "sahs"; parent::ilObject($a_id, $a_call_by_reference); }
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; }
/** * Clone scorm object * * @param int target ref_id * @param int copy id */ public function cloneObject($a_target_id, $a_copy_id = 0) { global $ilDB, $ilUser, $ilias; $new_obj = parent::cloneObject($a_target_id, $a_copy_id); $this->cloneMetaData($new_obj); // copy properties $new_obj->setTitle($this->getTitle()); $new_obj->setDescription($this->getDescription()); $new_obj->setSubType($this->getSubType()); $new_obj->setAPIAdapterName($this->getAPIAdapterName()); $new_obj->setAPIFunctionsPrefix($this->getAPIFunctionsPrefix()); $new_obj->setAutoReviewChar($this->getAutoReviewChar()); $new_obj->setDefaultLessonMode($this->getDefaultLessonMode()); $new_obj->setEditable($this->getEditable()); $new_obj->setMaxAttempt($this->getMaxAttempt()); // $new_obj->getModuleVersion($this->getModuleVersion()); ?? $new_obj->setModuleVersion(1); $new_obj->setCreditMode($this->getCreditMode()); $new_obj->setAssignedGlossary($this->getAssignedGlossary()); $new_obj->setTries($this->getTries()); $new_obj->setSession($this->getSession()); $new_obj->setNoMenu($this->getNoMenu()); $new_obj->setHideNavig($this->getHideNavig()); $new_obj->setSequencing($this->getSequencing()); $new_obj->setInteractions($this->getInteractions()); $new_obj->setObjectives($this->getObjectives()); $new_obj->setComments($this->getComments()); $new_obj->setTime_from_lms($this->getTime_from_lms()); $new_obj->setDebug($this->getDebug()); $new_obj->setLocalization($this->getLocalization()); $new_obj->setSequencingExpertMode($this->getSequencingExpertMode()); $new_obj->setDebugPw($this->getDebugPw()); $new_obj->setOpenMode($this->getOpenMode()); $new_obj->setWidth($this->getWidth()); $new_obj->setHeight($this->getHeight()); $new_obj->setAutoContinue($this->getAutoContinue()); $new_obj->setAuto_last_visited($this->getAuto_last_visited()); $new_obj->setCheck_values($this->getCheck_values()); $new_obj->setOfflineMode($this->getOfflineMode()); $new_obj->setAutoSuspend($this->getAutoSuspend()); $new_obj->update(); // set/copy stylesheet /* include_once("./Services/Style/classes/class.ilObjStyleSheet.php"); $style_id = $this->getStyleSheetId(); if ($style_id > 0 && !ilObjStyleSheet::_lookupStandard($style_id)) { $style_obj = $ilias->obj_factory->getInstanceByObjId($style_id); $new_id = $style_obj->ilClone(); $new_obj->setStyleSheetId($new_id); $new_obj->update(); }*/ // up to this point $new_obj is of type ilobjsahslearning module // create instance of correct subtype and call forward it to // cloneIntoNewObject method switch ($this->getSubType()) { case "scorm": include_once "./Modules/ScormAicc/classes/class.ilObjSCORMLearningModule.php"; $source_obj = new ilObjSCORMLearningModule($this->getRefId()); $new_obj = new ilObjSCORMLearningModule($new_obj->getRefId()); break; case "scorm2004": include_once "./Modules/Scorm2004/classes/class.ilObjSCORM2004LearningModule.php"; $source_obj = new ilObjSCORM2004LearningModule($this->getRefId()); $new_obj = new ilObjSCORM2004LearningModule($new_obj->getRefId()); break; case "aicc": include_once "./Modules/ScormAicc/classes/class.ilObjAICCLearningModule.php"; $source_obj = new ilObjAICCLearningModule($this->getRefId()); $new_obj = new ilObjAICCLearningModule($new_obj->getRefId()); break; case "hacp": include_once "./Modules/ScormAicc/classes/class.ilObjHACPLearningModule.php"; $source_obj = new ilObjHACPLearningModule($this->getRefId()); $new_obj = new ilObjHACPLearningModule($new_obj->getRefId()); break; } // copy data directory $new_obj->populateByDirectoy($source_obj->getDataDirectory()); // copy authored content ... if ($new_obj->getEditable()) { $source_obj->copyAuthoredContent($new_obj); } else { // ... or read manifest file $new_obj->readObject(); } return $new_obj; }
/** * get all tracking items of scorm object */ function getTrackingItems() { return ilObjAICCLearningModule::_getTrackingItems($this->getId()); }