ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
ilLMTOCExplorerGUI Class Reference

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V. More...

+ Inheritance diagram for ilLMTOCExplorerGUI:
+ Collaboration diagram for ilLMTOCExplorerGUI:

Public Member Functions

 __construct ( $a_parent_obj, string $a_parent_cmd, ilLMPresentationService $service, string $a_lang="-", int $a_focus_id=0, bool $export_all_languages=false)
 Constructor. More...
 
 getRootNode ()
 
 setTracker (ilLMTracker $a_val)
 
 getTracker ()
 
 setHighlightNode (int $a_val)
 
 getHighlightNode ()
 
 isNodeHighlighted ($a_node)
 
 getNodeContent ($a_node)
 
 getNodeIcon ($a_node)
 
 isNodeClickable ($a_node)
 
 getNodeIconAlt ($a_node)
 
 getNodeHref ($a_node)
 
 isNodeVisible ($a_node)
 
 renderLSToc (\LSTOCBuilder $toc)
 
- Public Member Functions inherited from ilLMExplorerGUI
 __construct ( $a_parent_obj, string $a_parent_cmd, ilObjContentObject $a_lm, string $a_id="")
 
 beforeRendering ()
 
 getNodeContent ($a_node)
 
 isNodeHighlighted ($a_node)
 
- Public Member Functions inherited from ilTreeExplorerGUI
 __construct (string $a_expl_id, $a_parent_obj, string $a_parent_cmd, ilTree $a_tree, string $a_node_parameter_name="node_id")
 
 getTree ()
 
 setOrderField (string $a_val, bool $a_numeric=false)
 
 getOrderField ()
 
 setTypeWhiteList (array $a_val)
 Set type white list. More...
 
 getTypeWhiteList ()
 Get type white list. More...
 
 setTypeBlackList (array $a_val)
 Set type black list. More...
 
 getTypeBlackList ()
 Get type black list. More...
 
 setPreloadChilds (bool $a_val)
 
 getPreloadChilds ()
 
 getSuccessorNode ( $a_node_id, string $a_type="")
 Get successor node (currently only(!) based on lft/rgt tree values) More...
 
 getChildsOfNode ($a_parent_node_id)
 Get childs of node. More...
 
 getNodeId ($a_node)
 Get id for node. More...
 
 getNodeIconAlt ($a_node)
 Get node icon alt attribute. More...
 
 getRootNode ()
 Get root node. More...
 
 setRootId ($a_root)
 
 setPathOpen ($a_id)
 Set node path to be opened. More...
 
 getHTML ($new=false)
 Get HTML. More...
 
 getChildren ($record, $environment=null)
 Get a list of records (that list can also be empty). More...
 
 build (\ILIAS\UI\Component\Tree\Node\Factory $factory, $record, $environment=null)
 
 getTreeLabel ()
 
 getTreeComponent ()
 
 toggleExplorerNodeState ()
 Should be called by an ilCtrl-enabled command class if a tree node toggle action should be processed. More...
 
