ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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 ()
 Get root node. More...
 
 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 ()
 Before rendering. More...
 
 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
 getChildren ( $record, $environment=null)
 Get a list of records (that list can also be empty). More...
 
 build (Node\Factory $factory, $record, $environment=null)
 Build and return a Node. More...
 

Protected Member Functions

 initTreeData ()
 
 initVisibilityData (int $node_id)
 
 highlightContent (array $node, string $content)
 
 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 = "assets/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.

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 $sec_high = [];
66 foreach ($this->tree->getSubTree($this->tree->getNodeData($a_focus_id)) as $node) {
67 $sec_high[] = $node["child"];
68 }
69 $this->setSecondaryHighlightedNodes($sec_high);
70 }
71 if ($this->lm->getTOCMode() != "pages") {
72 $this->setTypeWhiteList(array("st", "du"));
73 }
74 $this->focus_id = $a_focus_id;
75 $this->export_all_languages = $export_all_languages;
76
77 $this->activation_repo = new ilPageActivationDBRepository();
78
79 $this->initTreeData();
80 }
setSecondaryHighlightedNodes(array $a_val)
Set secondary (background) highlighted nodes.
ilLMPresentationService $service
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ILIAS Setting Class.
setTypeWhiteList(array $a_val)
Set type white list.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
global $DIC
Definition: shib_login.php:26

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

+ Here is the call graph for this function:

Member Function Documentation

◆ getHighlightNode()

ilLMTOCExplorerGUI::getHighlightNode ( )

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

157 : int
158 {
160 }

◆ getNodeContent()

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

Reimplemented from ilLMExplorerGUI.

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

176 : string
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 $content = $this->service->getPresentationStatus()->getLMPresentationTitle();
202 }
203
204 return $this->highlightContent($a_node, $content);
205 }
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...
highlightContent(array $node, string $content)
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.

References ilLMPageObject\_getPresentationTitle(), ilStructureObject\_getPresentationTitle(), and ilLMObject\CHAPTER_TITLE.

+ Here is the call graph for this function:

◆ getNodeHref()

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

Reimplemented from ilExplorerBaseGUI.

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

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

References $lang, ilPageObject\_lookupActive(), and ilLMObject\getExportId().

+ Here is the call graph for this function:

◆ getNodeIcon()

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

Reimplemented from ilExplorerBaseGUI.

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

223 : string
224 {
225 // overwrite chapter icons with lp info?
226 if (!$this->getOfflineMode() && $a_node["type"] == "st") {
227 $icon = $this->checkLPIcon($a_node["child"]);
228 if ($icon != "") {
229 return $icon;
230 }
231 }
232 // use progress icons (does not depend on lp mode)
233 if (!$this->getOfflineMode() && $this->lm->getProgressIcons()) {
234 return $this->tracker->getIconForLMObject($a_node, $this->highlight_node);
235 }
236
237 if ($a_node["type"] == "du") {
238 $a_node["type"] = "lm";
239 }
240 $a_name = "standard/icon_" . $a_node["type"] . ".svg";
241 if ($a_node["type"] == "pg") {
242 $lm_set = new ilSetting("lm");
243 $active = ilLMPage::_lookupActive(
244 $a_node["child"],
245 $this->lm->getType(),
246 (bool) $lm_set->get("time_scheduled_page_activation")
247 );
248
249 // is page scheduled?
250 $img_sc = ($lm_set->get("time_scheduled_page_activation") &&
251 ilLMPage::_isScheduledActivation($a_node["child"], $this->lm->getType()) && !$active
252 && !$this->getOfflineMode())
253 ? "_sc"
254 : "";
255
256 $a_name = "standard/icon_pg" . $img_sc . ".svg";
257
258 if (!$active && !$this->getOfflineMode()) {
259 $a_name = "standard/icon_pg_d" . $img_sc . ".svg";
260 }
261 }
262
263 return ilUtil::getImagePath($a_name, false, "output", $this->getOfflineMode());
264 }
static _isScheduledActivation(int $a_id, string $a_parent_type, string $a_lang="-")
Check whether page is activated by time schedule.
get(string $a_keyword, ?string $a_default_value=null)
get setting
static getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)

References $lm_set, ilPageObject\_isScheduledActivation(), ilPageObject\_lookupActive(), and ilUtil\getImagePath().

+ Here is the call graph for this function:

◆ getNodeIconAlt()

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

Reimplemented from ilTreeExplorerGUI.

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

334 : string
335 {
336 return "";
337 }

◆ getRootNode()

ilLMTOCExplorerGUI::getRootNode ( )

Get root node.

Returns
object|array node

Reimplemented from ilTreeExplorerGUI.

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

132 : array
133 {
134 $root_id = $this->getTree()->readRootId();
135 if ($this->focus_id > 0 && $this->getTree()->isInTree($this->focus_id) &&
136 ilLMObject::_lookupType($this->focus_id) == "st") {
137 // $root_id = $this->focus_id;
138 }
139 return $this->getTree()->getNodeData($root_id);
140 }
static _lookupType(int $a_obj_id, int $a_lm_id=0)

References ilLMObject\_lookupType().

+ Here is the call graph for this function:

◆ getTracker()

ilLMTOCExplorerGUI::getTracker ( )

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

