34require_once(
"./Services/UIComponent/Explorer/classes/class.ilExplorer.php");
 
   35require_once(
"./Modules/ScormAicc/classes/SCORM/class.ilSCORMTree.php");
 
   55        parent::__construct($a_target);
 
   56        $this->slm_obj = $a_slm_obj;
 
   58        $this->root_id = $this->tree->readRootId();
 
   90        $ilias = 
$DIC[
'ilias'];
 
   92        $tpl = 
new ilTemplate(
"tpl.tree.html", 
true, 
true, 
"Services/UIComponent/Explorer");
 
   94        $tpl->setCurrentBlock(
"row");
 
   95        $tpl->setVariable(
"TITLE", 
$lng->txt(
"cont_manifest"));
 
   96        $tpl->setVariable(
"LINK_TARGET", $this->target . 
"&" . $this->target_get . 
"=" . $a_obj_id);
 
   97        $tpl->setVariable(
"TARGET", 
" target=\"" . $this->frame_target . 
"\"");
 
   98        $tpl->parseCurrentBlock();
 
  100        $this->output[] = 
$tpl->get();
 
  119        return $_SERVER[
"PATH_INFO"] . 
"?cmd=explorer&ref_id=" . $this->slm_obj->getRefId() . 
"&scexpand=" . $a_child;
 
  126    public function setOutput($parent_id, $a_depth = 1, $a_obj_id = 0, $a_highlighted_subtree = 
false)
 
  140        $types_do_not_display = array(
"sos", 
"sma");
 
  141        $types_do_not_load = array(
"srs");
 
  143        if (!isset($a_parent_id)) {
 
  144            $this->
ilias->raiseError(get_class($this) . 
"::setOutput(): No node_id given!", $this->
ilias->error_obj->WARNING);
 
  151        foreach ($this->tree->getChilds($a_parent_id, $this->order_column) as 
$key => $child) {
 
  152            if (in_array($child[
"c_type"], $types_do_not_load)) {
 
  157            $option[
"parent"] = $child[
"parent"];
 
  158            $option[
"id"] = $child[
"child"];
 
  159            $option[
"title"] = $child[
"title"];
 
  160            $option[
"c_type"] = $child[
"c_type"];
 
  161            $option[
"obj_id"] = $child[
"obj_id"];
 
  162            $option[
"desc"] = 
"obj_" . $child[
"c_type"];
 
  163            $option[
"container"] = 
false;
 
  164            $option[
"visible"] = !in_array($child[
"c_type"], $types_do_not_display);
 
  215        if ($option[
"visible"]) {
 
  216            $tpl = 
new ilTemplate(
"tpl.sahs_tree_ul.html", 
true, 
true, 
"Modules/ScormAicc");
 
  219            $tpl = 
new ilTemplate(
"tpl.sahs_tree_free.html", 
true, 
true, 
"Modules/ScormAicc");
 
  222        if (is_array($option[
"childs"]) && count($option[
"childs"])) {
 
  223            foreach ($option[
"childs"] as 
$key => $ch_option) {
 
  224                $tpl->setCurrentBlock(
"childs");
 
  225                $tpl->setVariable(
"CHILDS", $this->
createOutput($ch_option, $jsApi)->
get());
 
  226                $tpl->parseCurrentBlock();
 
  246            if (is_object($a_obj)) {
 
  251            if ($sc_object->getIdentifierRef() != 
"") {
 
  269        if (!is_array($option) || !isset($option[
"id"])) {
 
  270            $this->
ilias->raiseError(get_class($this) . 
"::insertObject(): Missing parameter or wrong datatype! " .
 
  271                                    "options:" . var_dump($option), $this->
ilias->error_obj->WARNING);
 
  276        $id_ref = $sc_object->getIdentifierRef();
 
  285        $clickable = $this->
isClickable($option[
"c_type"], $option[
"id"], $sc_object);
 
  287        if ($this->output_icons && $clickable) {
 
  292            $tpl->setCurrentBlock(
"link");
 
  293            $frame_target = $this->
buildFrameTarget($option[
"c_type"], $option[
"id"], $option[
"obj_id"]);
 
  294            if ($frame_target != 
"") {
 
  296                $tpl->setVariable(
"LINK_TARGET", 
"javascript:void(0);");
 
  297                if ($jsApi == 
true) {
 
  298                    $tpl->setVariable(
"ONCLICK", 
" onclick=\"parent.API.IliasLaunch('" . $option[
"id"] . 
"');return false;\"");
 
  300                    $tpl->setVariable(
"ONCLICK", 
" onclick=\"parent.APIFRAME.setupApi();parent.APIFRAME.API." 
  301                        . ($scormtype == 
'asset' ? 
'IliasLaunchAsset' : 
'IliasLaunchSahs')
 
  302                        . 
"('" . $option[
"id"] . 
"');return false;\"");
 
  305            $tpl->parseCurrentBlock();
 
  307            $tpl->setCurrentBlock(
"text");
 
  309            $tpl->parseCurrentBlock();
 
  312        $tpl->setCurrentBlock(
"li");
 
  313        $tpl->parseCurrentBlock();
 
  331        $tpl->setCurrentBlock(
"icon");
 
  333        if ($scormtype == 
'asset') {
 
  335            $tpl->setVariable(
'TXT_ALT_IMG', 
'');
 
  336            $tpl->parseCurrentBlock();
 
  343            $this->slm_obj->getId()
 
  347        $status = ($trdata[
"cmi.core.lesson_status"] == 
"")
 
  349                : $trdata[
"cmi.core.lesson_status"];
 
  351        $statusChar = strtolower(substr($status, 0, 1));
 
  352        if ($statusChar == 
"f") {
 
  354        } elseif ($statusChar == 
"b") {
 
  356        } elseif ($statusChar == 
"c") {
 
  357            $status = 
"completed";
 
  358        } elseif ($statusChar == 
"n") {
 
  359            $status = 
"not_attempted";
 
  360        } elseif ($statusChar == 
"p") {
 
  362        } elseif ($statusChar == 
"r") {
 
  366        $alt = 
$lng->txt(
"cont_status") . 
": " .
 
  367                $lng->txt(
"cont_sc_stat_" . str_replace(
" ", 
"_", $status));
 
  370        if ($trdata[
"cmi.core.score.raw"] != 
"") {
 
  371            $alt .= 
", " . 
$lng->txt(
"cont_credits") .
 
  372                ": " . $trdata[
"cmi.core.score.raw"];
 
  376        if ($trdata[
"cmi.core.total_time"] != 
"" &&
 
  377                $trdata[
"cmi.core.total_time"] != 
"0000:00:00.00") {
 
  378            $alt .= 
", " . 
$lng->txt(
"cont_total_time") .
 
  379                ": " . $trdata[
"cmi.core.total_time"];
 
  382        $tpl->setVariable(
"ICON_NAME", 
'scoIcon' . $a_node_id);
 
  384        $tpl->setVariable(
"TXT_ALT_IMG", $alt);
 
  385        $tpl->parseCurrentBlock();
 
An exception for terminatinating execution or to throw for unit testing.
Class ilExplorer class for explorer view in admin frame.
showChilds($a_parent_id)
determines wether the childs of an object should be shown or not note: this standard implementation a...
outputIcons($a_icons)
output icons
checkPermissions($a_check)
check permissions via rbac
buildFrameTarget($a_type, $a_child=0, $a_obj_id=0)
get frame target (may be overwritten by derived classes)
setOrderColumn($a_column)
set the order column @access public
Explorer View for SCORM Learning Modules.
setOutput($parent_id, $a_depth=1, $a_obj_id=0, $a_highlighted_subtree=false)
possible output array is set
createOutput($option, $jsApi)
recursive creation of output templates
createOutputArray($a_parent_id, $options=array())
recursivi creating of outputs
getOutput($jsApi=false)
Creates output template.
isVisible($a_id, $a_type)
formatHeader($tpl, $a_obj_id, $a_option)
overwritten method from base class @access public
isClickable($a_type, $a_id=0, $a_obj=0)
can i click on the module name
__construct($a_target, &$a_slm_obj)
Constructor @access public.
insertObject($option, ilTemplate $tpl, $jsApi)
insert the option data in $tpl
getOutputIcons(&$tpl, $a_option, $a_node_id, $scormtype="sco")
tpl is filled with option state
createTarget($a_type, $a_child, $a_highlighted_subtree=false, $a_append_anch=true)
Creates Get Parameter @access private.
static _lookupTrackingDataOfUser($a_item_id, $a_user_id=0, $a_obj_id=0)
static _lookupIdByIdRef($a_id_ref, $a_slm_id)
static _lookupScormType($a_obj_id)
special template class to simplify handling of ITX/PEAR
static shortenText( $a_str, $a_len, $a_dots=false, $a_next_blank=false, $a_keep_extension=false)
shorten a string to given length.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
redirection script todo: (a better solution should control the processing via a xml file)
if((!isset($_SERVER['DOCUMENT_ROOT'])) OR(empty($_SERVER['DOCUMENT_ROOT']))) $_SERVER['DOCUMENT_ROOT']