- Public Member Functions inherited from ilExplorerBaseGUI
 setChildLimit (int $a_val)
 
 getChildLimit ()
 
 setSearchTerm (string $a_val)
 
 getSearchTerm ()
 
 setMainTemplate (ilGlobalTemplateInterface $a_main_tpl=null)
 
 getRootNode ()
 Get root node. More...
 
 getChildsOfNode ($a_parent_node_id)
 Get children of node. More...
 
 getNodeContent ($a_node)
 Get content of a node. More...
 
 getNodeId ($a_node)
 Get id of a node. More...
 
 getNodeHref ($a_node)
 Get href for node. More...
 
 nodeHasVisibleChilds ($a_node)
 Node has children Please note that this standard method may not be optimal depending on what a derived class does in isNodeVisible. More...
 
 sortChilds (array $a_childs, $a_parent_node_id)
 Sort childs. More...
 
 getNodeIcon ($a_node)
 Get node icon path. More...
 
 getNodeIconAlt ($a_node)
 Get node icon alt attribute. More...
 
 getNodeTarget ($a_node)
 Get node target (frame) attribute. More...
 
 getNodeOnClick ($a_node)
 Get node onclick attribute. More...
 
 isNodeVisible ($a_node)
 Is node visible? More...
 
 isNodeHighlighted ($a_node)
 Is node highlighted? More...
 
 isNodeClickable ($a_node)
 Is node clickable? More...
 
 getId ()
 Get id of explorer element. More...
 
 setSkipRootNode (bool $a_val)
 
 getSkipRootNode ()
 
 setAjax (bool $a_val)
 
 getAjax ()
 
 setSecondaryHighlightedNodes (array $a_val)
 Set secondary (background) highlighted nodes. More...
 
 getSecondaryHighlightedNodes ()
 Get secondary (background) highlighted nodes. More...
 
 setNodeOpen ($a_id)
 Set node to be opened (additional custom opened node, not standard expand behaviour) More...
 
 setSelectMode (string $a_postvar, bool $a_multi=false)
 Set select mode (to deactivate, pass an empty string as postvar) More...
 
 setNodeSelected ($a_id)
 Set node to be opened (additional custom opened node, not standard expand behaviour) More...
 
 setOfflineMode (bool $a_val)
 
 getOfflineMode ()
 
 handleCommand ()
 Handle explorer internal command. More...
 
 getContainerId ()
 
 openNode ()
 Open node. More...
 
 closeNode ()
 Close node. More...
 
 getNodeAsync ()
 Get node asynchronously. More...
 
 beforeRendering ()
 Before rendering. More...
 
 getOnLoadCode ()
 Get on load code. More...
 
 getHTML ()
 
 renderNode ($a_node, ilTemplate $tpl)
 Render node. More...
 
 renderChilds ($a_node_id, ilTemplate $tpl)
 Render childs. More...
 
 getDomNodeIdForNodeId ($a_node_id)
 Get DOM node id for node id. More...
 
 getNodeIdForDomNodeId (string $a_dom_node_id)
 Get node id for dom node id. More...
 
 listItemStart (ilTemplate $tpl, $a_node)
 List item start. More...
 
 listItemEnd (ilTemplate $tpl)
 
 listStart (ilTemplate $tpl)
 
 listEnd (ilTemplate $tpl)
 
 isNodeOnclickEnabled ()
 
 setNodeOnclickEnabled (bool $nodeOnclickEnabled)
 
 isEnableDnd ()
 
 setEnableDnd (bool $enable_dnd)
 
- Public Member Functions inherited from ILIAS\UI\Component\Tree\TreeRecursion
 build (Node\Factory $factory, $record, $environment=null)
 Build and return a Node. More...
 

Protected Member Functions

 initTreeData ()
 
 initVisibilityData (int $node_id)
 
 renderLSTocNode (\LSTOCBuilder $toc, ?array $current_node=null)
 
- Protected Member Functions inherited from ilLMExplorerGUI
 checkLPIcon (int $a_id)
 
- Protected Member Functions inherited from ilTreeExplorerGUI
 preloadChilds ()
 
 matches ($node)
 Does a node match a search term (or is search term empty) More...
 
 getRootId ()
 
 createNode (\ILIAS\UI\Component\Tree\Node\Factory $factory, $record)
 Creates at tree node, can be overwritten in derivatives if another node type should be used. More...
 
 getNodeStateToggleCmdClasses ($record)
 Should return an array of ilCtrl-enabled command classes which should be used to build the URL for the expand/collapse actions applied on a tree node. More...
 
 render ()
 
- Protected Member Functions inherited from ilExplorerBaseGUI
 isNodeSelectable ($a_node)
 Is node selectable? More...
 
 getNodeToggleOnClick ($a_node)
 Get onclick attribute for node toggling. More...
 
 getSelectOnClick ($a_node)
 Get onclick attribute for selecting radio/checkbox. More...
 
 isNodeOpen ($node_id)
 Get all open nodes. More...
 
 getJSTreePlugins ()
 
 isNodeRequested (string $a_node_id)
 

Protected Attributes

string $lang
 
int $highlight_node = 0
 
bool $export_all_languages
 
ilPageActivationDBRepository $activation_repo
 
array $complete_tree = []
 
array $activation_data = []
 