148 {
149 return $this->tracker;
150 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

◆ highlightContent()

ilLMTOCExplorerGUI::highlightContent ( array  $node,
string  $content 
)
protected

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

207 : string
208 {
209 if ($this->isNodeHighlighted($node)) {
210 $content = "<b>" . $content . "</b>";
211 }
212 $sec = $this->getSecondaryHighlightedNodes();
213 if (in_array($node["child"], $sec)) {
214 return "<span class='ilHighlighted'>" . $content . "</span>";
215 }
216 return $content;
217 }
getSecondaryHighlightedNodes()
Get secondary (background) highlighted nodes.

◆ initTreeData()

ilLMTOCExplorerGUI::initTreeData ( )
protected

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

82 : void
83 {
84 $nodes = $this->tree->getCompleteTree();
85 foreach ($nodes as $node) {
86 $this->complete_tree["childs"][$node["parent"]][] = $node;
87 $this->complete_tree["parent"][$node["child"]] = $node["parent"];
88 $this->complete_tree["nodes"][$node["child"]] = $node;
89 }
90
91 $page_ids = array_column($this->complete_tree["nodes"], "child");
92 $this->activation_data = $this->activation_repo->get(
93 "lm",
94 $page_ids,
95 (bool) $this->lm_set->get("time_scheduled_page_activation"),
96 $this->lang
97 );
98 $this->initVisibilityData($this->tree->readRootId());
99 }

References initVisibilityData().

Referenced by __construct().

+ 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 101 of file class.ilLMTOCExplorerGUI.php.

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

References initVisibilityData().

Referenced by initTreeData(), and initVisibilityData().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isNodeClickable()

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

Reimplemented from ilExplorerBaseGUI.

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

269 : bool
270 {
271 $ilUser = $this->user;
272 $orig_node_id = $a_node["child"];
273
274 // if navigation is restricted based on correct answered questions
275 // check if we have preceeding pages including unsanswered/incorrect answered questions
276 if (!$this->getOfflineMode()) {
277 if ($this->lm->getRestrictForwardNavigation()) {
278 if ($this->getTracker()->hasPredIncorrectAnswers($orig_node_id)) {
279 return false;
280 }
281 }
282 }
283
284 if ($a_node["type"] == "st") {
285 if (!$this->getOfflineMode()) {
286 if ($this->lm->getTOCMode() != "pages") {
287 $a_node = $this->getTree()->fetchSuccessorNode($a_node["child"], "pg");
288 } else {
289 // faster, but needs pages to be in explorer
290 $a_node = $this->getSuccessorNode($a_node["child"], "pg");
291 }
292 if (($a_node["child"] ?? 0) == 0) {
293 return false;
294 }
295 } else {
296 // get next activated page
297 $found = false;
298 while (!$found) {
299 if ($this->lm->getTOCMode() != "pages") {
300 $a_node = $this->getTree()->fetchSuccessorNode($a_node["child"], "pg");
301 } else {
302 $a_node = $this->getSuccessorNode($a_node["child"], "pg");
303 }
304 $active = ilLMPage::_lookupActive(
305 $a_node["child"],
306 $this->lm->getType(),
307 (bool) $this->lm_set->get("time_scheduled_page_activation")
308 );
309
310 if ($a_node["child"] > 0 && !$active) {
311 $found = false;
312 } else {
313 $found = true;
314 }
315 }
316 if ($a_node["child"] <= 0) {
317 return false;
318 } else {
319 $path = $this->getTree()->getPathId($a_node["child"]);
320 if (!in_array($orig_node_id, $path)) {
321 return false;
322 }
323 }
324 }
325 }
326
327 return true;
328 }
getSuccessorNode( $a_node_id, string $a_type="")
Get successor node (currently only(!) based on lft/rgt tree values)
$path
Definition: ltiservices.php:30

References $path, and ilPageObject\_lookupActive().

+ Here is the call graph for this function:

◆ isNodeHighlighted()

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

Reimplemented from ilLMExplorerGUI.

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

165 : bool
166 {
167 if ($a_node["child"] == $this->getHighlightNode()) {
168 return true;
169 }
170 return false;
171 }

◆ isNodeVisible()

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

Reimplemented from ilExplorerBaseGUI.

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

384 : bool
385 {
386 return (bool) $this->complete_tree["visibility"][$a_node["child"]];
387 }

◆ renderLSToc()

ilLMTOCExplorerGUI::renderLSToc ( \LSTOCBuilder  $toc)

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

393 : void
394 {
395 $this->renderLSTocNode($toc, null);
396 }
renderLSTocNode(\LSTOCBuilder $toc, ?array $current_node=null)

◆ renderLSTocNode()

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

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

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

References LSTOCBuilder\item(), ILIAS\KioskMode\TOCBuilder\LP_COMPLETED, ILIAS\KioskMode\TOCBuilder\LP_IN_PROGRESS, and LSTOCBuilder\node().

+ Here is the call graph for this function:

◆ setHighlightNode()

ilLMTOCExplorerGUI::setHighlightNode ( int  $a_val)

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

152 : void
153 {
154 $this->highlight_node = $a_val;
155 }

◆ setTracker()

ilLMTOCExplorerGUI::setTracker ( ilLMTracker  $a_val)

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

142 : void
143 {
144 $this->tracker = $a_val;
145 }

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.

◆ $lang

string ilLMTOCExplorerGUI::$lang
protected

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

◆ $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.


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