ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
ilSCORMExplorer Class Reference

Explorer View for SCORM Learning Modules. More...

+ Inheritance diagram for ilSCORMExplorer:
+ Collaboration diagram for ilSCORMExplorer:

Public Member Functions

 __construct ($a_target, &$a_slm_obj)
 Constructor public. More...
 
 getItem ($a_node_id)
 
 getIconImagePathPrefix ()
 
 getNodesToSkip ()
 
 formatHeader ($tpl, $a_obj_id, $a_option)
 overwritten method from base class public More...
 
 createTarget ($a_type, $a_child, $a_highlighted_subtree=false, $a_append_anch=true)
 Creates Get Parameter private. More...
 
 setOutput ($parent_id, $a_depth=1, $a_obj_id=0, $a_highlighted_subtree=false)
 possible output array is set More...
 
 isVisible ($a_id, $a_type)
 
 getOutput ($jsApi=false)
 Creates output template. More...
 
 createOutput ($option, $jsApi)
 recursive creation of output templates More...
 
 isClickable ($a_type, $a_id=0, $a_obj=0)
 can i click on the module name More...
 
 getOutputIcons (&$tpl, $a_option, $a_node_id, $scormtype="sco")
 tpl is filled with option state More...
 
- Public Member Functions inherited from ilExplorer
 __construct ($a_target)
 Constructor public. More...
 
 setId ($a_val)
 Set id. More...
 
 getId ()
 Get id. More...
 
 setAsynchExpanding ($a_val)
 Set asynch expanding. More...
 
 getAsynchExpanding ()
 Get asynch expanding. More...
 
 initItemCounter ($a_number)
 Init item counter. More...
 
 setTitle ($a_val)
 Set title. More...
 
 setTitleLength ($a_length)
 Set max title length. More...
 
 getTitleLength ()
 Get max title length. More...
 
 getTitle ()
 Get title. More...
 
 setRoot ($a_root_id)
 Set root node. More...
 
 getRoot ()
 get root id More...
 
 setOrderColumn ($a_column)
 set the order column public More...
 
 setOrderDirection ($a_direction)
 set the order direction public More...
 
 setTargetGet ($a_target_get)
 set the varname in Get-string public More...
 
 setParamsGet ($a_params_get)
 set additional params to be passed in Get-string public More...
 
 setExpandTarget ($a_exp_target)
 target script for expand icons More...
 
 setFrameUpdater ($a_up_frame, $a_up_script, $a_params="")
 Set Explorer Updater. More...
 
 highlightNode ($a_id)
 set highlighted node More...
 
 checkPermissions ($a_check)
 check permissions via rbac More...
 
 setSessionExpandVariable ($a_var_name="expand")
 set name of expand session variable More...
 
 outputIcons ($a_icons)
 output icons More...
 
 setClickable ($a_type, $a_clickable)
 (de-)activates links for a certain object type More...
 
 isVisible ($a_ref_id, $a_type)
 
 setTreeLead ($a_val)
 Set tree leading content. More...
 
 getTreeLead ()
 Get tree leading content. More...
 
 isClickable ($a_type, $a_ref_id=0)
 check if links for certain object type are activated More...
 
 setPostSort ($a_sort)
 process post sorting More...
 
 setFilterMode ($a_mode=IL_FM_NEGATIVE)
 set filter mode More...
 
 getFilterMode ()
 get filter mode More...
 
 setUseStandardFrame ($a_val)
 Set use standard frame. More...
 
 getUseStandardFrame ()
 Get use standard explorer frame. More...
 
 getChildsOfNode ($a_parent_id)
 Get childs of node. More...
 
 setOutput ($a_parent_id, $a_depth=1, $a_obj_id=0, $a_highlighted_subtree=false)
 Creates output for explorer view in admin menue recursive method public. More...
 
 modifyChilds ($a_parent_id, $a_objects)
 
 showChilds ($a_parent_id)
 determines wether the childs of an object should be shown or not note: this standard implementation always returns true but it could be overwritten by derived classes (e.g. More...
 
 forceExpanded ($a_obj_id)
 force expansion of node More...
 
 getMaximumTreeDepth ()
 Get maximum tree depth. More...
 
 getOutput ()
 Creates output recursive method public. More...
 
 handleListEndTags (&$a_tpl_tree, $a_cur_depth, $a_item_depth)
 handle list end tags ( and ) More...
 
 handleListStartTags (&$a_tpl_tree, $a_cur_depth, $a_item_depth)
 handle list start tags ( More...
 
 formatHeader ($tpl, $a_obj_id, $a_option)
 Creates output for header (is empty here but can be overwritten in derived classes) More...
 
 formatObject ($tpl, $a_node_id, $a_option, $a_obj_id=0)
 Creates output recursive method private. More...
 
 getImage ($a_name, $a_type="", $a_obj_id="")
 get image path (may be overwritten by derived classes) More...
 
 getImageAlt ($a_default_text, $a_type="", $a_obj_id="")
 get image alt text More...
 
 getNodeStyleClass ($a_id, $a_type)
 get style class for node More...
 
 buildLinkTarget ($a_node_id, $a_type)
 get link target (may be overwritten by derived classes) More...
 
 buildOnClick ($a_node_id, $a_type, $a_title)
 get onclick event handling (may be overwritten by derived classes) More...
 
 buildTitle ($a_title, $a_id, $a_type)
 standard implementation for title, may be overwritten by derived classes More...
 
 buildDescription ($a_desc, $a_id, $a_type)
 standard implementation for description, may be overwritten by derived classes More...
 
 buildSelect ($a_node_id, $a_type)
 standard implementation for adding an option select box between image and title More...
 
 buildFrameTarget ($a_type, $a_child=0, $a_obj_id=0)
 get frame target (may be overwritten by derived classes) More...
 
 createTarget ($a_type, $a_node_id, $a_highlighted_subtree=false, $a_append_anch=true)
 Creates Get Parameter private. More...
 
 setFrameTarget ($a_target)
 set target frame or not frame? More...
 
 createLines ($a_depth)
 Creates lines for explorer view private. More...
 
 is_in_array ($a_start, $a_depth)
 DESCRIPTION MISSING private. More...
 
 getIndex ($a_data)
 get index of format_options array from specific ref_id,parent_id private More...
 
 addFilter ($a_item)
 adds item to the filter public More...
 
 delFilter ($a_item)
 removes item from the filter public More...
 
 setExpand ($a_node_id)
 set the expand option this value is stored in a SESSION variable to save it different view (lo view, frm view,...) private More...
 
 forceExpandAll ($a_mode, $a_show_minus=true)
 force expandAll. More...
 
 setFiltered ($a_bool)
 active/deactivate the filter public More...
 
 checkFilter ($a_item)
 check if item is in filter private More...
 
 sortNodes ($a_nodes, $a_parent_obj_id)
 sort nodes and put adm object to the end of sorted array private More...
 

Data Fields

 $slm_obj
 
- Data Fields inherited from ilExplorer
 $id
 
 $ilias
 
 $output
 
 $format_options
 
 $tree
 
 $target
 
 $target_get
 
 $params_get
 
 $expanded
 
 $order_column
 
 $order_direction = "asc"
 
 $expand_target
 
 $rbac_check
 
 $output_icons
 
 $expand_variable
 
 $is_clickable
 
 $post_sort
 
 $filtered = false
 
 $filter_mode
 
 $expand_all = false
 
 $root_id = null
 
 $use_standard_frame = false
 

Protected Member Functions

 createOutputArray ($a_parent_id, $options=array())
 recursivi creating of outputs More...
 
 insertObject ($option, ilTemplate $tpl, $jsApi)
 insert the option data in $tpl More...
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilSCORMExplorer::__construct (   $a_target,
$a_slm_obj 
)

Constructor public.

Parameters
stringscriptname
intuser_id

Definition at line 53 of file class.ilSCORMExplorer.php.

References ilExplorer\checkPermissions(), ilExplorer\outputIcons(), ilTree\readRootId(), and ilExplorer\setOrderColumn().

54  {
55  parent::__construct($a_target);
56  $this->slm_obj = $a_slm_obj;
57  $this->tree = new ilSCORMTree($a_slm_obj->getId());
58  $this->root_id = $this->tree->readRootId();
59  $this->checkPermissions(false);
60  $this->outputIcons(true);
61  $this->setOrderColumn("");
62  }
checkPermissions($a_check)
check permissions via rbac
setOrderColumn($a_column)
set the order column public
SCORM Object Tree.
outputIcons($a_icons)
output icons
readRootId()
read root id from database
+ Here is the call graph for this function:

Member Function Documentation

◆ createOutput()

ilSCORMExplorer::createOutput (   $option,
  $jsApi 
)

recursive creation of output templates

Parameters
array$option
bool$jsApi
Returns
ilTemplate $tpl

Definition at line 208 of file class.ilSCORMExplorer.php.

References $ilBench, $tpl, and insertObject().

Referenced by getOutput().

208  {
209  global $ilBench;
210 
211  if ($option["visible"]) {
212  $tpl = new ilTemplate("tpl.sahs_tree_ul.html", true, true, "Modules/ScormAicc");
213  $tpl = $this->insertObject($option, $tpl, $jsApi);
214  } else {
215  $tpl = new ilTemplate("tpl.sahs_tree_free.html", true, true, "Modules/ScormAicc");
216  }
217 
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();
223  }
224  }
225 
226  return $tpl;
227  }
insertObject($option, ilTemplate $tpl, $jsApi)
insert the option data in $tpl
global $tpl
Definition: ilias.php:8
special template class to simplify handling of ITX/PEAR
createOutput($option, $jsApi)
recursive creation of output templates
global $ilBench
Definition: ilias.php:18
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createOutputArray()