ilSetting $lm_set
 
ilLMPresentationLinker $linker
 
int $focus_id = 0
 
ilLMPresentationService $service
 
ilLMTracker $tracker
 
- Protected Attributes inherited from ilLMExplorerGUI
ilObjContentObject $lm
 
ilObjUser $user
 
array $lp_cache = []
 
int $cnt_lmobj = 0
 
string $obj_id = ""
 
string $transl = ""
 
- Protected Attributes inherited from ilTreeExplorerGUI
ilLanguage $lng
 
Psr Http Message ServerRequestInterface $httpRequest
 
ilTree $tree = null
 
string $tree_label = ""
 
string $order_field = ""
 
bool $order_field_numeric = false
 
array $type_white_list = array()
 
array $type_black_list = array()
 
array $childs = array()
 
bool $preloaded = false
 
bool $preload_childs = false
 
array $root_node_data = null
 
array $all_childs = array()
 
 $root_id = 0
 
ILIAS DI UIServices $ui
 
- Protected Attributes inherited from ilExplorerBaseGUI
string $node_parameter_name
 
ilLogger $log
 
ilCtrl $ctrl
 
ilGlobalTemplateInterface $tpl
 
bool $skip_root_node = false
 
bool $ajax = false
 
array $custom_open_nodes = array()
 
array $selected_nodes = array()
 
string $select_postvar = ""
 
bool $offline_mode = false
 
array $sec_highl_nodes = array()
 
bool $enable_dnd = false
 
string $search_term = ""
 
array $open_nodes = []
 
ilSessionIStorage $store
 
bool $select_multi = false
 
 $parent_obj
 
int $child_limit = 0
 
string $parent_cmd = ''
 
string $requested_exp_cmd = ""
 
string $requested_exp_cont = ""
 
string $requested_searchterm = ""
 
string $requested_node_id = ""
 
string $id
 

Additional Inherited Members

- Static Public Member Functions inherited from ilExplorerBaseGUI
static getLocalExplorerJsPath ()
 
static getLocalJsTreeJsPath ()
 
static getLocalJsTreeCssPath ()
 
static createHTMLExportDirs (string $a_target_dir)
 
static init (ilGlobalTemplateInterface $a_main_tpl=null)
 
- Static Protected Attributes inherited from ilExplorerBaseGUI
static string $js_tree_path = "./node_modules/jstree/dist/jstree.js"
 
static string $js_tree_path_css = "./node_modules/jstree/dist/themes/default/style.min.css"
 
static string $js_expl_path = "./Services/UIComponent/Explorer2/js/Explorer2.js"
 

Detailed Description

This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Learning e.V.

ILIAS is licensed with the GPL-3.0, see https://www.gnu.org/licenses/gpl-3.0.en.html You should have received a copy of said license along with the source code, too.

If this is not the case or you just want to try ILIAS, you'll find us at: https://www.ilias.de https://github.com/ILIAS-eLearning LM presentation (left frame) explorer GUI class

Author
Alexander Killing killi.nosp@m.ng@l.nosp@m.eifos.nosp@m..de

Definition at line 24 of file class.ilLMTOCExplorerGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilLMTOCExplorerGUI::__construct (   $a_parent_obj,
string  $a_parent_cmd,
ilLMPresentationService  $service,
string  $a_lang = "-",
int  $a_focus_id = 0,
bool  $export_all_languages = false 
)

Constructor.

Parameters
object | string$a_parent_objparent gui object

Definition at line 42 of file class.ilLMTOCExplorerGUI.php.

References $DIC, $export_all_languages, $service, ILIAS\MetaData\Repository\Validation\Data\__construct(), ilLMPresentationService\getLearningModule(), ilLMPresentationService\getLinker(), ilExplorerBaseGUI\getOfflineMode(), ilLMPresentationService\getTracker(), initTreeData(), ilExplorerBaseGUI\setSecondaryHighlightedNodes(), ilTreeExplorerGUI\setTypeWhiteList(), and ILIAS\Repository\user().

