Public Member Functions | |
ilSCORMPresentationGUI () | |
& | executeCommand () |
execute command | |
attrib2arr (&$a_attributes) | |
frameset () | |
Output main frameset. | |
explorer ($a_target="sahs_content") | |
output table of content | |
view () | |
SCORM content screen. | |
api () | |
launchSahs () | |
This function is called by the API applet in the content frame when a SCO is started. | |
finishSahs () | |
unloadSahs () | |
launchAsset () | |
setSingleVariable ($a_var, $a_value) | |
set single value | |
setArray ($a_left, $a_value, $a_name, &$v_array) | |
set single value | |
Data Fields | |
$ilias | |
$slm | |
$tpl | |
$lng |
Definition at line 39 of file class.ilSCORMPresentationGUI.php.
ilSCORMPresentationGUI::api | ( | ) |
Definition at line 209 of file class.ilSCORMPresentationGUI.php.
References $_GET, $ilias, ilSCORMResource::_lookupIdByIdRef(), ilSCORMResource::_lookupScormType(), and exit.
{ global $ilias; $slm_obj =& new ilObjSCORMLearningModule($_GET["ref_id"]); $this->tpl = new ilTemplate("tpl.sahs_api.html", true, true, true); // for scorm modules with only one presentable item: launch item if ($_GET["autolaunch"] != "") { $this->tpl->setCurrentBlock("auto_launch"); include_once("content/classes/SCORM/class.ilSCORMItem.php"); include_once("content/classes/SCORM/class.ilSCORMResource.php"); $sc_object =& new ilSCORMItem($_GET["autolaunch"]); $id_ref = $sc_object->getIdentifierRef(); $sc_res_id = ilSCORMResource::_lookupIdByIdRef($id_ref, $sc_object->getSLMId()); $scormtype = strtolower(ilSCORMResource::_lookupScormType($sc_res_id)); if ($scormtype == "asset") { $item_command = "IliasLaunchAsset"; } else { $item_command = "IliasLaunchSahs"; } $this->tpl->setVariable("AUTO_LAUNCH_ID", $_GET["autolaunch"]); $this->tpl->setVariable("AUTO_LAUNCH_CMD", "this.autoLaunch();"); $this->tpl->setVariable("AUTO_LAUNCH_ITEM_CMD", $item_command); $this->tpl->parseCurrentBlock(); } $this->tpl->setVariable("USER_ID",$ilias->account->getId()); $this->tpl->setVariable("USER_FIRSTNAME",$ilias->account->getFirstname()); $this->tpl->setVariable("USER_LASTNAME",$ilias->account->getLastname()); $this->tpl->setVariable("REF_ID",$_GET["ref_id"]); $this->tpl->setVariable("SESSION_ID",session_id()); $this->tpl->setVariable("CODE_BASE", "http://".$_SERVER['SERVER_NAME'].substr($_SERVER['PHP_SELF'], 0, strpos ($_SERVER['PHP_SELF'], "/sahs_presentation.php"))); $this->tpl->parseCurrentBlock(); $this->tpl->show(false); exit; }
ilSCORMPresentationGUI::attrib2arr | ( | &$ | a_attributes | ) |
Definition at line 82 of file class.ilSCORMPresentationGUI.php.
{ $attr = array(); if(!is_array($a_attributes)) { return $attr; } foreach ($a_attributes as $attribute) { $attr[$attribute->name()] = $attribute->value(); } return $attr; }
& ilSCORMPresentationGUI::executeCommand | ( | ) |
execute command
Reimplemented in ilAICCPresentationGUI, and ilHACPPresentationGUI.
Definition at line 62 of file class.ilSCORMPresentationGUI.php.
References $_GET, $cmd, $ilErr, and $ilLog.
{ global $ilAccess, $ilLog,$ilErr; $next_class = $this->ctrl->getNextClass($this); $cmd = $this->ctrl->getCmd("frameset"); if (!$ilAccess->checkAccess("read", "", $_GET["ref_id"])) { $ilErr->raiseError($this->lng->txt('permission_denied'),$ilErr->WARNING); } switch($next_class) { default: $this->$cmd(); } }
ilSCORMPresentationGUI::explorer | ( | $ | a_target = "sahs_content" |
) |
output table of content
Reimplemented in ilAICCPresentationGUI, and ilHACPPresentationGUI.
Definition at line 142 of file class.ilSCORMPresentationGUI.php.
References $_GET, $exp, $expanded, $ilBench, $ilLog, $mtree, $output, and ilUtil::getStyleSheetLocation().
{ global $ilBench, $ilLog; $ilBench->start("SCORMExplorer", "initExplorer"); $this->tpl = new ilTemplate("tpl.sahs_exp_main.html", true, true, true); //$this->tpl->setVariable("LOCATION_JAVASCRIPT", "./scorm_functions.js"); require_once("./content/classes/SCORM/class.ilSCORMExplorer.php"); $exp = new ilSCORMExplorer($this->ctrl->getLinkTarget($this, "view"), $this->slm); $exp->setTargetGet("obj_id"); $exp->setFrameTarget($a_target); //$exp->setFiltered(true); if ($_GET["scexpand"] == "") { $mtree = new ilSCORMTree($this->slm->getId()); $expanded = $mtree->readRootId(); } else { $expanded = $_GET["scexpand"]; } $exp->setExpand($expanded); $exp->forceExpandAll(true, false); $ilBench->stop("SCORMExplorer", "initExplorer"); // build html-output $ilBench->start("SCORMExplorer", "setOutput"); $exp->setOutput(0); $ilBench->stop("SCORMExplorer", "setOutput"); $ilBench->start("SCORMExplorer", "getOutput"); $output = $exp->getOutput(); $ilBench->stop("SCORMExplorer", "getOutput"); $this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation()); $this->tpl->addBlockFile("CONTENT", "content", "tpl.sahs_explorer.html", "content"); //$this->tpl->setVariable("TXT_EXPLORER_HEADER", $this->lng->txt("cont_content")); $this->tpl->setVariable("EXP_REFRESH", $this->lng->txt("refresh")); $this->tpl->setVariable("EXPLORER",$output); $this->tpl->setVariable("ACTION", "sahs_presentation.php?cmd=".$_GET["cmd"]."&frame=".$_GET["frame"]. "&ref_id=".$this->slm->getRefId()."&scexpand=".$_GET["scexpand"]); $this->tpl->parseCurrentBlock(); $this->tpl->show(); }
ilSCORMPresentationGUI::finishSahs | ( | ) |
Definition at line 448 of file class.ilSCORMPresentationGUI.php.
References $_GET, $lng, ilUtil::getImagePath(), and ilUtil::getStyleSheetLocation().
{ global $lng; $this->tpl = new ilTemplate("tpl.sahs_finish_cbt.html", true, true, true); $this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation()); $this->tpl->setCurrentBlock("switch_icon"); $this->tpl->setVariable("SCO_ID", $_GET["sahs_id"]); $this->tpl->setVariable("SCO_ICO", ilUtil::getImagePath( "scorm/".str_replace(" ", "_", $_GET["status"]).'.gif') ); $this->tpl->setVariable("SCO_ALT", $lng->txt("cont_status").": " .$lng->txt("cont_sc_stat_".str_replace(" ", "_", $_GET["status"])).", " .$lng->txt("cont_total_time"). ": " .$_GET["totime"] ); $this->tpl->setVariable("SCO_LAUNCH_ID", $_GET["launch"]); $this->tpl->parseCurrentBlock(); $this->tpl->show(); }
ilSCORMPresentationGUI::frameset | ( | ) |
Output main frameset.
If only one SCO/Asset is given, it is displayed without the table of contents explorer frame on the left.
Definition at line 101 of file class.ilSCORMPresentationGUI.php.
References ilSCORMObject::_lookupPresentableItems(), and exit.
{ //echo "h".strtolower(get_class($this->slm))."h"; include_once("content/classes/SCORM/class.ilSCORMObject.php"); $items = ilSCORMObject::_lookupPresentableItems($this->slm->getId()); if (count($items) > 1 || strtolower(get_class($this->slm)) == "ilobjaicclearningmodule" || strtolower(get_class($this->slm)) == "ilobjhacplearningmodule") { $this->ctrl->setParameter($this, "expand", "1"); $exp_link = $this->ctrl->getLinkTarget($this, "explorer"); $this->tpl = new ilTemplate("tpl.sahs_pres_frameset.html", false, false, "content"); $this->tpl->setVariable("EXPLORER_LINK", $exp_link); $api_link = $this->ctrl->getLinkTarget($this, "api"); $this->tpl->setVariable("API_LINK", $api_link); $pres_link = $this->ctrl->getLinkTarget($this, "view"); $this->tpl->setVariable("PRESENTATION_LINK", $pres_link); $this->tpl->show("DEFAULT", false); } else if (count($items) == 1) { //$this->ctrl->setParameter($this, "expand", "1"); //$exp_link = $this->ctrl->getLinkTarget($this, "explorer"); $this->tpl = new ilTemplate("tpl.sahs_pres_frameset_one_page.html", false, false, "content"); //$this->tpl->setVariable("EXPLORER_LINK", $exp_link); $this->ctrl->setParameter($this, "autolaunch", $items[0]); $api_link = $this->ctrl->getLinkTarget($this, "api"); $this->tpl->setVariable("API_LINK", $api_link); $pres_link = $this->ctrl->getLinkTarget($this, "view"); $this->tpl->setVariable("PRESENTATION_LINK", $pres_link); $this->tpl->show("DEFAULT", false); } exit; }
ilSCORMPresentationGUI::ilSCORMPresentationGUI | ( | ) |
Definition at line 46 of file class.ilSCORMPresentationGUI.php.
ilSCORMPresentationGUI::launchAsset | ( | ) |
Definition at line 479 of file class.ilSCORMPresentationGUI.php.
References $_GET, $_POST, and $ref_id.
{ global $ilUser, $ilDB; $sco_id = ($_GET["asset_id"] == "") ? $_POST["asset_id"] : $_GET["asset_id"]; $ref_id = ($_GET["ref_id"] == "") ? $_POST["ref_id"] : $_GET["ref_id"]; $this->slm =& new ilObjSCORMLearningModule($ref_id, true); include_once("content/classes/SCORM/class.ilSCORMItem.php"); include_once("content/classes/SCORM/class.ilSCORMResource.php"); $item =& new ilSCORMItem($sco_id); $id_ref = $item->getIdentifierRef(); $resource =& new ilSCORMResource(); $resource->readByIdRef($id_ref, $item->getSLMId()); $href = $resource->getHref(); $this->tpl->setVariable("HREF", $this->slm->getDataDirectory("output")."/".$href); $this->tpl = new ilTemplate("tpl.scorm_launch_asset.html", true, true, true); $this->tpl->setVariable("HREF", $this->slm->getDataDirectory("output")."/".$href); $this->tpl->show(); }
ilSCORMPresentationGUI::launchSahs | ( | ) |
This function is called by the API applet in the content frame when a SCO is started.
Reimplemented in ilAICCPresentationGUI, and ilHACPPresentationGUI.
Definition at line 258 of file class.ilSCORMPresentationGUI.php.
References $_GET, $_POST, $lng, $query, $ref_id, _lookupObjId(), ilSCORMObject::_lookupPresentableItems(), ilUtil::getImagePath(), setArray(), and setSingleVariable().
{ global $ilUser, $ilDB; $sco_id = ($_GET["sahs_id"] == "") ? $_POST["sahs_id"] : $_GET["sahs_id"]; $ref_id = ($_GET["ref_id"] == "") ? $_POST["ref_id"] : $_GET["ref_id"]; $this->slm =& new ilObjSCORMLearningModule($ref_id, true); include_once("content/classes/SCORM/class.ilSCORMItem.php"); include_once("content/classes/SCORM/class.ilSCORMResource.php"); $item =& new ilSCORMItem($sco_id); $id_ref = $item->getIdentifierRef(); $resource =& new ilSCORMResource(); $resource->readByIdRef($id_ref, $item->getSLMId()); //$slm_obj =& new ilObjSCORMLearningModule($_GET["ref_id"]); $href = $resource->getHref(); $this->tpl = new ilTemplate("tpl.sahs_launch_cbt.html", true, true, true); $this->tpl->setVariable("HREF", $this->slm->getDataDirectory("output")."/".$href); // set item data $this->tpl->setVariable("LAUNCH_DATA", $item->getDataFromLms()); $this->tpl->setVariable("MAST_SCORE", $item->getMasteryScore()); $this->tpl->setVariable("MAX_TIME", $item->getMaxTimeAllowed()); $this->tpl->setVariable("LIMIT_ACT", $item->getTimeLimitAction()); // set alternative API name if ($this->slm->getAPIAdapterName() != "API") { $this->tpl->setCurrentBlock("alt_api_ref"); $this->tpl->setVariable("API_NAME", $this->slm->getAPIAdapterName()); $this->tpl->parseCurrentBlock(); } $query = "SELECT * FROM scorm_tracking WHERE". " user_id = ".$ilDB->quote($ilUser->getId()). " AND sco_id = ".$ilDB->quote($sco_id); $val_set = $ilDB->query($query); $re_value = array(); while($val_rec = $val_set->fetchRow(DB_FETCHMODE_ASSOC)) { $val_rec["rvalue"] = str_replace("\r\n", "\n", $val_rec["rvalue"]); $val_rec["rvalue"] = str_replace("\r", "\n", $val_rec["rvalue"]); $val_rec["rvalue"] = str_replace("\n", "\\n", $val_rec["rvalue"]); $re_value[$val_rec["lvalue"]] = $val_rec["rvalue"]; } foreach($re_value as $var => $value) { switch ($var) { case "cmi.core.lesson_location": case "cmi.core.lesson_status": case "cmi.core.entry": case "cmi.core.score.raw": case "cmi.core.score.max": case "cmi.core.score.min": case "cmi.core.total_time": case "cmi.core.exit": case "cmi.suspend_data": case "cmi.comments": case "cmi.student_preference.audio": case "cmi.student_preference.language": case "cmi.student_preference.speed": case "cmi.student_preference.text": $this->setSingleVariable($var, $value); break; case "cmi.objectives._count": $this->setSingleVariable($var, $value); $this->setArray("cmi.objectives", $value, "id", $re_value); $this->setArray("cmi.objectives", $value, "score.raw", $re_value); $this->setArray("cmi.objectives", $value, "score.max", $re_value); $this->setArray("cmi.objectives", $value, "score.min", $re_value); $this->setArray("cmi.objectives", $value, "status", $re_value); break; case "cmi.interactions._count": $this->setSingleVariable($var, $value); $this->setArray("cmi.interactions", $value, "id", $re_value); for($i=0; $i<$value; $i++) { $var2 = "cmi.interactions.".$i.".objectives._count"; if (isset($v_array[$var2])) { $cnt = $v_array[$var2]; $this->setArray("cmi.interactions.".$i.".objectives", $cnt, "id", $re_value); /* $this->setArray("cmi.interactions.".$i.".objectives", $cnt, "score.raw", $re_value); $this->setArray("cmi.interactions.".$i.".objectives", $cnt, "score.max", $re_value); $this->setArray("cmi.interactions.".$i.".objectives", $cnt, "score.min", $re_value); $this->setArray("cmi.interactions.".$i.".objectives", $cnt, "status", $re_value);*/ } } $this->setArray("cmi.interactions", $value, "time", $re_value); $this->setArray("cmi.interactions", $value, "type", $re_value); for($i=0; $i<$value; $i++) { $var2 = "cmi.interactions.".$i.".correct_responses._count"; if (isset($v_array[$var2])) { $cnt = $v_array[$var2]; $this->setArray("cmi.interactions.".$i.".correct_responses", $cnt, "pattern", $re_value); $this->setArray("cmi.interactions.".$i.".correct_responses", $cnt, "weighting", $re_value); } } $this->setArray("cmi.interactions", $value, "student_response", $re_value); $this->setArray("cmi.interactions", $value, "result", $re_value); $this->setArray("cmi.interactions", $value, "latency", $re_value); break; } } global $lng; $this->tpl->setCurrentBlock("switch_icon"); $this->tpl->setVariable("SCO_ID", $_GET["sahs_id"]); $this->tpl->setVariable("SCO_ICO", ilUtil::getImagePath("scorm/running.gif")); $this->tpl->setVariable("SCO_ALT", $lng->txt("cont_status").": " .$lng->txt("cont_sc_stat_running") ); $this->tpl->parseCurrentBlock(); // set icon, if more than one SCO/Asset is presented $items = ilSCORMObject::_lookupPresentableItems($this->slm->getId()); if (count($items) > 1 || strtolower(get_class($this->slm)) == "ilobjaicclearningmodule" || strtolower(get_class($this->slm)) == "ilobjhacplearningmodule") { $this->tpl->setVariable("SWITCH_ICON_CMD", "switch_icon();"); } // lesson mode $lesson_mode = $this->slm->getDefaultLessonMode(); if ($this->slm->getAutoReview()) { if ($re_value["cmi.core.lesson_status"] == "completed" || $re_value["cmi.core.lesson_status"] == "passed" || $re_value["cmi.core.lesson_status"] == "failed") { $lesson_mode = "review"; } } $this->tpl->setVariable("LESSON_MODE", $lesson_mode); // credit mode if ($lesson_mode == "normal") { $this->tpl->setVariable("CREDIT_MODE", str_replace("_", "-", $this->slm->getCreditMode())); } else { $this->tpl->setVariable("CREDIT_MODE", "no-credit"); } // init cmi.core.total_time, cmi.core.lesson_status and cmi.core.entry $sahs_obj_id = ilObject::_lookupObjId($_GET["ref_id"]); if (!isset($re_value["cmi.core.total_time"])) { $item->insertTrackData("cmi.core.total_time", "0000:00:00", $sahs_obj_id); } if (!isset($re_value["cmi.core.lesson_status"])) { $item->insertTrackData("cmi.core.lesson_status", "not attempted", $sahs_obj_id); } if (!isset($re_value["cmi.core.entry"])) { $item->insertTrackData("cmi.core.entry", "", $sahs_obj_id); } $this->tpl->show(); //echo htmlentities($this->tpl->get()); exit; }
ilSCORMPresentationGUI::setArray | ( | $ | a_left, | |
$ | a_value, | |||
$ | a_name, | |||
&$ | v_array | |||
) |
set single value
Definition at line 521 of file class.ilSCORMPresentationGUI.php.
Referenced by launchSahs(), ilHACPPresentationGUI::launchSahs(), and ilAICCPresentationGUI::launchSahs().
{ for($i=0; $i<$a_value; $i++) { $var = $a_left.".".$i.".".$a_name; if (isset($v_array[$var])) { $this->tpl->setCurrentBlock("set_value"); $this->tpl->setVariable("VAR", $var); $this->tpl->setVariable("VALUE", $v_array[$var]); $this->tpl->parseCurrentBlock(); } } }
ilSCORMPresentationGUI::setSingleVariable | ( | $ | a_var, | |
$ | a_value | |||
) |
set single value
Definition at line 510 of file class.ilSCORMPresentationGUI.php.
Referenced by launchSahs(), ilHACPPresentationGUI::launchSahs(), and ilAICCPresentationGUI::launchSahs().
{ $this->tpl->setCurrentBlock("set_value"); $this->tpl->setVariable("VAR", $a_var); $this->tpl->setVariable("VALUE", $a_value); $this->tpl->parseCurrentBlock(); }
ilSCORMPresentationGUI::unloadSahs | ( | ) |
Definition at line 470 of file class.ilSCORMPresentationGUI.php.
References $_GET, and ilUtil::getStyleSheetLocation().
{ $this->tpl = new ilTemplate("tpl.sahs_unload_cbt.html", true, true, true); $this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation()); $this->tpl->setVariable("SCO_ID", $_GET["sahs_id"]); $this->tpl->show(); }
ilSCORMPresentationGUI::view | ( | ) |
SCORM content screen.
Reimplemented in ilAICCPresentationGUI.
Definition at line 196 of file class.ilSCORMPresentationGUI.php.
References $_GET, ilSCORMObjectGUI::getInstance(), and ilUtil::getStyleSheetLocation().
{ $sc_gui_object =& ilSCORMObjectGUI::getInstance($_GET["obj_id"]); if(is_object($sc_gui_object)) { $sc_gui_object->view(); } $this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation()); $this->tpl->show(false); }
ilSCORMPresentationGUI::$ilias |
Reimplemented in ilAICCPresentationGUI, and ilHACPPresentationGUI.
Definition at line 41 of file class.ilSCORMPresentationGUI.php.
Referenced by api(), and ilSCORMPresentationGUI().
ilSCORMPresentationGUI::$lng |
Reimplemented in ilAICCPresentationGUI, and ilHACPPresentationGUI.
Definition at line 44 of file class.ilSCORMPresentationGUI.php.
Referenced by finishSahs(), ilSCORMPresentationGUI(), and launchSahs().
ilSCORMPresentationGUI::$slm |
Reimplemented in ilAICCPresentationGUI, and ilHACPPresentationGUI.
Definition at line 42 of file class.ilSCORMPresentationGUI.php.
ilSCORMPresentationGUI::$tpl |
Reimplemented in ilAICCPresentationGUI, and ilHACPPresentationGUI.
Definition at line 43 of file class.ilSCORMPresentationGUI.php.
Referenced by ilSCORMPresentationGUI().