ilSCORMExplorer::createOutputArray (   $a_parent_id,
  $options = array() 
)
protected

recursivi creating of outputs

Parameters
int$a_parent_id
array$optionsexisting output options
Returns
array $options

Definition at line 132 of file class.ilSCORMExplorer.php.

References $options, array, and ilExplorer\showChilds().

Referenced by setOutput().

132  {
133  $types_do_not_display = array("sos", "sma");
134  $types_do_not_load = array("srs");
135 
136  if (!isset($a_parent_id))
137  {
138  $this->ilias->raiseError(get_class($this)."::setOutput(): No node_id given!",$this->ilias->error_obj->WARNING);
139  }
140 
141  if (!$this->showChilds($a_parent_id))
142  {
143  return array();
144  }
145 
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)) {
148  continue;
149  }
150 
151  $option = array();
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);
160 
161  if($this->showChilds($option["id"])) {
162  $option = $this->createOutputArray($option["id"], $option, ++$depth);
163  }
164 
165  $options["childs"][] = $option;
166  }
167 
168  return $options;
169  }
createOutputArray($a_parent_id, $options=array())
recursivi creating of outputs
if(!is_array($argv)) $options
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) ...
Create styles array
The data for the language used.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createTarget()

ilSCORMExplorer::createTarget (   $a_type,
  $a_child,
  $a_highlighted_subtree = false,
  $a_append_anch = true 
)

