/** * create new instance and save it */ public function save() { global $ilUser; $lm_id = $_REQUEST["lm_id"]; if ($lm_id) { include_once "./Modules/ScormAicc/classes/class.ilObjSAHSLearningModule.php"; $type = ilObjSAHSLearningModule::_lookupSubType($lm_id); if ($type == "scorm") { include_once "./Modules/ScormAicc/classes/class.ilObjSCORMLearningModule.php"; $lm = new ilObjSCORMLearningModule($lm_id, false); } else { include_once "./Modules/Scorm2004/classes/class.ilObjSCORM2004LearningModule.php"; $lm = new ilObjSCORM2004LearningModule($lm_id, false); } include_once "Modules/ScormAicc/classes/Verification/class.ilObjSCORMVerification.php"; $newObj = ilObjSCORMVerification::createFromSCORMLM($lm, $ilUser->getId()); if ($newObj) { $parent_id = $this->node_id; $this->node_id = null; $this->putObjectInTree($newObj, $parent_id); $this->afterSave($newObj); } else { ilUtil::sendFailure($this->lng->txt("msg_failed")); } } else { ilUtil::sendFailure($this->lng->txt("select_one")); } $this->create(); }
/** * Get material file name and goto url * * @param int $a_wsp_id * @return array caption, url */ function getMaterialInfo($a_wsp_id, $a_user_id) { if (!$this->ws_tree) { include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php"; include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php"; $this->ws_tree = new ilWorkspaceTree($a_user_id); $this->ws_access = new ilWorkspaceAccessHandler($caption); } $obj_id = $this->ws_tree->lookupObjectId($a_wsp_id); $caption = ilObject::_lookupTitle($obj_id); if (!$this->offline_mode) { $url = $this->ws_access->getGotoLink($a_wsp_id, $obj_id); } else { $url = $this->offline_mode . "file_" . $obj_id . "/"; // all possible material types for now switch (ilObject::_lookupType($obj_id)) { case "tstv": include_once "Modules/Test/classes/class.ilObjTestVerification.php"; $obj = new ilObjTestVerification($obj_id, false); $url .= $obj->getOfflineFilename(); break; case "excv": include_once "Modules/Exercise/classes/class.ilObjExerciseVerification.php"; $obj = new ilObjExerciseVerification($obj_id, false); $url .= $obj->getOfflineFilename(); break; case "crsv": include_once "Modules/Course/classes/Verification/class.ilObjCourseVerification.php"; $obj = new ilObjCourseVerification($obj_id, false); $url .= $obj->getOfflineFilename(); break; case "scov": include_once "Modules/ScormAicc/classes/Verification/class.ilObjSCORMVerification.php"; $obj = new ilObjSCORMVerification($obj_id, false); $url .= $obj->getOfflineFilename(); break; case "file": $file = new ilObjFile($obj_id, false); $url .= $file->getFilename(); break; } } return array($caption, $url); }
/** * Collect page elements (that need to be exported separately) * * @param string $a_pg_type page type * @param int $a_pg_id page id */ function collectPageElements($a_type, $a_id) { // collect media objects $pg_mobs = ilObjMediaObject::_getMobsOfObject($a_type, $a_id); foreach ($pg_mobs as $pg_mob) { $this->mobs[$pg_mob] = $pg_mob; } // collect all files include_once "./Modules/File/classes/class.ilObjFile.php"; $files = ilObjFile::_getFilesOfObject($a_type, $a_id); foreach ($files as $f) { $this->files[$f] = $f; } $skill_tree = $ws_tree = null; $pcs = ilPageContentUsage::getUsagesOfPage($a_id, $a_type); foreach ($pcs as $pc) { // skils if ($pc["type"] == "skmg") { $skill_id = $pc["id"]; // trying to find user id $user_id = null; switch ($a_type) { case "prtf:pg": include_once "Modules/Portfolio/classes/class.ilPortfolioPage.php"; $page = new ilPortfolioPage($a_id); $user_id = $page->create_user; break; default: // :TODO: break; } if ($user_id) { // we only need 1 instance each if (!$skill_tree) { include_once "Services/Skill/classes/class.ilSkillTree.php"; $skill_tree = new ilSkillTree(); include_once "Services/Skill/classes/class.ilPersonalSkill.php"; include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php"; $ws_tree = new ilWorkspaceTree($user_id); } // walk skill tree include_once "./Services/Skill/classes/class.ilVirtualSkillTree.php"; $vtree = new ilVirtualSkillTree(); $tref_id = 0; $skill_id = (int) $skill_id; include_once "./Services/Skill/classes/class.ilSkillTreeNode.php"; if (ilSkillTreeNode::_lookupType($skill_id) == "sktr") { include_once "./Services/Skill/classes/class.ilSkillTemplateReference.php"; $tref_id = $skill_id; $skill_id = ilSkillTemplateReference::_lookupTemplateId($skill_id); } $b_skills = $vtree->getSubTreeForCSkillId($skill_id . ":" . $tref_id, true); foreach ($b_skills as $bs) { $skill = ilSkillTreeNodeFactory::getInstance($bs["skill_id"]); $level_data = $skill->getLevelData(); foreach ($level_data as $k => $v) { // get assigned materials from personal skill $mat = ilPersonalSkill::getAssignedMaterial($user_id, $bs["tref_id"], $v["id"]); if (sizeof($mat)) { foreach ($mat as $item) { $wsp_id = $item["wsp_id"]; $obj_id = $ws_tree->lookupObjectId($wsp_id); // all possible material types for now switch (ilObject::_lookupType($obj_id)) { case "file": $this->files[$obj_id] = $obj_id; break; case "tstv": include_once "Modules/Test/classes/class.ilObjTestVerification.php"; $obj = new ilObjTestVerification($obj_id, false); $this->files_direct[$obj_id] = array($obj->getFilePath(), $obj->getOfflineFilename()); break; case "excv": include_once "Modules/Exercise/classes/class.ilObjExerciseVerification.php"; $obj = new ilObjExerciseVerification($obj_id, false); $this->files_direct[$obj_id] = array($obj->getFilePath(), $obj->getOfflineFilename()); break; case "crsv": include_once "Modules/Course/classes/Verification/class.ilObjCourseVerification.php"; $obj = new ilObjCourseVerification($obj_id, false); $this->files_direct[$obj_id] = array($obj->getFilePath(), $obj->getOfflineFilename()); break; case "scov": include_once "Modules/ScormAicc/classes/Verification/class.ilObjSCORMVerification.php"; $obj = new ilObjSCORMVerification($obj_id, false); $this->files_direct[$obj_id] = array($obj->getFilePath(), $obj->getOfflineFilename()); break; } } } } } } } } }