49  {
50  global $DIC;
51 
52  $this->service = $service;
53  $this->user = $DIC->user();
54  $this->lm = $service->getLearningModule();
55  $this->linker = $service->getLinker();
56  $this->tracker = $service->getTracker();
57 
58  $exp_id = (!$this->getOfflineMode() && $this->lm->getProgressIcons())
59  ? "ilLMProgressTree"
60  : "";
61  parent::__construct($a_parent_obj, $a_parent_cmd, $this->lm, $exp_id);
62  $this->lm_set = new ilSetting("lm");
63  $this->lang = $a_lang;
64  if ($a_focus_id > 0) {
65  $this->setSecondaryHighlightedNodes(array($a_focus_id));
66  }
67  if ($this->lm->getTOCMode() != "pages") {
68  $this->setTypeWhiteList(array("st", "du"));
69  }
70  $this->focus_id = $a_focus_id;
71  $this->export_all_languages = $export_all_languages;
72 
73  $this->activation_repo = new ilPageActivationDBRepository();
74 
75  $this->initTreeData();
76  }
setTypeWhiteList(array $a_val)
Set type white list.
ilLMPresentationService $service
global $DIC
Definition: feed.php:28
__construct(VocabulariesInterface $vocabularies)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setSecondaryHighlightedNodes(array $a_val)
Set secondary (background) highlighted nodes.
+ Here is the call graph for this function:

Member Function Documentation

◆ getHighlightNode()

ilLMTOCExplorerGUI::getHighlightNode ( )

Definition at line 153 of file class.ilLMTOCExplorerGUI.php.

References $highlight_node.

Referenced by isNodeHighlighted().

153  : int
154  {
155  return $this->highlight_node;
156  }
+ Here is the caller graph for this function:

◆ getNodeContent()

ilLMTOCExplorerGUI::getNodeContent (   $a_node)
Parameters
array | object$a_node

Definition at line 172 of file class.ilLMTOCExplorerGUI.php.

References $lang, ilStructureObject\_getPresentationTitle(), ilLMPageObject\_getPresentationTitle(), ilLMObject\CHAPTER_TITLE, ilTreeExplorerGUI\getNodeId(), and getRootNode().

172  : string
173  {
174  if ($a_node["child"] == $this->getNodeId($this->getRootNode())) {
175  return $this->service->getPresentationStatus()->getLMPresentationTitle();
176  }
177 
178  if ($a_node["type"] == "st") {
180  $a_node["child"],
182  $this->lm->isActiveNumbering(),
183  false,
184  false,
185  $this->lm->getId(),
186  $this->lang,
187  true
188  );
189  } elseif ($a_node["type"] == "pg") {
191  $a_node["child"],
192  $this->lm->getPageHeader(),
193  $this->lm->isActiveNumbering(),
194  (bool) $this->lm_set->get("time_scheduled_page_activation"),
195  true,
196  $this->lm->getId(),
197  $this->lang,
198  true
199  );
200  } elseif ($a_node["child"] == $this->getNodeId($this->getRootNode())) {
201  return $this->lm->getTitle();
202  }
203 
204  return $a_node["title"];
205  }
static _getPresentationTitle(int $a_st_id, string $a_mode=self::CHAPTER_TITLE, bool $a_include_numbers=false, bool $a_time_scheduled_activation=false, bool $a_force_content=false, int $a_lm_id=0, string $a_lang="-", bool $a_include_short=false)
getNodeId($a_node)
Get id for node.
static _getPresentationTitle(int $a_pg_id, string $a_mode=self::CHAPTER_TITLE, bool $a_include_numbers=false, bool $a_time_scheduled_activation=false, bool $a_force_content=false, int $a_lm_id=0, string $a_lang="-", bool $a_include_short=false)
presentation title doesn't have to be page title, it may be chapter title + page title or chapter tit...
+ Here is the call graph for this function:

◆ getNodeHref()

ilLMTOCExplorerGUI::getNodeHref (   $a_node)
Parameters
array | object$a_node

Definition at line 339 of file class.ilLMTOCExplorerGUI.php.

References $lang, ilPageObject\_lookupActive(), ilLMObject\getExportId(), ilExplorerBaseGUI\getOfflineMode(), and ilTreeExplorerGUI\getTree().