Creates Get Parameter private.

Parameters
string
integer
Returns
string

Definition at line 105 of file class.ilSCORMExplorer.php.

References $_SERVER, and $a_type.

Referenced by ilAICCExplorer\formatObject().

106  {
107  // SET expand parameter:
108  // positive if object is expanded
109  // negative if object is compressed
110  $a_child = ($a_type == '+')
111  ? $a_child
112  : -(int) $a_child;
113 
114  return $_SERVER["PATH_INFO"]."?cmd=explorer&ref_id=".$this->slm_obj->getRefId()."&scexpand=".$a_child;
115  }
if((!isset($_SERVER['DOCUMENT_ROOT'])) OR(empty($_SERVER['DOCUMENT_ROOT']))) $_SERVER['DOCUMENT_ROOT']
$a_type
Definition: workflow.php:93
+ Here is the caller graph for this function:

◆ formatHeader()

ilSCORMExplorer::formatHeader (   $tpl,
  $a_obj_id,
  $a_option 
)

overwritten method from base class public

Parameters
integerobj_id
integerarray options

Definition at line 83 of file class.ilSCORMExplorer.php.

References ilExplorer\$ilias, $lng, and $tpl.

84  {
85  global $lng, $ilias;
86 
87  $tpl = new ilTemplate("tpl.tree.html", true, true, "Services/UIComponent/Explorer");
88 
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();
94 
95  $this->output[] = $tpl->get();
96  }
global $tpl
Definition: ilias.php:8
special template class to simplify handling of ITX/PEAR
global $lng
Definition: privfeed.php:17

◆ getIconImagePathPrefix()

ilSCORMExplorer::getIconImagePathPrefix ( )

Definition at line 68 of file class.ilSCORMExplorer.php.

Referenced by getOutputIcons().

68  {
69  return "scorm/";
70  }
+ Here is the caller graph for this function:

◆ getItem()

ilSCORMExplorer::getItem (   $a_node_id)

Definition at line 64 of file class.ilSCORMExplorer.php.

64  {
65  return new ilSCORMItem($a_node_id);
66  }
SCORM Item.

◆ getNodesToSkip()

ilSCORMExplorer::getNodesToSkip ( )

Definition at line 72 of file class.ilSCORMExplorer.php.

72  {
73  return 2;
74  }

◆ getOutput()

ilSCORMExplorer::getOutput (   $jsApi = false)

Creates output template.

public

Returns
string

Definition at line 193 of file class.ilSCORMExplorer.php.

References ilExplorer\$output, and createOutput().

