Example #1
0
/* 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);
}
Example #2
0
 /**
  * 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);
 }