function il2sop()
 {
     global $ilUser, $ilias;
     $this->setOfflineMode("il2sop");
     header('Content-Type: text/javascript; charset=UTF-8');
     include_once "./Modules/ScormAicc/classes/class.ilObjSAHSLearningModule.php";
     $ob = new ilObjSAHSLearningModule($this->id);
     $module_version = $ob->getModuleVersion();
     $sahs_user = $this->il2sopSahsUser();
     $support_mail = "";
     //TODO
     $scorm_version = "1.2";
     if ($this->type == "scorm2004") {
         $scorm_version = "2004";
     }
     $tree = "";
     $learning_progress_enabled = 1;
     include_once './Services/Object/classes/class.ilObjectLP.php';
     $olp = ilObjectLP::getInstance($this->obj_id);
     if ($olp->getCurrentMode() == 0) {
         $learning_progress_enabled = 0;
     }
     $certificate_enabled = 0;
     $adlact_data = null;
     $ilias_version = $ilias->getSetting("ilias_version");
     if ($this->type == 'scorm2004') {
         include_once "./Modules/Scorm2004/classes/ilSCORM13Player.php";
         $ob2004 = new ilSCORM13Player();
         $init_data = $ob2004->getConfigForPlayer();
         $resources = json_decode($ob2004->getCPDataInit());
         $cmi = $ob2004->getCMIData($ilUser->getID(), $this->obj_id);
         $max_attempt = $ob2004->get_max_attempts();
         $adlact_data = json_decode($ob2004->getADLActDataInit());
         //$globalobj_data = $ob2004->readGObjectiveInit();
     } else {
         include_once "./Modules/ScormAicc/classes/SCORM/class.ilObjSCORMInitData.php";
         $slm_obj =& new ilObjSCORMLearningModule($_GET["ref_id"]);
         $init_data = ilObjSCORMInitData::getIliasScormVars($slm_obj);
         $resources = json_decode(ilObjSCORMInitData::getIliasScormResources($this->obj_id));
         $tree = json_decode(ilObjSCORMInitData::getIliasScormTree($this->obj_id));
         $cmi = json_decode(ilObjSCORMInitData::getIliasScormData($this->obj_id));
         $max_attempt = ilObjSCORMInitData::get_max_attempts($this->obj_id);
     }
     if ($max_attempt == null) {
         $max_attempt = 0;
     }
     $result = array('client_data' => array($support_mail), 'user_data' => $this->il2sopUserData(), 'lm' => array(ilObject::_lookupTitle($this->obj_id), ilObject::_lookupDescription($this->obj_id), $scorm_version, 1, $init_data, $resources, $tree, $module_version, "", $learning_progress_enabled, $certificate_enabled, $max_attempt, $adlact_data, $ilias_version), 'sahs_user' => $sahs_user, 'cmi' => $cmi);
     print json_encode($result);
 }