339  : string
340  {
341  if (!$this->getOfflineMode()) {
342  return $this->linker->getLink("", $a_node["child"]);
343  //return parent::buildLinkTarget($a_node_id, $a_type);
344  } else {
345  if ($a_node["type"] != "pg") {
346  // get next activated page
347  $found = false;
348  while (!$found) {
349  $a_node = $this->getTree()->fetchSuccessorNode($a_node["child"], "pg");
350  $active = ilLMPage::_lookupActive(
351  $a_node["child"],
352  $this->lm->getType(),
353  (bool) $this->lm_set->get("time_scheduled_page_activation")
354  );
355 
356  if ($a_node["child"] > 0 && !$active) {
357  $found = false;
358  } else {
359  $found = true;
360  }
361  }
362  }
363 
364  $lang_suffix = "";
365  if ($this->export_all_languages) {
366  if ($this->lang != "" && $this->lang != "-") {
367  $lang_suffix = "_" . $this->lang;
368  }
369  }
370 
371  if ($nid = ilLMPageObject::getExportId($this->lm->getId(), $a_node["child"])) {
372  return "lm_pg_" . $nid . $lang_suffix . ".html";
373  }
374  return "lm_pg_" . $a_node["child"] . $lang_suffix . ".html";
375  }
376  }
static _lookupActive(int $a_id, string $a_parent_type, bool $a_check_scheduled_activation=false, string $a_lang="-")
lookup activation status
static getExportId(int $a_lm_id, int $a_lmobj_id, string $a_type="pg")
+ Here is the call graph for this function:

◆ getNodeIcon()

ilLMTOCExplorerGUI::getNodeIcon (   $a_node)
Parameters
array | object$a_node

Definition at line 211 of file class.ilLMTOCExplorerGUI.php.

References ilPageObject\_isScheduledActivation(), ilPageObject\_lookupActive(), ilLMExplorerGUI\checkLPIcon(), ilSetting\get(), ilUtil\getImagePath(), and ilExplorerBaseGUI\getOfflineMode().

Referenced by renderLSTocNode().

