/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */ /** * for storing Data also without session * @author Uwe Kohnle <*****@*****.**> * @version $Id$ */ include_once "Services/Context/classes/class.ilContext.php"; ilContext::init(ilContext::CONTEXT_SCORM); require_once "Services/Init/classes/class.ilInitialisation.php"; ilInitialisation::initILIAS(); include_once 'Modules/Scorm2004/classes/class.ilSCORM2004StoreData.php'; if ((string) $_GET['do'] == "unload") { include_once 'Modules/Scorm2004/classes/class.ilSCORM2004StoreData.php'; ilSCORM2004StoreData::scormPlayerUnload(null, (int) $_GET['package_id']); } else { global $ilLog, $ilDB, $ilUser; $packageId = (int) $_GET['package_id']; $lm_set = $ilDB->queryF('SELECT default_lesson_mode, interactions, objectives, comments FROM sahs_lm WHERE id = %s', array('integer'), array($packageId)); while ($lm_rec = $ilDB->fetchAssoc($lm_set)) { $defaultLessonMode = $lm_rec["default_lesson_mode"]; $interactions = ilUtil::yn2tf($lm_rec["interactions"]); $objectives = ilUtil::yn2tf($lm_rec["objectives"]); $comments = ilUtil::yn2tf($lm_rec["comments"]); } $data = file_get_contents('php://input'); $ilUser->setId($data->p); //until now only 2004 include_once 'Modules/Scorm2004/classes/class.ilSCORM2004StoreData.php'; ilSCORM2004StoreData::persistCMIData(null, $packageId, $defaultLessonMode, $comments, $interactions, $objectives, $data); }
/** * execute command */ function &executeCommand() { global $ilAccess, $ilLog, $ilUser, $lng, $ilias; $next_class = $this->ctrl->getNextClass($this); $cmd = $this->ctrl->getCmd(); if (!$ilAccess->checkAccess("read", "", $_GET["ref_id"])) { $ilias->raiseError($lng->txt("permission_denied"), $ilias->error_obj->WARNING); } //$ilLog->write("SCORM2004 Player cmd: ".$cmd); switch ($cmd) { case 'getRTEjs': $this->getRTEjs(); break; case 'cp': $this->getCPData(); break; case 'adlact': $this->getADLActData(); break; case 'suspend': $this->suspendADLActData(); break; case 'getSuspend': $this->getSuspendData(); break; case 'gobjective': // $this->writeGObjective(); break; case 'getGobjective': $this->readGObjective(); break; case 'getSharedData': $this->readSharedData($_GET['node_id']); break; case 'setSharedData': $this->writeSharedData($_GET['node_id']); break; case 'cmi': if ($_SERVER['REQUEST_METHOD'] == 'POST') { include_once './Modules/Scorm2004/classes/class.ilSCORM2004StoreData.php'; ilSCORM2004StoreData::persistCMIData($this->userId, $this->packageId, $this->slm->getDefaultLessonMode(), $this->slm->getComments(), $this->slm->getInteractions(), $this->slm->getObjectives()); //error_log("Saved CMI Data"); } else { $this->fetchCMIData(); } break; case 'specialPage': $this->specialPage(); break; case 'debugGUI': $this->debugGUI(); break; case 'postLogEntry': $this->postLogEntry(); break; case 'liveLogContent': $this->liveLogContent(); break; case 'downloadLog': $this->downloadLog(); break; case 'openLog': $this->openLog(); break; case 'pingSession': $this->pingSession(); break; case 'scormPlayerUnload': include_once './Modules/Scorm2004/classes/class.ilSCORM2004StoreData.php'; ilSCORM2004StoreData::scormPlayerUnload($this->userId, $this->packageId); break; // case 'getConfigForPlayer': // $this->getConfigForPlayer(); // break; // case 'getConfigForPlayer': // $this->getConfigForPlayer(); // break; default: $this->getPlayer(); break; } }
private function setGlobalObjectives($userId, $packageId, $data) { global $ilLog; $changed_seq_utilities = $data->changed_seq_utilities; $ilLog->write("SCORM2004 adl_seq_utilities changed: " . $changed_seq_utilities); if ($changed_seq_utilities == 1) { $returnAr = ilSCORM2004StoreData::writeGObjective($data->adl_seq_utilities, $userId, $packageId); } }
public function persistCMIData() { global $ilLog, $ilDB, $ilUser; $packageId = (int) $_GET['package_id']; $lm_set = $ilDB->queryF('SELECT default_lesson_mode, interactions, objectives, comments FROM sahs_lm WHERE id = %s', array('integer'), array($packageId)); while ($lm_rec = $ilDB->fetchAssoc($lm_set)) { $defaultLessonMode = $lm_rec["default_lesson_mode"]; $interactions = ilUtil::yn2tf($lm_rec["interactions"]); $objectives = ilUtil::yn2tf($lm_rec["objectives"]); $comments = ilUtil::yn2tf($lm_rec["comments"]); } $data = file_get_contents('php://input'); $ilUser->setId($data->p); include_once './Modules/Scorm2004/classes/class.ilSCORM2004StoreData.php'; ilSCORM2004StoreData::persistCMIData(null, $packageId, $defaultLessonMode, $comments, $interactions, $objectives, $data); }
function sop2il() { // sleep(5); global $ilDB, $ilUser; $in = file_get_contents("php://input"); $GLOBALS['ilLog']->write($in); $ret = array('msg' => array(), 'err' => array()); if (!$in || $in == "") { $ret['err'][] = "no post data recieved"; print json_encode($ret); exit; } $userId = $ilUser->getID(); $result = true; if ($this->type == 'scorm2004') { $lm_set = $ilDB->queryF('SELECT default_lesson_mode, interactions, objectives, comments FROM sahs_lm WHERE id = %s', array('integer'), array($this->obj_id)); while ($lm_rec = $ilDB->fetchAssoc($lm_set)) { $defaultLessonMode = $lm_rec["default_lesson_mode"]; $interactions = ilUtil::yn2tf($lm_rec["interactions"]); $objectives = ilUtil::yn2tf($lm_rec["objectives"]); $comments = ilUtil::yn2tf($lm_rec["comments"]); } include_once './Modules/Scorm2004/classes/class.ilSCORM2004StoreData.php'; $data = json_decode($in); $GLOBALS['ilLog']->write('cmi_count=' . count($data->cmi)); for ($i = 0; $i < count($data->cmi); $i++) { if ($result == true) { //$a_r=array(); $cdata = $data->cmi[$i]; $a_r = ilSCORM2004StoreData::setCMIData($userId, $this->obj_id, $data->cmi[$i], $comments, $interactions, $objectives); if (!is_array($a_r)) { $result = false; } } } if ($result == true) { $result = ilSCORM2004StoreData::syncGlobalStatus($userId, $this->obj_id, $data, $data->now_global_status); } } else { include_once "./Modules/ScormAicc/classes/SCORM/class.ilObjSCORMTracking.php"; $data = json_decode($in); $result = ilObjSCORMTracking::storeJsApiCmi($userId, $this->obj_id, $data); if ($result == true) { $result = ilObjSCORMTracking::syncGlobalStatus($userId, $this->obj_id, $data, $data->now_global_status); } } if ($result == true) { $result = self::scormPlayerUnloadForSOP2il($data); } if ($result == false) { $ret['err'][] = "invalid post data recieved"; } else { $ret['msg'][] = "post data recieved"; } header('Content-Type: text/plain; charset=UTF-8'); print json_encode($ret); }