示例#2
0
 public function getPlayer()
 {
     global $ilUser, $lng, $ilias, $ilSetting;
     // player basic config data
     $initSuspendData = null;
     $initAdlactData = null;
     if ($this->slm->getSequencing() == true) {
         $initSuspendData = json_decode($this->getSuspendDataInit());
         $initAdlactData = json_decode($this->getADLActDataInit());
         $initGlobalobjData = $this->readGObjectiveInit();
     }
     $config = $this->getConfigForPlayer();
     //session
     if ($this->slm->getSession()) {
         //			$session_timeout = (int)($ilias->ini->readVariable("session","expire"))/2;
         $session_timeout = (int) ilSession::getIdleValue() / 2;
     } else {
         $session_timeout = 0;
     }
     $config['session_ping'] = $session_timeout;
     //url strings
     $store_url = 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=cmi&ref_id=' . $_GET["ref_id"];
     $unload_url = 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=scormPlayerUnload&ref_id=' . $_GET["ref_id"];
     if ($this->slm->getSessionDeactivated()) {
         $store_url = 'storeScorm2004.php?package_id=' . $this->packageId . '&ref_id=' . $_GET["ref_id"] . '&client_id=' . $this->ilias->client_id . '&do=store';
         $unload_url = 'storeScorm2004.php?package_id=' . $this->packageId . '&ref_id=' . $_GET["ref_id"] . '&client_id=' . $this->ilias->client_id . '&do=unload';
     }
     $config['cp_url'] = 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=cp&ref_id=' . $_GET["ref_id"];
     $config['cmi_url'] = 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=cmi&ref_id=' . $_GET["ref_id"];
     $config['store_url'] = $store_url;
     $config['get_adldata_url'] = 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=getSharedData&ref_id=' . $_GET["ref_id"];
     $config['set_adldata_url'] = 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=setSharedData&ref_id=' . $_GET["ref_id"];
     $config['adlact_url'] = 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=adlact&ref_id=' . $_GET["ref_id"];
     $config['specialpage_url'] = 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=specialPage&ref_id=' . $_GET["ref_id"];
     $config['suspend_url'] = 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=suspend&ref_id=' . $_GET["ref_id"];
     $config['get_suspend_url'] = 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=getSuspend&ref_id=' . $_GET["ref_id"];
     //next 2 lines could be deleted later
     $config['gobjective_url'] = 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=gobjective&ref_id=' . $_GET["ref_id"];
     $config['get_gobjective_url'] = 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=getGobjective&ref_id=' . $_GET["ref_id"];
     $config['ping_url'] = 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=pingSession&ref_id=' . $_GET["ref_id"];
     $config['scorm_player_unload_url'] = $unload_url;
     $config['post_log_url'] = 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=postLogEntry&ref_id=' . $_GET["ref_id"];
     $config['livelog_url'] = 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=liveLogContent&ref_id=' . $_GET["ref_id"];
     $config['package_url'] = $this->getDataDirectory() . "/";
     //editor
     $config['envEditor'] = $this->envEditor;
     //debug
     $config['debug'] = $this->slm->getDebug();
     $config['debug_fields'] = $this->getDebugValues();
     $config['debug_fields_test'] = $this->getDebugValues(true);
     //language strings
     $langstrings['btnStart'] = $lng->txt('scplayer_start');
     $langstrings['btnExit'] = $lng->txt('scplayer_exit');
     $langstrings['btnExitAll'] = $lng->txt('scplayer_exitall');
     $langstrings['btnSuspendAll'] = $lng->txt('scplayer_suspendall');
     $langstrings['btnPrevious'] = $lng->txt('scplayer_previous');
     $langstrings['btnContinue'] = $lng->txt('scplayer_continue');
     $langstrings['btnhidetree'] = $lng->txt('scplayer_hidetree');
     $langstrings['btnshowtree'] = $lng->txt('scplayer_showtree');
     $langstrings['linkexpandTree'] = $lng->txt('scplayer_expandtree');
     $langstrings['linkcollapseTree'] = $lng->txt('scplayer_collapsetree');
     $config['langstrings'] = $langstrings;
     //template variables
     //$this->tpl = new ilTemplate("tpl.scorm2004.player.html", false, false, "Modules/Scorm2004");
     $this->tpl = new ilTemplate("tpl.scorm2004.player.html", true, true, "Modules/Scorm2004");
     // include ilias rte css, if given
     $rte_css = $this->slm->getDataDirectory() . "/ilias_css_4_2/css/style.css";
     if (is_file($rte_css)) {
         $this->tpl->setCurrentBlock("rte_css");
         $this->tpl->setVariable("RTE_CSS", $rte_css);
         $this->tpl->parseCurrentBlock();
     }
     $this->tpl->setVariable('JSON_LANGSTRINGS', json_encode($langstrings));
     include_once "./Services/YUI/classes/class.ilYuiUtil.php";
     $this->tpl->setVariable('YUI_PATH', ilYuiUtil::getLocalPath());
     $this->tpl->setVariable('TREE_JS', "./Services/UIComponent/NestedList/js/ilNestedList.js");
     $this->tpl->setVariable($langstrings);
     $this->tpl->setVariable('DOC_TITLE', 'ILIAS SCORM 2004 Player');
     if ($this->slm->getIe_compatibility()) {
         $this->tpl->setVariable('IE_COMPATIBILITY', '<meta http-equiv="X-UA-Compatible" content="IE=7" />');
     }
     $this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation());
     $this->tpl->setVariable('INIT_CP_DATA', json_encode(json_decode($this->getCPDataInit())));
     $this->tpl->setVariable('INIT_CMI_DATA', json_encode($this->getCMIData($this->userId, $this->packageId)));
     $this->tpl->setVariable('INIT_ADLACT_DATA', json_encode($initAdlactData));
     $this->tpl->setVariable('INIT_GLOBALOBJ_DATA', json_encode($initGlobalobjData));
     $this->tpl->setVariable('JS_DATA', json_encode($config));
     list($tsfrac, $tsint) = explode(' ', microtime());
     $this->tpl->setVariable('TIMESTAMP', sprintf('%d%03d', $tsint, 1000 * (double) $tsfrac));
     $this->tpl->setVariable('BASE_DIR', './Modules/Scorm2004/');
     $this->tpl->setVariable('TXT_COLLAPSE', $lng->txt('scplayer_collapsetree'));
     if ($this->slm->getDebug()) {
         $this->tpl->setVariable('TXT_DEBUGGER', $lng->txt('scplayer_debugger'));
         $this->tpl->setVariable('DEBUG_URL', "PopupCenter('ilias.php?baseClass=ilSAHSPresentationGUI&cmd=debugGUI&ref_id=" . $_GET["ref_id"] . "','Debug',800,600);");
     } else {
         $this->tpl->setVariable('TXT_DEBUGGER', '');
         $this->tpl->setVariable('DEBUG_URL', '');
     }
     //set icons path
     $this->tpl->setVariable('INLINE_CSS', ilSCORM13Player::getInlineCss());
     //include scripts
     if ($this->slm->getCacheDeactivated()) {
         $this->tpl->setVariable('JS_SCRIPTS', 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=getRTEjs&ref_id=' . $_GET["ref_id"]);
     } else {
         $this->tpl->setVariable('JS_SCRIPTS', './Modules/Scorm2004/scripts/buildrte/rte-min.js');
     }
     //disable top menu
     if ($this->slm->getNoMenu() == "y") {
         $this->tpl->setVariable("VAL_DISPLAY", "style=\"display:none;\"");
     } else {
         $this->tpl->setVariable("VAL_DISPLAY", "");
     }
     //check for max_attempts and raise error if max_attempts is exceeded
     if ($this->get_max_attempts() != 0) {
         if ($this->get_actual_attempts() >= $this->get_max_attempts()) {
             header('Content-Type: text/html; charset=utf-8');
             echo $lng->txt("cont_sc_max_attempt_exceed");
             exit;
         }
     }
     //count attempt
     $this->increase_attemptAndsave_module_version();
     $this->resetSharedData();
     $this->tpl->show("DEFAULT", false);
 }
 /**
  * Edit tag style.
  *
  */
 function editTagStyleObject()
 {
     global $tpl, $ilToolbar, $lng, $ilCtrl;
     // media query selector
     $mqs = $this->object->getMediaQueries();
     if (count($mqs) > 0) {
         //
         $options = array("" => $lng->txt("sty_default"));
         foreach ($mqs as $mq) {
             $options[$mq["id"]] = $mq["mquery"];
         }
         include_once "./Services/Form/classes/class.ilSelectInputGUI.php";
         $si = new ilSelectInputGUI("@media", "mq_id");
         $si->setOptions($options);
         $si->setValue((int) $_GET["mq_id"]);
         $ilToolbar->addInputItem($si, true);
         $ilToolbar->setFormAction($ilCtrl->getFormAction($this));
         $ilToolbar->addFormButton($lng->txt("sty_switch"), "switchMQuery");
     }
     // workaround to include default rte styles
     //if (in_array($_GET["style_type"], array("rte_menu")))
     if ($this->super_type == "rte") {
         $tpl->addCss("Modules/Scorm2004/templates/default/player.css");
         include_once "./Modules/Scorm2004/classes/ilSCORM13Player.php";
         $tpl->addInlineCss(ilSCORM13Player::getInlineCss());
     }
     $cur = explode(".", $_GET["tag"]);
     $cur_tag = $cur[0];
     $cur_class = $cur[1];
     $this->initTagStyleForm("edit", $cur_tag);
     $this->getValues();
     $this->outputTagStyleEditScreen();
 }
 public function getPlayer()
 {
     global $ilUser, $lng, $ilias, $ilSetting;
     // player basic config data
     if ($this->slm->getSession()) {
         $session_timeout = (int) $ilias->ini->readVariable("session", "expire") / 2;
     } else {
         $session_timeout = 0;
     }
     $config = array('cp_url' => 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=cp&ref_id=' . $_GET["ref_id"], 'cmi_url' => 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=cmi&ref_id=' . $_GET["ref_id"], 'get_adldata_url' => 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=getSharedData&ref_id=' . $_GET["ref_id"], 'set_adldata_url' => 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=setSharedData&ref_id=' . $_GET["ref_id"], 'adlact_url' => 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=adlact&ref_id=' . $_GET["ref_id"], 'specialpage_url' => 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=specialPage&ref_id=' . $_GET["ref_id"], 'suspend_url' => 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=suspend&ref_id=' . $_GET["ref_id"], 'get_suspend_url' => 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=getSuspend&ref_id=' . $_GET["ref_id"], 'gobjective_url' => 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=gobjective&ref_id=' . $_GET["ref_id"], 'get_gobjective_url' => 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=getGobjective&ref_id=' . $_GET["ref_id"], 'ping_url' => 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=pingSession&ref_id=' . $_GET["ref_id"], 'scorm_player_unload_url' => 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=scormPlayerUnload&ref_id=' . $_GET["ref_id"], 'scope' => $this->getScope(), 'learner_id' => (string) $ilUser->getID(), 'course_id' => (string) $this->packageId, 'learner_name' => $ilUser->getFirstname() . " " . $ilUser->getLastname(), 'mode' => 'normal', 'credit' => 'credit', 'auto_review' => $this->slm->getAutoReview(), 'hide_navig' => $this->slm->getHideNavig(), 'debug' => $this->slm->getDebug(), 'package_url' => $this->getDataDirectory() . "/", 'session_ping' => $session_timeout, 'envEditor' => $this->envEditor, 'post_log_url' => 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=postLogEntry&ref_id=' . $_GET["ref_id"], 'livelog_url' => 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=liveLogContent&ref_id=' . $_GET["ref_id"], 'debug_fields' => $this->getDebugValues(), 'debug_fields_test' => $this->getDebugValues(true), 'sequencing_enabled' => $this->slm->getSequencing(), 'interactions_storable' => $this->slm->getInteractions(), 'objectives_storable' => $this->slm->getObjectives(), 'comments_storable' => $this->slm->getComments(), 'time_from_lms' => $this->slm->getTime_from_lms(), 'auto_last_visited' => $this->slm->getAuto_last_visited(), 'checkSetValues' => $this->slm->getCheck_values());
     $status['saved_global_status'] = "";
     //not yet implemented
     $status['last_visited'] = null;
     if ($this->slm->getAuto_last_visited()) {
         $status['last_visited'] = $this->get_last_visited($this->packageId, $ilUser->getID());
     }
     $config['status'] = $status;
     //language strings
     $langstrings['btnStart'] = $lng->txt('scplayer_start');
     $langstrings['btnExit'] = $lng->txt('scplayer_exit');
     $langstrings['btnExitAll'] = $lng->txt('scplayer_exitall');
     $langstrings['btnSuspendAll'] = $lng->txt('scplayer_suspendall');
     $langstrings['btnPrevious'] = $lng->txt('scplayer_previous');
     $langstrings['btnContinue'] = $lng->txt('scplayer_continue');
     $langstrings['btnhidetree'] = $lng->txt('scplayer_hidetree');
     $langstrings['btnshowtree'] = $lng->txt('scplayer_showtree');
     $langstrings['linkexpandTree'] = $lng->txt('scplayer_expandtree');
     $langstrings['linkcollapseTree'] = $lng->txt('scplayer_collapsetree');
     $config['langstrings'] = $langstrings;
     //template variables
     //$this->tpl = new ilTemplate("tpl.scorm2004.player.html", false, false, "Modules/Scorm2004");
     $this->tpl = new ilTemplate("tpl.scorm2004.player.html", true, true, "Modules/Scorm2004");
     // include ilias rte css, if given
     $rte_css = $this->slm->getDataDirectory() . "/ilias_css_4_2/css/style.css";
     if (is_file($rte_css)) {
         $this->tpl->setCurrentBlock("rte_css");
         $this->tpl->setVariable("RTE_CSS", $rte_css);
         $this->tpl->parseCurrentBlock();
     }
     $this->tpl->setVariable('JSON_LANGSTRINGS', json_encode($langstrings));
     include_once "./Services/YUI/classes/class.ilYuiUtil.php";
     $this->tpl->setVariable('YUI_PATH', ilYuiUtil::getLocalPath());
     $this->tpl->setVariable('TREE_JS', "./Services/UIComponent/NestedList/js/ilNestedList.js");
     $this->tpl->setVariable($langstrings);
     $this->tpl->setVariable('DOC_TITLE', 'ILIAS SCORM 2004 Player');
     $this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation());
     $this->tpl->setVariable('JS_DATA', json_encode($config));
     list($tsfrac, $tsint) = explode(' ', microtime());
     $this->tpl->setVariable('TIMESTAMP', sprintf('%d%03d', $tsint, 1000 * (double) $tsfrac));
     $this->tpl->setVariable('BASE_DIR', './Modules/Scorm2004/');
     $this->tpl->setVariable('TXT_COLLAPSE', $lng->txt('scplayer_collapsetree'));
     if ($this->slm->getDebug()) {
         $this->tpl->setVariable('TXT_DEBUGGER', $lng->txt('scplayer_debugger'));
         $this->tpl->setVariable('DEBUG_URL', "PopupCenter('ilias.php?baseClass=ilSAHSPresentationGUI&cmd=debugGUI&ref_id=" . $_GET["ref_id"] . "','Debug',800,600);");
     } else {
         $this->tpl->setVariable('TXT_DEBUGGER', '');
         $this->tpl->setVariable('DEBUG_URL', '');
     }
     //set icons path
     $this->tpl->setVariable('INLINE_CSS', ilSCORM13Player::getInlineCss());
     //include scripts
     if ($this->slm->getCacheDeactivated()) {
         $this->tpl->setVariable('JS_SCRIPTS', 'ilias.php?baseClass=ilSAHSPresentationGUI' . '&cmd=getRTEjs&ref_id=' . $_GET["ref_id"]);
     } else {
         $this->tpl->setVariable('JS_SCRIPTS', './Modules/Scorm2004/scripts/buildrte/rte-min.js');
     }
     //disable top menu
     if ($this->slm->getNoMenu() == "y") {
         $this->tpl->setVariable("VAL_DISPLAY", "style=\"display:none;\"");
     } else {
         $this->tpl->setVariable("VAL_DISPLAY", "");
     }
     //check for max_attempts and raise error if max_attempts is exceeded
     if ($this->get_max_attempts() != 0) {
         if ($this->get_actual_attempts() >= $this->get_max_attempts()) {
             header('Content-Type: text/html; charset=utf-8');
             echo $lng->txt("cont_sc_max_attempt_exceed");
             exit;
         }
     }
     //count attempt
     //Cause there is no way to check if the Java-Applet is sucessfully loaded, an attempt equals opening the SCORM player
     $this->increase_attempt();
     $this->resetSharedData();
     $this->save_module_version();
     $this->tpl->show("DEFAULT", false);
 }
 /**
  * Edit tag style.
  *
  */
 function editTagStyleObject()
 {
     global $tpl;
     // workaround to include default rte styles
     //if (in_array($_GET["style_type"], array("rte_menu")))
     if ($this->super_type == "rte") {
         $tpl->addCss("Modules/Scorm2004/templates/default/player.css");
         include_once "./Modules/Scorm2004/classes/ilSCORM13Player.php";
         $tpl->addInlineCss(ilSCORM13Player::getInlineCss());
     }
     $cur = explode(".", $_GET["tag"]);
     $cur_tag = $cur[0];
     $cur_class = $cur[1];
     $this->initTagStyleForm("edit", $cur_tag);
     $this->getValues();
     $this->outputTagStyleEditScreen();
 }