211  : string
212  {
213  // overwrite chapter icons with lp info?
214  if (!$this->getOfflineMode() && $a_node["type"] == "st") {
215  $icon = $this->checkLPIcon($a_node["child"]);
216  if ($icon != "") {
217  return $icon;
218  }
219  }
220 
221  // use progress icons (does not depend on lp mode)
222  if (!$this->getOfflineMode() && $this->lm->getProgressIcons()) {
223  return $this->tracker->getIconForLMObject($a_node, $this->highlight_node);
224  }
225 
226  if ($a_node["type"] == "du") {
227  $a_node["type"] = "lm";
228  }
229  $a_name = "standard/icon_" . $a_node["type"] . ".svg";
230  if ($a_node["type"] == "pg") {
231  $lm_set = new ilSetting("lm");
232  $active = ilLMPage::_lookupActive(
233  $a_node["child"],
234  $this->lm->getType(),
235  (bool) $lm_set->get("time_scheduled_page_activation")
236  );
237 
238  // is page scheduled?
239  $img_sc = ($lm_set->get("time_scheduled_page_activation") &&
240  ilLMPage::_isScheduledActivation($a_node["child"], $this->lm->getType()) && !$active
241  && !$this->getOfflineMode())
242  ? "_sc"
243  : "";
244 
245  $a_name = "standard/icon_pg" . $img_sc . ".svg";
246 
247  if (!$active && !$this->getOfflineMode()) {
248  $a_name = "standard/icon_pg_d" . $img_sc . ".svg";
249  }
250  }
251 
252  return ilUtil::getImagePath($a_name, false, "output", $this->getOfflineMode());
253  }
static _lookupActive(int $a_id, string $a_parent_type, bool $a_check_scheduled_activation=false, string $a_lang="-")
lookup activation status
get(string $a_keyword, ?string $a_default_value=null)
get setting
static _isScheduledActivation(int $a_id, string $a_parent_type, string $a_lang="-")
Check whether page is activated by time schedule.
static getImagePath(string $img, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getNodeIconAlt()

ilLMTOCExplorerGUI::getNodeIconAlt (   $a_node)
Parameters
array | object$a_node

Definition at line 331 of file class.ilLMTOCExplorerGUI.php.

331  : string
332  {
333  return "";
334  }

◆ getRootNode()

ilLMTOCExplorerGUI::getRootNode ( )

Definition at line 128 of file class.ilLMTOCExplorerGUI.php.

References ilTreeExplorerGUI\$root_id, ilLMObject\_lookupType(), and ilTreeExplorerGUI\getTree().

Referenced by getNodeContent().

128  : array
129  {
130  $root_id = $this->getTree()->readRootId();
131  if ($this->focus_id > 0 && $this->getTree()->isInTree($this->focus_id) &&
132  ilLMObject::_lookupType($this->focus_id) == "st") {
133  // $root_id = $this->focus_id;
134  }
135  return $this->getTree()->getNodeData($root_id);
136  }
static _lookupType(int $a_obj_id, int $a_lm_id=0)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getTracker()

ilLMTOCExplorerGUI::getTracker ( )

Definition at line 143 of file class.ilLMTOCExplorerGUI.php.

References $tracker.

Referenced by isNodeClickable().

143  : ilLMTracker
144  {
145  return $this->tracker;
146  }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
+ Here is the caller graph for this function:

◆ initTreeData()

ilLMTOCExplorerGUI::initTreeData ( )
protected

Definition at line 78 of file class.ilLMTOCExplorerGUI.php.

References $lang, and initVisibilityData().

Referenced by __construct().

78  : void
79  {
80  $nodes = $this->tree->getCompleteTree();
81  foreach ($nodes as $node) {
82  $this->complete_tree["childs"][$node["parent"]][] = $node;
83  $this->complete_tree["parent"][$node["child"]] = $node["parent"];
84  $this->complete_tree["nodes"][$node["child"]] = $node;
85  }
86 
87  $page_ids = array_column($this->complete_tree["nodes"], "child");
88  $this->activation_data = $this->activation_repo->get(
89  "lm",
90  $page_ids,
91  (bool) $this->lm_set->get("time_scheduled_page_activation"),
93  );
94  $this->initVisibilityData($this->tree->readRootId());
95  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initVisibilityData()

ilLMTOCExplorerGUI::initVisibilityData ( int  $node_id)
protected

Definition at line 97 of file class.ilLMTOCExplorerGUI.php.

Referenced by initTreeData().

99  : void {
100  $current_node = $this->complete_tree["nodes"][$node_id];
101 
102  if (isset($this->complete_tree["childs"][$node_id])) {
103  foreach ($this->complete_tree["childs"][$node_id] as $node) {
104  $this->initVisibilityData($node["child"]);
105  }
106  }
107 
108  // pages are visible if they are active or activation info should be shown
109  if ($current_node["type"] == "pg") {
110  $this->complete_tree["visibility"][$node_id] = ($this->activation_data[$node_id]["active"] ||
111  $this->activation_data[$node_id]["show_info"]);
112  } elseif ($current_node["type"] == "st") {
113  // make chapters visible as soon as there is one visible child
114  $this->complete_tree["visibility"][$node_id] = false;
115  if (isset($this->complete_tree["childs"][$node_id])) {
116  foreach ($this->complete_tree["childs"][$node_id] as $node) {
117  if (isset($this->complete_tree["visibility"][$node["child"]]) &&
118  $this->complete_tree["visibility"][$node["child"]]) {
119  $this->complete_tree["visibility"][$node_id] = true;
120  }
121  }
122  }
123  } else {
124  $this->complete_tree["visibility"][$node_id] = true;
125  }
126  }
+ Here is the caller graph for this function:

◆ isNodeClickable()

ilLMTOCExplorerGUI::isNodeClickable (   $a_node)
Parameters
array | object$a_node

Definition at line 258 of file class.ilLMTOCExplorerGUI.php.

References $path, ilLMExplorerGUI\$user, ilLMObject\_isPagePublic(), ilPageObject\_lookupActive(), ANONYMOUS_USER_ID, ilExplorerBaseGUI\getOfflineMode(), ilTreeExplorerGUI\getSuccessorNode(), getTracker(), and ilTreeExplorerGUI\getTree().

258  : bool
259  {
260  $ilUser = $this->user;
261 
262  $orig_node_id = $a_node["child"];
263 
264  // if navigation is restricted based on correct answered questions
265  // check if we have preceeding pages including unsanswered/incorrect answered questions
266  if (!$this->getOfflineMode()) {
267  if ($this->lm->getRestrictForwardNavigation()) {
268  if ($this->getTracker()->hasPredIncorrectAnswers($orig_node_id)) {
269  return false;
270  }
271  }
272  }
273 
274  if ($a_node["type"] == "st") {
275  if (!$this->getOfflineMode()) {
276  if ($this->lm->getTOCMode() != "pages") {
277  $a_node = $this->getTree()->fetchSuccessorNode($a_node["child"], "pg");
278  } else {
279  // faster, but needs pages to be in explorer
280  $a_node = $this->getSuccessorNode($a_node["child"], "pg");
281  }
282  if (($a_node["child"] ?? 0) == 0) {
283  return false;
284  }
285  } else {
286  // get next activated page
287  $found = false;
288  while (!$found) {
289  if ($this->lm->getTOCMode() != "pages") {
290  $a_node = $this->getTree()->fetchSuccessorNode($a_node["child"], "pg");
291  } else {
292  $a_node = $this->getSuccessorNode($a_node["child"], "pg");
293  }
294  $active = ilLMPage::_lookupActive(
295  $a_node["child"],
296  $this->lm->getType(),
297  (bool) $this->lm_set->get("time_scheduled_page_activation")
298  );
299 
300  if ($a_node["child"] > 0 && !$active) {
301  $found = false;
302  } else {
303  $found = true;
304  }
305  }
306  if ($a_node["child"] <= 0) {
307  return false;
308  } else {
309  $path = $this->getTree()->getPathId($a_node["child"]);
310  if (!in_array($orig_node_id, $path)) {
311  return false;
312  }
313  }
314  }
315  }
316 
317  if ($a_node["type"] == "pg") {
318  // check public area mode
319  if ($ilUser->getId() == ANONYMOUS_USER_ID && !ilLMObject::_isPagePublic($a_node["child"], true)) {
320  return false;
321  }
322  }
323 
324  return true;
325  }
static _lookupActive(int $a_id, string $a_parent_type, bool $a_check_scheduled_activation=false, string $a_lang="-")
lookup activation status
static _isPagePublic(int $a_node_id, bool $a_check_public_mode=false)
const ANONYMOUS_USER_ID
Definition: constants.php:27
$path
Definition: ltiservices.php:32
getSuccessorNode( $a_node_id, string $a_type="")
Get successor node (currently only(!) based on lft/rgt tree values)
+ Here is the call graph for this function:

◆ isNodeHighlighted()

ilLMTOCExplorerGUI::isNodeHighlighted (   $a_node)
Parameters
object | array$a_node

Definition at line 161 of file class.ilLMTOCExplorerGUI.php.

References getHighlightNode().

Referenced by renderLSTocNode().

161  : bool
162  {
163  if ($a_node["child"] == $this->getHighlightNode()) {
164  return true;
165  }
166  return false;
167  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isNodeVisible()

ilLMTOCExplorerGUI::isNodeVisible (   $a_node)
Parameters
array | object$a_node

Definition at line 381 of file class.ilLMTOCExplorerGUI.php.

381  : bool
382  {
383  return (bool) $this->complete_tree["visibility"][$a_node["child"]];
384  }

◆ renderLSToc()

ilLMTOCExplorerGUI::renderLSToc ( \LSTOCBuilder  $toc)

Definition at line 390 of file class.ilLMTOCExplorerGUI.php.

References renderLSTocNode().

390  : void
391  {
392  $this->renderLSTocNode($toc, null);
393  }
renderLSTocNode(\LSTOCBuilder $toc, ?array $current_node=null)
+ Here is the call graph for this function:

◆ renderLSTocNode()

ilLMTOCExplorerGUI::renderLSTocNode ( \LSTOCBuilder  $toc,
?array  $current_node = null 
)
protected

Definition at line 395 of file class.ilLMTOCExplorerGUI.php.

References ilTreeExplorerGUI\getChildren(), getNodeIcon(), isNodeHighlighted(), LSTOCBuilder\item(), ILIAS\KioskMode\TOCBuilder\LP_COMPLETED, ILIAS\KioskMode\TOCBuilder\LP_IN_PROGRESS, and LSTOCBuilder\node().

Referenced by renderLSToc().

395  : void
396  {
397  $root = false;
398  if ($current_node == 0) {
399  $root = true;
400  $current_node = $this->tree->getNodeData($this->tree->readRootId());
401  }
402 
403  $children = $this->getChildren($current_node);
404  if (count($children) > 0) {
405  if ($root) {
406  $node_toc = $toc;
407  } else {
408  // current workaround
410  $node_icon = $this->getNodeIcon($current_node);
411  if (strpos($node_icon, "complete")) {
413  }
414 
415  $node_toc = $toc->node($current_node["title"], $current_node["child"], $lp);
416  }
417  foreach ($this->getChildren($current_node) as $child) {
418  $this->renderLSTocNode($node_toc, $child);
419  }
420  $node_toc->end();
421  } else {
422  $highlight = $this->isNodeHighlighted($current_node);
423  $toc->item($current_node["title"], $current_node["child"], null, $highlight);
424  }
425  }
getChildren($record, $environment=null)
Get a list of records (that list can also be empty).
renderLSTocNode(\LSTOCBuilder $toc, ?array $current_node=null)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setHighlightNode()

ilLMTOCExplorerGUI::setHighlightNode ( int  $a_val)

Definition at line 148 of file class.ilLMTOCExplorerGUI.php.

148  : void
149  {
150  $this->highlight_node = $a_val;
151  }

◆ setTracker()

ilLMTOCExplorerGUI::setTracker ( ilLMTracker  $a_val)

Definition at line 138 of file class.ilLMTOCExplorerGUI.php.

138  : void
139  {
140  $this->tracker = $a_val;
141  }

Field Documentation

◆ $activation_data

array ilLMTOCExplorerGUI::$activation_data = []
protected

Definition at line 31 of file class.ilLMTOCExplorerGUI.php.

◆ $activation_repo

ilPageActivationDBRepository ilLMTOCExplorerGUI::$activation_repo
protected

Definition at line 29 of file class.ilLMTOCExplorerGUI.php.

◆ $complete_tree

array ilLMTOCExplorerGUI::$complete_tree = []
protected

Definition at line 30 of file class.ilLMTOCExplorerGUI.php.

◆ $export_all_languages

bool ilLMTOCExplorerGUI::$export_all_languages
protected

Definition at line 28 of file class.ilLMTOCExplorerGUI.php.

Referenced by __construct().

◆ $focus_id

int ilLMTOCExplorerGUI::$focus_id = 0
protected

Definition at line 34 of file class.ilLMTOCExplorerGUI.php.

◆ $highlight_node

int ilLMTOCExplorerGUI::$highlight_node = 0
protected

Definition at line 27 of file class.ilLMTOCExplorerGUI.php.

Referenced by getHighlightNode().

◆ $lang

string ilLMTOCExplorerGUI::$lang
protected

Definition at line 26 of file class.ilLMTOCExplorerGUI.php.

Referenced by getNodeContent(), getNodeHref(), and initTreeData().

◆ $linker

ilLMPresentationLinker ilLMTOCExplorerGUI::$linker
protected

Definition at line 33 of file class.ilLMTOCExplorerGUI.php.

◆ $lm_set

ilSetting ilLMTOCExplorerGUI::$lm_set
protected

Definition at line 32 of file class.ilLMTOCExplorerGUI.php.

◆ $service

ilLMPresentationService ilLMTOCExplorerGUI::$service
protected

Definition at line 35 of file class.ilLMTOCExplorerGUI.php.

Referenced by __construct().

◆ $tracker

ilLMTracker ilLMTOCExplorerGUI::$tracker
protected

Definition at line 36 of file class.ilLMTOCExplorerGUI.php.

Referenced by getTracker().


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