Class ilSCORMPresentationGUI. More...
Inheritance diagram for ilSCORMPresentationGUI: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 | |
Class ilSCORMPresentationGUI.
GUI class for scorm learning module presentation
Definition at line 39 of file class.ilSCORMPresentationGUI.php.
| ilSCORMPresentationGUI::api | ( | ) |
Definition at line 210 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, "Modules/ScormAicc");
// for scorm modules with only one presentable item: launch item
if ($_GET["autolaunch"] != "")
{
$this->tpl->setCurrentBlock("auto_launch");
include_once("./Modules/ScormAicc/classes/SCORM/class.ilSCORMItem.php");
include_once("./Modules/ScormAicc/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'], "/ilias.php")));
$this->tpl->parseCurrentBlock();
$this->tpl->show(false);
exit;
}
Here is the call graph for this function:| ilSCORMPresentationGUI::attrib2arr | ( | &$ | a_attributes | ) |
Definition at line 84 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, $ilias, $ilLog, and $lng.
{
global $ilAccess, $ilLog, $ilias, $lng;
$next_class = $this->ctrl->getNextClass($this);
$cmd = $this->ctrl->getCmd("frameset");
if (!$ilAccess->checkAccess("write", "", $_GET["ref_id"]) &&
(!$ilAccess->checkAccess("read", "", $_GET["ref_id"]) ||
!$this->slm->getOnline()))
{
$ilias->raiseError($lng->txt("permission_denied"), $ilias->error_obj->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 144 of file class.ilSCORMPresentationGUI.php.
References $_GET, $ilBench, $ilLog, and ilUtil::getStyleSheetLocation().
{
global $ilBench, $ilLog;
$ilBench->start("SCORMExplorer", "initExplorer");
$this->tpl = new ilTemplate("tpl.sahs_exp_main.html", true, true, "Modules/ScormAicc");
require_once("./Modules/ScormAicc/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", "Modules/ScormAicc");
//$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", "ilias.php?baseClass=ilSAHSPresentationGUI&cmd=".$_GET["cmd"]."&frame=".$_GET["frame"].
"&ref_id=".$this->slm->getRefId()."&scexpand=".$_GET["scexpand"]);
$this->tpl->parseCurrentBlock();
$this->tpl->show();
}
Here is the call graph for this function:| ilSCORMPresentationGUI::finishSahs | ( | ) |
Definition at line 449 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, "Modules/ScormAicc");
$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();
}
Here is the call graph for this function:| 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 103 of file class.ilSCORMPresentationGUI.php.
References ilSCORMObject::_lookupPresentableItems(), and exit.
{
//echo "h".strtolower(get_class($this->slm))."h";
include_once("./Modules/ScormAicc/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, "Modules/ScormAicc");
$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, "Modules/ScormAicc");
//$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;
}
Here is the call graph for this function:| ilSCORMPresentationGUI::ilSCORMPresentationGUI | ( | ) |
Definition at line 46 of file class.ilSCORMPresentationGUI.php.
| ilSCORMPresentationGUI::launchAsset | ( | ) |
Definition at line 480 of file class.ilSCORMPresentationGUI.php.
References $_GET, 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("./Modules/ScormAicc/classes/SCORM/class.ilSCORMItem.php");
include_once("./Modules/ScormAicc/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, "Modules/ScormAicc");
$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 259 of file class.ilSCORMPresentationGUI.php.
References $_GET, $lng, $ref_id, ilObject::_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("./Modules/ScormAicc/classes/SCORM/class.ilSCORMItem.php");
include_once("./Modules/ScormAicc/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, "Modules/ScormAicc");
$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).
" AND obj_id = ".$ilDB->quote($this->slm->getId());
$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;
}
Here is the call graph for this function:| ilSCORMPresentationGUI::setArray | ( | $ | a_left, | |
| $ | a_value, | |||
| $ | a_name, | |||
| &$ | v_array | |||
| ) |
set single value
Definition at line 522 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();
}
}
}
Here is the caller graph for this function:| ilSCORMPresentationGUI::setSingleVariable | ( | $ | a_var, | |
| $ | a_value | |||
| ) |
set single value
Definition at line 511 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();
}
Here is the caller graph for this function:| ilSCORMPresentationGUI::unloadSahs | ( | ) |
Definition at line 471 of file class.ilSCORMPresentationGUI.php.
References $_GET, and ilUtil::getStyleSheetLocation().
{
$this->tpl = new ilTemplate("tpl.sahs_unload_cbt.html", true, true, "Modules/ScormAicc");
$this->tpl->setVariable("LOCATION_STYLESHEET", ilUtil::getStyleSheetLocation());
$this->tpl->setVariable("SCO_ID", $_GET["sahs_id"]);
$this->tpl->show();
}
Here is the call graph for this function:| ilSCORMPresentationGUI::view | ( | ) |
SCORM content screen.
Reimplemented in ilAICCPresentationGUI.
Definition at line 197 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);
}
Here is the call graph for this function:| ilSCORMPresentationGUI::$ilias |
Reimplemented in ilAICCPresentationGUI, and ilHACPPresentationGUI.
Definition at line 41 of file class.ilSCORMPresentationGUI.php.
Referenced by api(), executeCommand(), and ilSCORMPresentationGUI().
| ilSCORMPresentationGUI::$lng |
Reimplemented in ilAICCPresentationGUI, and ilHACPPresentationGUI.
Definition at line 44 of file class.ilSCORMPresentationGUI.php.
Referenced by executeCommand(), 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().
1.7.1