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;
90 $tpl =
new ilTemplate(
"tpl.tree.html",
true,
true,
"Services/UIComponent/Explorer");
92 $tpl->setCurrentBlock(
"row");
93 $tpl->setVariable(
"TITLE", $lng->txt(
"cont_manifest"));
94 $tpl->setVariable(
"LINK_TARGET", $this->target .
"&" . $this->target_get .
"=" . $a_obj_id);
95 $tpl->setVariable(
"TARGET",
" target=\"" . $this->frame_target .
"\"");
96 $tpl->parseCurrentBlock();
98 $this->output[] =
$tpl->get();
117 return $_SERVER[
"PATH_INFO"] .
"?cmd=explorer&ref_id=" . $this->slm_obj->getRefId() .
"&scexpand=" . $a_child;
124 public function setOutput($parent_id, $a_depth = 1, $a_obj_id = 0, $a_highlighted_subtree =
false)
138 $types_do_not_display =
array(
"sos",
"sma");
139 $types_do_not_load =
array(
"srs");
141 if (!isset($a_parent_id)) {
142 $this->
ilias->raiseError(get_class($this) .
"::setOutput(): No node_id given!", $this->
ilias->error_obj->WARNING);
149 foreach ($this->tree->getChilds($a_parent_id, $this->order_column) as
$key => $child) {
150 if (in_array($child[
"c_type"], $types_do_not_load)) {
155 $option[
"parent"] = $child[
"parent"];
156 $option[
"id"] = $child[
"child"];
157 $option[
"title"] = $child[
"title"];
158 $option[
"c_type"] = $child[
"c_type"];
159 $option[
"obj_id"] = $child[
"obj_id"];
160 $option[
"desc"] =
"obj_" . $child[
"c_type"];
161 $option[
"container"] =
false;
162 $option[
"visible"] = !in_array($child[
"c_type"], $types_do_not_display);
212 if ($option[
"visible"]) {
213 $tpl =
new ilTemplate(
"tpl.sahs_tree_ul.html",
true,
true,
"Modules/ScormAicc");
216 $tpl =
new ilTemplate(
"tpl.sahs_tree_free.html",
true,
true,
"Modules/ScormAicc");
219 if (count($option[
"childs"])) {
220 foreach ($option[
"childs"] as
$key => $ch_option) {
221 $tpl->setCurrentBlock(
"childs");
222 $tpl->setVariable(
"CHILDS", $this->
createOutput($ch_option, $jsApi)->
get());
223 $tpl->parseCurrentBlock();
243 if (is_object($a_obj)) {
248 if ($sc_object->getIdentifierRef() !=
"") {
266 if (!is_array($option) || !isset($option[
"id"])) {
267 $this->
ilias->raiseError(get_class($this) .
"::insertObject(): Missing parameter or wrong datatype! " .
268 "node_id: " . $a_node_id .
" options:" . var_dump($a_option), $this->
ilias->error_obj->WARNING);
273 $id_ref = $sc_object->getIdentifierRef();
282 $clickable = $this->
isClickable($option[
"c_type"], $option[
"id"], $sc_object);
284 if ($this->output_icons && $clickable) {
290 $frame_target = $this->
buildFrameTarget($option[
"c_type"], $option[
"id"], $option[
"obj_id"]);
291 if ($frame_target !=
"") {
293 $tpl->
setVariable(
"LINK_TARGET",
"javascript:void(0);");
294 if ($jsApi ==
true) {
295 $tpl->
setVariable(
"ONCLICK",
" onclick=\"parent.API.IliasLaunch('" . $option[
"id"] .
"');return false;\"");
297 $tpl->
setVariable(
"ONCLICK",
" onclick=\"parent.APIFRAME.setupApi();parent.APIFRAME.API." 298 . ($scormtype ==
'asset' ?
'IliasLaunchAsset' :
'IliasLaunchSahs')
299 .
"('" . $option[
"id"] .
"');return false;\"");
327 $tpl->setCurrentBlock(
"icon");
329 if ($scormtype ==
'asset') {
331 $tpl->setVariable(
'TXT_ALT_IMG',
'');
332 $tpl->parseCurrentBlock();
339 $this->slm_obj->getId()
343 $status = ($trdata[
"cmi.core.lesson_status"] ==
"")
345 : $trdata[
"cmi.core.lesson_status"];
347 $statusChar=strtolower(substr($status, 0, 1));
348 if ($statusChar==
"f") {
350 } elseif ($statusChar==
"b") {
352 } elseif ($statusChar==
"c") {
354 } elseif ($statusChar==
"n") {
355 $status=
"not_attempted";
356 } elseif ($statusChar==
"p") {
358 } elseif ($statusChar==
"r") {
362 $alt = $lng->txt(
"cont_status") .
": " .
363 $lng->txt(
"cont_sc_stat_" . str_replace(
" ",
"_", $status));
366 if ($trdata[
"cmi.core.score.raw"] !=
"") {
367 $alt.=
", " . $lng->txt(
"cont_credits") .
368 ": " . $trdata[
"cmi.core.score.raw"];
372 if ($trdata[
"cmi.core.total_time"] !=
"" &&
373 $trdata[
"cmi.core.total_time"] !=
"0000:00:00.00") {
374 $alt.=
", " . $lng->txt(
"cont_total_time") .
375 ": " . $trdata[
"cmi.core.total_time"];
378 $tpl->setVariable(
"ICON_NAME",
'scoIcon' . $a_node_id);
380 $tpl->setVariable(
"TXT_ALT_IMG", $alt);
381 $tpl->parseCurrentBlock();
if((!isset($_SERVER['DOCUMENT_ROOT'])) OR(empty($_SERVER['DOCUMENT_ROOT']))) $_SERVER['DOCUMENT_ROOT']
static shortenText( $a_str, $a_len, $a_dots=false, $a_next_blank=false, $a_keep_extension=false)
shorten a string to given length.
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
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
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...
if(!isset($_REQUEST['ReturnTo'])) if(!isset($_REQUEST['AuthId'])) $options
formatHeader($tpl, $a_obj_id, $a_option)
overwritten method from base class public
readRootId()
read root id from database