194  {
195  $output = $this->createOutput($this->format_options, $jsApi);
196 
197  return $output->get();
198  }
createOutput($option, $jsApi)
recursive creation of output templates
+ Here is the call graph for this function:

◆ getOutputIcons()

ilSCORMExplorer::getOutputIcons ( $tpl,
  $a_option,
  $a_node_id,
  $scormtype = "sco" 
)

tpl is filled with option state

Parameters
ilTemplate$tpl
array$a_option
int$a_node_id
string$scormtype

Definition at line 332 of file class.ilSCORMExplorer.php.

References $lng, $tpl, ilSCORMItem\_lookupTrackingDataOfUser(), getIconImagePathPrefix(), and ilUtil\getImagePath().

Referenced by ilAICCExplorer\formatObject(), and insertObject().

333  {
334  global $lng;
335 
336  $tpl->setCurrentBlock("icon");
337 
338  if ($scormtype == 'asset')
339  {
340  $tpl->setVariable('ICON_IMAGE', ilUtil::getImagePath($this->getIconImagePathPrefix()."asset.svg"));
341  $tpl->setVariable('TXT_ALT_IMG', '');
342  $tpl->parseCurrentBlock();
343  return;
344  }
345 
346  $trdata = ilSCORMItem::_lookupTrackingDataOfUser($a_node_id, 0,
347  $this->slm_obj->getId());
348 
349  // status
350  $status = ($trdata["cmi.core.lesson_status"] == "")
351  ? "not attempted"
352  : $trdata["cmi.core.lesson_status"];
353 
354  $statusChar=strtolower(substr($status,0,1));
355  if ($statusChar=="f")
356  $status="failed";
357  else if ($statusChar=="b")
358  $status="browsed";
359  else if ($statusChar=="c")
360  $status="completed";
361  else if ($statusChar=="n")
362  $status="not_attempted";
363  else if ($statusChar=="p")
364  $status="passed";
365  else if ($statusChar=="r")
366  $status="running";
367 
368  $alt = $lng->txt("cont_status").": ".
369  $lng->txt("cont_sc_stat_".str_replace(" ", "_", $status));
370 
371  // score
372  if ($trdata["cmi.core.score.raw"] != "")
373  {
374  $alt.= ", ".$lng->txt("cont_credits").
375  ": ".$trdata["cmi.core.score.raw"];
376  }
377 
378  // total time
379  if ($trdata["cmi.core.total_time"] != "" &&
380  $trdata["cmi.core.total_time"] != "0000:00:00.00")
381  {
382  $alt.= ", ".$lng->txt("cont_total_time").
383  ": ".$trdata["cmi.core.total_time"];
384  }
385 
386  $tpl->setVariable("ICON_NAME", 'scoIcon'.$a_node_id);
387  $tpl->setVariable("ICON_IMAGE", ilUtil::getImagePath($this->getIconImagePathPrefix().str_replace(" ", "_", $status).".svg"));
388  $tpl->setVariable("TXT_ALT_IMG", $alt);
389  $tpl->parseCurrentBlock();
390 
391  }
global $tpl
Definition: ilias.php:8
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
global $lng
Definition: privfeed.php:17
static _lookupTrackingDataOfUser($a_item_id, $a_user_id=0, $a_obj_id=0)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ insertObject()

ilSCORMExplorer::insertObject (   $option,
ilTemplate  $tpl,
  $jsApi 
)
protected

insert the option data in $tpl

Parameters
array$option
ilTemplate$tpl
bool$jsApi
Returns
ilTemplate $tpl

Definition at line 270 of file class.ilSCORMExplorer.php.

References $tpl, ilSCORMResource\_lookupIdByIdRef(), ilSCORMResource\_lookupScormType(), ilExplorer\buildFrameTarget(), getOutputIcons(), isClickable(), ilTemplate\parseCurrentBlock(), ilTemplate\setCurrentBlock(), HTML_Template_IT\setVariable(), and ilUtil\shortenText().

Referenced by createOutput().

