34 require_once(
"./Services/UIComponent/Explorer/classes/class.ilExplorer.php");
35 require_once(
"./Modules/ScormAicc/classes/SCORM/class.ilSCORMTree.php");
55 parent::__construct($a_target);
56 $this->slm_obj = $a_slm_obj;
87 $tpl =
new ilTemplate(
"tpl.tree.html",
true,
true,
"Services/UIComponent/Explorer");
89 $tpl->setCurrentBlock(
"row");
90 $tpl->setVariable(
"TITLE", $lng->txt(
"cont_manifest"));
91 $tpl->setVariable(
"LINK_TARGET", $this->target.
"&".$this->target_get.
"=".$a_obj_id);
92 $tpl->setVariable(
"TARGET",
" target=\"".$this->frame_target.
"\"");
93 $tpl->parseCurrentBlock();
95 $this->output[] =
$tpl->get();
114 return $_SERVER[
"PATH_INFO"].
"?cmd=explorer&ref_id=".$this->slm_obj->getRefId().
"&scexpand=".$a_child;
121 public function setOutput ($parent_id, $a_depth = 1, $a_obj_id = 0, $a_highlighted_subtree =
false) {
133 $types_do_not_display =
array(
"sos",
"sma");
134 $types_do_not_load =
array(
"srs");
136 if (!isset($a_parent_id))
138 $this->
ilias->raiseError(get_class($this).
"::setOutput(): No node_id given!",$this->
ilias->error_obj->WARNING);
146 foreach ($this->tree->getChilds($a_parent_id, $this->order_column) as $key => $child) {
147 if(in_array($child[
"c_type"], $types_do_not_load)) {
152 $option[
"parent"] = $child[
"parent"];
153 $option[
"id"] = $child[
"child"];
154 $option[
"title"] = $child[
"title"];
155 $option[
"c_type"] = $child[
"c_type"];
156 $option[
"obj_id"] = $child[
"obj_id"];
157 $option[
"desc"] =
"obj_".$child[
"c_type"];
158 $option[
"container"] =
false;
159 $option[
"visible"] = !in_array($child[
"c_type"], $types_do_not_display);
211 if ($option[
"visible"]) {
212 $tpl =
new ilTemplate(
"tpl.sahs_tree_ul.html",
true,
true,
"Modules/ScormAicc");
215 $tpl =
new ilTemplate(
"tpl.sahs_tree_free.html",
true,
true,
"Modules/ScormAicc");
218 if (count($option[
"childs"])) {
219 foreach ($option[
"childs"] as $key => $ch_option) {
220 $tpl->setCurrentBlock(
"childs");
221 $tpl->setVariable(
"CHILDS", $this->
createOutput($ch_option, $jsApi)->
get());
222 $tpl->parseCurrentBlock();
245 if (is_object($a_obj))
253 if ($sc_object->getIdentifierRef() !=
"")
271 if (!is_array($option) || !isset($option[
"id"])) {
272 $this->
ilias->raiseError(get_class($this).
"::insertObject(): Missing parameter or wrong datatype! ".
273 "node_id: ".$a_node_id.
" options:".var_dump($a_option),$this->
ilias->error_obj->WARNING);
278 $id_ref = $sc_object->getIdentifierRef();
287 $clickable = $this->
isClickable($option[
"c_type"], $option[
"id"], $sc_object);
289 if ($this->output_icons && $clickable) {
296 $frame_target = $this->
buildFrameTarget($option[
"c_type"], $option[
"id"], $option[
"obj_id"]);
297 if ($frame_target !=
"")
300 $tpl->
setVariable(
"LINK_TARGET",
"javascript:void(0);");
301 if ($jsApi ==
true) {
302 $tpl->
setVariable(
"ONCLICK",
" onclick=\"parent.API.IliasLaunch('".$option[
"id"].
"');return false;\"");
304 $tpl->
setVariable(
"ONCLICK",
" onclick=\"parent.APIFRAME.setupApi();parent.APIFRAME.API." 305 .($scormtype ==
'asset' ?
'IliasLaunchAsset' :
'IliasLaunchSahs')
306 .
"('".$option[
"id"].
"');return false;\"");
336 $tpl->setCurrentBlock(
"icon");
338 if ($scormtype ==
'asset')
341 $tpl->setVariable(
'TXT_ALT_IMG',
'');
342 $tpl->parseCurrentBlock();
347 $this->slm_obj->getId());
350 $status = ($trdata[
"cmi.core.lesson_status"] ==
"")
352 : $trdata[
"cmi.core.lesson_status"];
354 $statusChar=strtolower(substr($status,0,1));
355 if ($statusChar==
"f")
357 else if ($statusChar==
"b")
359 else if ($statusChar==
"c")
361 else if ($statusChar==
"n")
362 $status=
"not_attempted";
363 else if ($statusChar==
"p")
365 else if ($statusChar==
"r")
368 $alt = $lng->txt(
"cont_status").
": ".
369 $lng->txt(
"cont_sc_stat_".str_replace(
" ",
"_", $status));
372 if ($trdata[
"cmi.core.score.raw"] !=
"")
374 $alt.=
", ".$lng->txt(
"cont_credits").
375 ": ".$trdata[
"cmi.core.score.raw"];
379 if ($trdata[
"cmi.core.total_time"] !=
"" &&
380 $trdata[
"cmi.core.total_time"] !=
"0000:00:00.00")
382 $alt.=
", ".$lng->txt(
"cont_total_time").
383 ": ".$trdata[
"cmi.core.total_time"];
386 $tpl->setVariable(
"ICON_NAME",
'scoIcon'.$a_node_id);
388 $tpl->setVariable(
"TXT_ALT_IMG", $alt);
389 $tpl->parseCurrentBlock();
if((!isset($_SERVER['DOCUMENT_ROOT'])) OR(empty($_SERVER['DOCUMENT_ROOT']))) $_SERVER['DOCUMENT_ROOT']
buildFrameTarget($a_type, $a_child=0, $a_obj_id=0)
get frame target (may be overwritten by derived classes)
createTarget($a_type, $a_child, $a_highlighted_subtree=false, $a_append_anch=true)
Creates Get Parameter private.
insertObject($option, ilTemplate $tpl, $jsApi)
insert the option data in $tpl
static shortenText($a_str, $a_len, $a_dots=false, $a_next_blank=false, $a_keep_extension=false)
shorten a string to given length.
getOutput($jsApi=false)
Creates output template.
checkPermissions($a_check)
check permissions via rbac
getOutputIcons(&$tpl, $a_option, $a_node_id, $scormtype="sco")
tpl is filled with option state
setOrderColumn($a_column)
set the order column public
static _lookupIdByIdRef($a_id_ref, $a_slm_id)
static _lookupScormType($a_obj_id)
createOutputArray($a_parent_id, $options=array())
recursivi creating of outputs
setVariable($variable, $value='')
Sets a variable value.
setOutput($parent_id, $a_depth=1, $a_obj_id=0, $a_highlighted_subtree=false)
possible output array is set
if(!is_array($argv)) $options
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
special template class to simplify handling of ITX/PEAR
showChilds($a_parent_id)
determines wether the childs of an object should be shown or not note: this standard implementation a...
redirection script todo: (a better solution should control the processing via a xml file) ...
Explorer View for SCORM Learning Modules.
isClickable($a_type, $a_id=0, $a_obj=0)
can i click on the module name
isVisible($a_id, $a_type)
Create styles array
The data for the language used.
Class ilExplorer class for explorer view in admin frame.
setCurrentBlock($part="DEFAULT")
Überladene Funktion, die sich hier lokal noch den aktuellen Block merkt.
createOutput($option, $jsApi)
recursive creation of output templates
__construct($a_target, &$a_slm_obj)
Constructor public.
static _lookupTrackingDataOfUser($a_item_id, $a_user_id=0, $a_obj_id=0)
outputIcons($a_icons)
output icons
parseCurrentBlock($part="DEFAULT")
Überladene Funktion, die auf den aktuelle Block vorher noch ein replace ausführt public...
formatHeader($tpl, $a_obj_id, $a_option)
overwritten method from base class public
readRootId()
read root id from database