270  {
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);
274  }
275 
276  //get scorm item
277  $sc_object = new ilSCORMItem($option["id"]);
278  $id_ref = $sc_object->getIdentifierRef();
279 
280  //get scorm resource ref id
281  $sc_res_id = ilSCORMResource::_lookupIdByIdRef($id_ref, $sc_object->getSLMId());
282 
283  //get scorm type
284  $scormtype = strtolower(ilSCORMResource::_lookupScormType($sc_res_id));
285 
286  //is scorm clickabke
287  $clickable = $this->isClickable($option["c_type"], $option["id"], $sc_object);
288 
289  if ($this->output_icons && $clickable) {
290  $this->getOutputIcons($tpl, $option, $option["id"], $scormtype);
291  }
292 
293  if ($clickable) // output link
294  {
295  $tpl->setCurrentBlock("link");
296  $frame_target = $this->buildFrameTarget($option["c_type"], $option["id"], $option["obj_id"]);
297  if ($frame_target != "")
298  {
299  $tpl->setVariable("TITLE", ilUtil::shortenText($option["title"], $this->textwidth, true));
300  $tpl->setVariable("LINK_TARGET", "javascript:void(0);");
301  if ($jsApi == true) {
302  $tpl->setVariable("ONCLICK", " onclick=\"parent.API.IliasLaunch('".$option["id"]."');return false;\"");
303  } else {
304  $tpl->setVariable("ONCLICK", " onclick=\"parent.APIFRAME.setupApi();parent.APIFRAME.API."
305  .($scormtype == 'asset' ? 'IliasLaunchAsset' : 'IliasLaunchSahs')
306  ."('".$option["id"]."');return false;\"");
307  }
308  }
309  $tpl->parseCurrentBlock();
310  }
311  else // output text only
312  {
313  $tpl->setCurrentBlock("text");
314  $tpl->setVariable("OBJ_TITLE", ilUtil::shortenText($option["title"], $this->textwidth, true));
315  $tpl->parseCurrentBlock();
316  }
317 
318  $tpl->setCurrentBlock("li");
319  $tpl->parseCurrentBlock();
320 
321  return $tpl;
322  }
buildFrameTarget($a_type, $a_child=0, $a_obj_id=0)
get frame target (may be overwritten by derived classes)
static shortenText($a_str, $a_len, $a_dots=false, $a_next_blank=false, $a_keep_extension=false)
shorten a string to given length.
getOutputIcons(&$tpl, $a_option, $a_node_id, $scormtype="sco")
tpl is filled with option state
static _lookupIdByIdRef($a_id_ref, $a_slm_id)
global $tpl
Definition: ilias.php:8
static _lookupScormType($a_obj_id)
setVariable($variable, $value='')
Sets a variable value.
Definition: IT.php:613
SCORM Item.
redirection script todo: (a better solution should control the processing via a xml file) ...
isClickable($a_type, $a_id=0, $a_obj=0)
can i click on the module name
setCurrentBlock($part="DEFAULT")
Überladene Funktion, die sich hier lokal noch den aktuellen Block merkt.
parseCurrentBlock($part="DEFAULT")
Überladene Funktion, die auf den aktuelle Block vorher noch ein replace ausführt public...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isClickable()

ilSCORMExplorer::isClickable (   $a_type,
  $a_id = 0,
  $a_obj = 0 
)

can i click on the module name

Parameters
string$a_type
int$a_id
int$a_obj
Returns
bool

Definition at line 237 of file class.ilSCORMExplorer.php.

References $a_type.

Referenced by insertObject().

238  {
239  if ($a_type != "sit")
240  {
241  return false;
242  }
243  else
244  {
245  if (is_object($a_obj))
246  {
247  $sc_object = $a_obj;
248  }
249  else
250  {
251  $sc_object = new ilSCORMItem($a_id);
252  }
253  if ($sc_object->getIdentifierRef() != "")
254  {
255  return true;
256  }
257  }
258  return false;
259  }
$a_type
Definition: workflow.php:93
SCORM Item.
+ Here is the caller graph for this function:

◆ isVisible()

ilSCORMExplorer::isVisible (   $a_id,
  $a_type 
)

Definition at line 174 of file class.ilSCORMExplorer.php.

References $a_type.

Referenced by ilAICCExplorer\setOutput().

175  {
176  if ($a_type == "sre")
177  {
178  return false;
179  }
180  else
181  {
182  return true;
183  }
184  }
$a_type
Definition: workflow.php:93
+ Here is the caller graph for this function:

◆ setOutput()

ilSCORMExplorer::setOutput (   $parent_id,
  $a_depth = 1,
  $a_obj_id = 0,
  $a_highlighted_subtree = false 
)

possible output array is set

Parameters
int$parent_id

Definition at line 121 of file class.ilSCORMExplorer.php.

References createOutputArray().

121  {
122  $this->format_options = $this->createOutputArray($parent_id);
123  }
createOutputArray($a_parent_id, $options=array())
recursivi creating of outputs
+ Here is the call graph for this function:

Field Documentation

◆ $slm_obj

ilSCORMExplorer::$slm_obj

Definition at line 45 of file class.ilSCORMExplorer.php.


The documentation for this class was generated from the following file: