ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilRepositoryExplorerGUI Class Reference

Repository explorer GUI class. More...

+ Inheritance diagram for ilRepositoryExplorerGUI:
+ Collaboration diagram for ilRepositoryExplorerGUI:

Public Member Functions

 __construct ($a_parent_obj, $a_parent_cmd)
 Constructor. More...
 
 getRootNode ()
 Get root node. More...
 
 getNodeContent ($a_node)
 Get node content. More...
 
 getNodeIcon ($a_node)
 Get node icon. More...
 
 getNodeIconAlt ($a_node)
 Get node icon alt text. More...
 
 isNodeHighlighted ($a_node)
 Is node highlighted? More...
 
 getNodeHref ($a_node)
 Get href for node. More...
 
 isNodeVisible ($a_node)
 Is node visible. More...
 
 sortChilds ($a_childs, $a_parent_node_id)
 Sort childs. More...
 
 getChildsOfNode ($a_parent_node_id)
 Get childs of node. More...
 
 isNodeClickable ($a_node)
 Is node clickable? More...
 
- Public Member Functions inherited from ilTreeExplorerGUI
 __construct ($a_expl_id, $a_parent_obj, $a_parent_cmd, $a_tree)
 Constructor. More...
 
 getTree ()
 Get tree. More...
 
 setOrderField ($a_val, $a_numeric=false)
 Set order field. More...
 
 getOrderField ()
 Get order field. More...
 
 setTypeWhiteList ($a_val)
 Set type white list. More...
 
 getTypeWhiteList ()
 Get type white list. More...
 
 setTypeBlackList ($a_val)
 Set type black list. More...
 
 getTypeBlackList ()
 Get type black list. More...
 
 setPreloadChilds ($a_val)
 Set preload childs. More...
 
 getPreloadChilds ()
 Get preload childs. More...
 
 getSuccessorNode ($a_node_id, $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...
 
 setPathOpen ($a_id)
 Set node path to be opened. More...
 
 getHTML ()
 Get HTML. More...
 
- Public Member Functions inherited from ilExplorerBaseGUI
 __construct ($a_expl_id, $a_parent_obj, $a_parent_cmd)
 Constructor. More...
 
 getRootNode ()
 Get root node. More...
 
 getChildsOfNode ($a_parent_node_id)
 Get childs 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 childs? More...
 
 sortChilds ($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 ($a_val)
 Set skip root node. More...
 
 getSkipRootNode ()
 Get skip root node. More...
 
 setAjax ($a_val)
 Set ajax. More...
 
 getAjax ()
 Get ajax. More...
 
 setSecondaryHighlightedNodes ($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 ($a_postvar, $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 ($a_val)
 Set offline mode. More...
 
 getOfflineMode ()
 Get offline mode. More...
 
 handleCommand ()
 Handle explorer internal command. More...
 
 getContainerId ()
 Get container id. More...
 
 openNode ()
 Open node. More...
 
 closeNode ()
 Close node. More...
 
 getNodeAsync ()
 Get node asynchronously. More...
 
 beforeRendering ()
 Before rendering. More...
 
 getOnLoadCode ()
 Get on load code. More...
 
 getHTML ()
 Get HTML. More...
 
 renderNode ($a_node, $tpl)
 Render node. More...
 
 renderChilds ($a_node_id, $tpl)
 Render childs. More...
 
 getDomNodeIdForNodeId ($a_node_id)
 Get DOM node id for node id. More...
 
 getNodeIdForDomNodeId ($a_dom_node_id)
 Get node id for dom node id. More...
 
 listItemStart ($tpl, $a_node)
 List item start. More...
 
 listItemEnd ($tpl)
 List item end. More...
 
 listStart ($tpl)
 List start. More...
 
 listEnd ($tpl)
 List end. More...
 
 isNodeOnclickEnabled ()
 
 setNodeOnclickEnabled ($nodeOnclickEnabled)
 
 isEnableDnd ()
 
 setEnableDnd ($enable_dnd)
 Enable Drag & Drop functionality. More...
 

Protected Attributes

 $type_grps = array()
 
 $session_materials = array()
 
- Protected Attributes inherited from ilTreeExplorerGUI
 $tree = null
 
 $order_field = ""
 
 $order_field_numeric = false
 
 $type_white_list = array()
 
 $type_black_list = array()
 
 $childs = array()
 
 $preloaded = false
 
 $preload_childs = false
 
 $root_node_data = null
 
 $all_childs = array()
 
- Protected Attributes inherited from ilExplorerBaseGUI
 $skip_root_node = false
 
 $ajax = false
 
 $custom_open_nodes = array()
 
 $selected_nodes = array()
 
 $select_postvar = ""
 
 $offline_mode = false
 
 $sec_highl_nodes = array()
 
 $enable_dnd = false
 

Additional Inherited Members

- Static Public Member Functions inherited from ilExplorerBaseGUI
static getLocalExplorerJsPath ()
 Get local path of explorer js. More...
 
static getLocalJsTreeJsPath ()
 Get local path of jsTree js. More...
 
static createHTMLExportDirs ($a_target_dir)
 Create html export directories. More...
 
static init ()
 Init JS. More...
 
- Protected Member Functions inherited from ilTreeExplorerGUI
 preloadChilds ()
 Preload childs. More...
 
- 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...
 
 getJSTreePlugins ()
 
- Static Protected Attributes inherited from ilExplorerBaseGUI
static $js_tree_path = "./Services/UIComponent/Explorer2/lib/jstree-v.pre1.0/jquery.jstree.js"
 
static $js_expl_path = "./Services/UIComponent/Explorer2/js/Explorer2.js"
 

Detailed Description

Repository explorer GUI class.

Author
Alex Killing alex..nosp@m.kill.nosp@m.ing@g.nosp@m.mx.d.nosp@m.e
Version
$Id$
Todo:
: isClickable, top node id

Definition at line 16 of file class.ilRepositoryExplorerGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilRepositoryExplorerGUI::__construct (   $a_parent_obj,
  $a_parent_cmd 
)

Constructor.

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

25 {
26 global $tree, $ilSetting, $objDefinition;
27
28 $this->cur_ref_id = (int) $_GET["ref_id"];
29
30 $this->top_node_id = 0;
31 if ($ilSetting->get("rep_tree_limit_grp_crs") && $this->cur_ref_id > 0)
32 {
33 $path = $tree->getPathId($this->cur_ref_id);
34 foreach ($path as $n)
35 {
36 if ($top_node > 0)
37 {
38 break;
39 }
41 array("crs", "grp")))
42 {
43 $this->top_node_id = $n;
44 }
45 }
46
47 }
48
49 parent::__construct("rep_exp", $a_parent_obj, $a_parent_cmd, $tree);
50
51 $this->setSkipRootNode(false);
52 $this->setAjax(true);
53 $this->setOrderField("title");
54
55 if ($ilSetting->get("repository_tree_pres") == "" ||
56 ($ilSetting->get("rep_tree_limit_grp_crs") && $this->top_node_id == 0))
57 {
58 $this->setTypeWhiteList($objDefinition->getExplorerContainerTypes());
59 }
60 else if ($ilSetting->get("repository_tree_pres") == "all_types")
61 {
62 $white = array();
63 foreach ($objDefinition->getSubObjectsRecursively("root") as $rtype)
64 {
65 if (/* $rtype["name"] != "itgr" && */ !$objDefinition->isSideBlock($rtype["name"]))
66 {
67 $white[] = $rtype["name"];
68 }
69 }
71 }
72 if ((int) $_GET["ref_id"] > 0)
73 {
74 $this->setPathOpen((int) $_GET["ref_id"]);
75 }
76 }
$n
Definition: RandomTest.php:80
$_GET["client_id"]
setSkipRootNode($a_val)
Set skip root node.
static _lookupObjId($a_id)
static _lookupType($a_id, $a_reference=false)
lookup object type
setTypeWhiteList($a_val)
Set type white list.
setPathOpen($a_id)
Set node path to be opened.
setOrderField($a_val, $a_numeric=false)
Set order field.
$white
Definition: example_030.php:84
global $ilSetting
Definition: privfeed.php:40
$path
Definition: index.php:22

References $_GET, $ilSetting, $n, $path, ilTreeExplorerGUI\$tree, $white, ilObject\_lookupObjId(), ilObject\_lookupType(), ilExplorerBaseGUI\setAjax(), ilTreeExplorerGUI\setOrderField(), ilTreeExplorerGUI\setPathOpen(), ilExplorerBaseGUI\setSkipRootNode(), and ilTreeExplorerGUI\setTypeWhiteList().

+ Here is the call graph for this function:

Member Function Documentation

◆ getChildsOfNode()

ilRepositoryExplorerGUI::getChildsOfNode (   $a_parent_node_id)

Get childs of node.

Parameters

return

Reimplemented from ilTreeExplorerGUI.

Definition at line 489 of file class.ilRepositoryExplorerGUI.php.

490 {
491 global $rbacsystem;
492
493 if (!$rbacsystem->checkAccess("read", $a_parent_node_id))
494 {
495 return array();
496 }
497
498 $obj_id = ilObject::_lookupObjId($a_parent_node_id);
499 if (!ilConditionHandler::_checkAllConditionsOfTarget($a_parent_node_id, $obj_id))
500 {
501 return array();
502 }
503
504 return parent::getChildsOfNode($a_parent_node_id);
505 }
_checkAllConditionsOfTarget($a_target_ref_id, $a_target_id, $a_target_type="", $a_usr_id=0)
checks wether all conditions of a target object are fulfilled

References ilConditionHandler\_checkAllConditionsOfTarget(), and ilObject\_lookupObjId().

+ Here is the call graph for this function:

◆ getNodeContent()

ilRepositoryExplorerGUI::getNodeContent (   $a_node)

Get node content.

Parameters
array
Returns

Reimplemented from ilExplorerBaseGUI.

Definition at line 102 of file class.ilRepositoryExplorerGUI.php.

103 {
104 global $lng;
105
106 $title = $a_node["title"];
107
108 if ($a_node["child"] == $this->getNodeId($this->getRootNode()))
109 {
110 if ($title == "ILIAS")
111 {
112 $title = $lng->txt("repository");
113 }
114 }
115 else if($a_node["type"] == "sess" &&
116 !trim($title))
117 {
118 // #14367 - see ilObjSessionListGUI
119 include_once('./Modules/Session/classes/class.ilSessionAppointment.php');
120 $app_info = ilSessionAppointment::_lookupAppointment($a_node["obj_id"]);
121 $title = ilSessionAppointment::_appointmentToString($app_info['start'], $app_info['end'],$app_info['fullday']);
122 }
123
124 return $title;
125 }
static _lookupAppointment($a_obj_id)
lookup appointment
static _appointmentToString($start, $end, $fulltime)
getNodeId($a_node)
Get id for node.
global $lng
Definition: privfeed.php:40

References $lng, ilSessionAppointment\_appointmentToString(), ilSessionAppointment\_lookupAppointment(), ilTreeExplorerGUI\getNodeId(), and getRootNode().

+ Here is the call graph for this function:

◆ getNodeHref()

ilRepositoryExplorerGUI::getNodeHref (   $a_node)

Get href for node.

Parameters
mixed$a_nodenode object/array
Returns
string href attribute

Reimplemented from ilExplorerBaseGUI.

Definition at line 185 of file class.ilRepositoryExplorerGUI.php.

186 {
187 global $ilCtrl;
188
189 switch($a_node["type"])
190 {
191 case "root":
192 $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $a_node["child"]);
193 $link = $ilCtrl->getLinkTargetByClass("ilrepositorygui", "");
194 $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $_GET["ref_id"]);
195 return $link;
196
197 case "cat":
198 $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $a_node["child"]);
199 $link = $ilCtrl->getLinkTargetByClass("ilrepositorygui", "");
200 $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $_GET["ref_id"]);
201 return $link;
202
203 case "catr":
204 $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $a_node["child"]);
205 $link = $ilCtrl->getLinkTargetByClass("ilrepositorygui", "redirect");
206 $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $_GET["ref_id"]);
207 return $link;
208
209 case "grp":
210 $ilCtrl->setParameterByClass("ilobjgroupgui", "ref_id", $a_node["child"]);
211 $link = $ilCtrl->getLinkTargetByClass(array("ilrepositorygui", "ilobjgroupgui"), "");
212 $ilCtrl->setParameterByClass("ilobjgroupgui", "ref_id", $_GET["ref_id"]);
213 return $link;
214
215 case "crs":
216 $ilCtrl->setParameterByClass("ilobjcoursegui", "ref_id", $a_node["child"]);
217 $link = $ilCtrl->getLinkTargetByClass(array("ilrepositorygui", "ilobjcoursegui"), "view");
218 $ilCtrl->setParameterByClass("ilobjcoursegui", "ref_id", $_GET["ref_id"]);
219 return $link;
220
221 case "crsr":
222 $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $a_node["child"]);
223 $link = $ilCtrl->getLinkTargetByClass("ilrepositorygui", "redirect");
224 $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $_GET["ref_id"]);
225 return $link;
226
227 case 'rcrs':
228 $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $a_node["child"]);
229 $link = $ilCtrl->getLinkTargetByClass("ilrepositorygui", "infoScreen");
230 $ilCtrl->setParameterByClass("ilrepositorygui", "ref_id", $_GET["ref_id"]);
231 return $link;
232
233 case 'prg':
234 $ilCtrl->setParameterByClass("ilobjstudyprogrammegui", "ref_id", $a_node["child"]);
235 $link = $ilCtrl->getLinkTargetByClass("ilobjstudyprogrammegui", "view");
236 $ilCtrl->setParameterByClass("ilobjstudyprogrammegui", "ref_id", $_GET["ref_id"]);
237 return $link;
238
239 default:
240 include_once('./Services/Link/classes/class.ilLink.php');
241 return ilLink::_getStaticLink($a_node["child"], $a_node["type"], true);
242
243 }
244 }
global $ilCtrl
Definition: ilias.php:18

References $_GET, $ilCtrl, and ilLink\_getStaticLink().

+ Here is the call graph for this function:

◆ getNodeIcon()

ilRepositoryExplorerGUI::getNodeIcon (   $a_node)

Get node icon.

Parameters
array
Returns

Reimplemented from ilExplorerBaseGUI.

Definition at line 133 of file class.ilRepositoryExplorerGUI.php.

134 {
135 $obj_id = ilObject::_lookupObjId($a_node["child"]);
136 return ilObject::_getIcon($obj_id, "tiny", $a_node["type"]);
137 }
static _getIcon($a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.

References ilObject\_getIcon(), and ilObject\_lookupObjId().

+ Here is the call graph for this function:

◆ getNodeIconAlt()

ilRepositoryExplorerGUI::getNodeIconAlt (   $a_node)

Get node icon alt text.

Parameters
arraynode array
Returns
string alt text

Reimplemented from ilTreeExplorerGUI.

Definition at line 145 of file class.ilRepositoryExplorerGUI.php.

146 {
147 global $lng;
148
149 if ($a_node["child"] == $this->getNodeId($this->getRootNode()))
150 {
151 $title = $a_node["title"];
152 if ($title == "ILIAS")
153 {
154 $title = $lng->txt("repository");
155 }
156 return $lng->txt("icon")." ".$title;
157 }
158
159
160 return parent::getNodeIconAlt($a_node);
161 }

References $lng, ilTreeExplorerGUI\getNodeId(), and getRootNode().

+ Here is the call graph for this function:

◆ getRootNode()

ilRepositoryExplorerGUI::getRootNode ( )

Get root node.

Parameters

return

Reimplemented from ilTreeExplorerGUI.

Definition at line 84 of file class.ilRepositoryExplorerGUI.php.

85 {
86 if ($this->top_node_id > 0)
87 {
88 return $this->getTree()->getNodeData($this->top_node_id);
89 }
90 else
91 {
92 return parent::getRootNode();
93 }
94 }

References ilTreeExplorerGUI\getTree().

Referenced by getNodeContent(), getNodeIconAlt(), and isNodeHighlighted().

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

◆ isNodeClickable()

ilRepositoryExplorerGUI::isNodeClickable (   $a_node)

Is node clickable?

Parameters
mixed$a_nodenode object/array
Returns
boolean node clickable true/false

Reimplemented from ilExplorerBaseGUI.

Definition at line 513 of file class.ilRepositoryExplorerGUI.php.

514 {
515 global $rbacsystem,$tree,$ilDB,$ilUser,$ilAccess;
516
517 $obj_id = ilObject::_lookupObjId($a_node["child"]);
518 if (!ilConditionHandler::_checkAllConditionsOfTarget($a_node["child"], $obj_id))
519 {
520 return false;
521 }
522
523 switch ($a_node["type"])
524 {
525 case "crs":
526 return $ilAccess->checkAccess("read", "", $a_node["child"]);
527
528 // visible groups can allways be clicked; group processing decides
529 // what happens next
530 case "grp":
531 return true;
532
533 case 'tst':
534 if(!$rbacsystem->checkAccess("read", $a_node["child"]))
535 {
536 return false;
537 }
538
539 $query = sprintf("SELECT * FROM tst_tests WHERE obj_fi=%s", $obj_id);
540 $res = $ilDB->query($query);
541 while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
542 {
543 return (bool) $row->complete;
544 }
545 return false;
546
547 case 'svy':
548 if(!$rbacsystem->checkAccess("read", $a_node["child"]))
549 {
550 return false;
551 }
552
553 $query = sprintf("SELECT * FROM svy_svy WHERE obj_fi=%s", $obj_id);
554 $res = $ilDB->query($query);
555 while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
556 {
557 return (bool) $row->complete;
558 }
559 return false;
560
561 // media pools can only be edited
562 case "mep":
563 if ($rbacsystem->checkAccess("read", $a_node["child"]))
564 {
565 return true;
566 }
567 else
568 {
569 return false;
570 }
571 break;
572
573 case 'crsr':
574 case 'catr':
575 include_once('./Services/ContainerReference/classes/class.ilContainerReferenceAccess.php');
576 return ilContainerReferenceAccess::_isAccessible($a_node["child"]);
577
578 case 'prg':
579 return $rbacsystem->checkAccess("visible", $a_node["child"]);
580
581 // all other types are only clickable, if read permission is given
582 default:
583 if ($rbacsystem->checkAccess("read", $a_node["child"]))
584 {
585 // check if lm is online
586 if ($a_node["type"] == "lm")
587 {
588 include_once("./Modules/LearningModule/classes/class.ilObjLearningModule.php");
589 $lm_obj =& new ilObjLearningModule($a_node["child"]);
590 if((!$lm_obj->getOnline()) && (!$rbacsystem->checkAccess('write', $a_node["child"])))
591 {
592 return false;
593 }
594 }
595 // check if fblm is online
596 if ($a_node["type"] == "htlm")
597 {
598 include_once("./Modules/HTMLLearningModule/classes/class.ilObjFileBasedLM.php");
599 $lm_obj =& new ilObjFileBasedLM($a_node["child"]);
600 if((!$lm_obj->getOnline()) && (!$rbacsystem->checkAccess('write', $a_node["child"])))
601 {
602 return false;
603 }
604 }
605 // check if fblm is online
606 if ($a_node["type"] == "sahs")
607 {
608 include_once("./Modules/ScormAicc/classes/class.ilObjSAHSLearningModule.php");
609 $lm_obj =& new ilObjSAHSLearningModule($a_node["child"]);
610 if((!$lm_obj->getOnline()) && (!$rbacsystem->checkAccess('write', $a_node["child"])))
611 {
612 return false;
613 }
614 }
615 // check if glossary is online
616 if ($a_node["type"] == "glo")
617 {
618 $obj_id = ilObject::_lookupObjectId($a_node["child"]);
619 include_once("./Modules/Glossary/classes/class.ilObjGlossary.php");
620 if((!ilObjGlossary::_lookupOnline($obj_id)) &&
621 (!$rbacsystem->checkAccess('write', $a_node["child"])))
622 {
623 return false;
624 }
625 }
626
627 return true;
628 }
629 else
630 {
631 return false;
632 }
633 break;
634 }
635 }
const DB_FETCHMODE_OBJECT
Definition: class.ilDB.php:11
static _isAccessible($a_ref_id)
Check if target is accessible and not deleted.
File Based Learning Module (HTML) object.
_lookupOnline($a_id)
check wether content object is online
Class ilObjLearningModule.
Class ilObjSCORMLearningModule.
static _lookupObjectId($a_ref_id)
lookup object id
global $ilDB
global $ilUser
Definition: imgupload.php:15

References $ilDB, $ilUser, $query, $res, $row, ilTreeExplorerGUI\$tree, ilConditionHandler\_checkAllConditionsOfTarget(), ilContainerReferenceAccess\_isAccessible(), ilObject\_lookupObjectId(), ilObject\_lookupObjId(), ilObjGlossary\_lookupOnline(), and DB_FETCHMODE_OBJECT.

+ Here is the call graph for this function:

◆ isNodeHighlighted()

ilRepositoryExplorerGUI::isNodeHighlighted (   $a_node)

Is node highlighted?

Parameters
mixed$a_nodenode object/array
Returns
boolean node visible true/false

Reimplemented from ilExplorerBaseGUI.

Definition at line 169 of file class.ilRepositoryExplorerGUI.php.

170 {
171 if ($a_node["child"] == $_GET["ref_id"] ||
172 ($_GET["ref_id"] == "" && $a_node["child"] == $this->getNodeId($this->getRootNode())))
173 {
174 return true;
175 }
176 return false;
177 }

References $_GET, ilTreeExplorerGUI\getNodeId(), and getRootNode().

+ Here is the call graph for this function:

◆ isNodeVisible()

ilRepositoryExplorerGUI::isNodeVisible (   $a_node)

Is node visible.

Parameters

return

Reimplemented from ilExplorerBaseGUI.

Definition at line 252 of file class.ilRepositoryExplorerGUI.php.

253 {
254 global $ilAccess,$tree,$ilSetting;
255
256 if (!$ilAccess->checkAccess('visible', '', $a_node["child"]))
257 {
258 return false;
259 }
260
261 $is_course = false;
262 $container_parent_id = $tree->checkForParentType($a_node["child"], 'grp');
263 if(!$container_parent_id)
264 {
265 $is_course = true;
266 $container_parent_id = $tree->checkForParentType($a_node["child"], 'crs');
267 }
268 if($container_parent_id)
269 {
270 // do not display session materials for container course/group
271 if($ilSetting->get("repository_tree_pres") == "all_types" && $container_parent_id != $a_node["child"])
272 {
273 // get container event items only once
274 if(!isset($this->session_materials[$container_parent_id]))
275 {
276 include_once './Modules/Session/classes/class.ilEventItems.php';
277 $this->session_materials[$container_parent_id] = ilEventItems::_getItemsOfContainer($container_parent_id);
278 }
279 if(in_array($a_node["child"], $this->session_materials[$container_parent_id]))
280 {
281 return false;
282 }
283 }
284 }
285
286 return true;
287 }
_getItemsOfContainer($a_ref_id)

References $ilSetting, ilTreeExplorerGUI\$tree, and ilEventItems\_getItemsOfContainer().

+ Here is the call graph for this function:

◆ sortChilds()

ilRepositoryExplorerGUI::sortChilds (   $a_childs,
  $a_parent_node_id 
)

Sort childs.

Parameters
array$a_childsarray of child nodes
mixed$a_parent_nodeparent node
Returns
array array of childs nodes

Reimplemented from ilExplorerBaseGUI.

Definition at line 297 of file class.ilRepositoryExplorerGUI.php.

298 {
299 global $objDefinition, $ilAccess;
300
301 $parent_obj_id = ilObject::_lookupObjId($a_parent_node_id);
302 if ($parent_obj_id > 0)
303 {
304 $parent_type = ilObject::_lookupType($parent_obj_id);
305 }
306 else
307 {
308 $parent_type = "dummy";
309 $this->type_grps["dummy"] = array("root" => "dummy");
310 }
311
312 // alex: if this is not initialized, things are messed up
313 // see bug 0015978
314 $this->type_grps = array();
315
316 if (empty($this->type_grps[$parent_type]))
317 {
318 $this->type_grps[$parent_type] =
319 $objDefinition->getGroupedRepositoryObjectTypes($parent_type);
320 }
321
322 // #14465 - item groups
323 include_once('./Services/Object/classes/class.ilObjectActivation.php');
324 $group = array();
325 $igroup = array(); // used for item groups, see bug #0015978
326 $in_any_group = array();
327 foreach ($a_childs as $child)
328 {
329 // item group: get childs
330 if ($child["type"] == "itgr")
331 {
332 $g = $child["child"];
334 if ($items)
335 {
336 // add item group ref id to item group block
337 $this->type_grps[$parent_type]["itgr"]["ref_ids"][] = $g;
338
339 // #16697 - check item group permissions
340 $may_read = $ilAccess->checkAccess('read', '', $g);
341
342 // see bug #0015978
343 if ($may_read)
344 {
345 include_once("./Services/Container/classes/class.ilContainerSorting.php");
346 $items = ilContainerSorting::_getInstance($parent_obj_id)->sortSubItems('itgr', $child["obj_id"], $items);
347 }
348
349 foreach($items as $item)
350 {
351 $in_any_group[] = $item["child"];
352
353 if ($may_read)
354 {
355 $igroup[$g][] = $item;
356 $group[$g][] = $item;
357 }
358 }
359 }
360 }
361 // type group
362 else
363 {
364 $g = $objDefinition->getGroupOfObj($child["type"]);
365 if ($g == "")
366 {
367 $g = $child["type"];
368 }
369 $group[$g][] = $child;
370 }
371 }
372
373 $in_any_group = array_unique($in_any_group);
374
375 // custom block sorting?
376 include_once("./Services/Container/classes/class.ilContainerSorting.php");
377 $sort = ilContainerSorting::_getInstance($parent_obj_id);
378 $block_pos = $sort->getBlockPositions();
379 if (sizeof($block_pos))
380 {
381 $tmp = $this->type_grps[$parent_type];
382
383 $this->type_grps[$parent_type] = array();
384 foreach ($block_pos as $block_type)
385 {
386 // type group
387 if (!is_numeric($block_type) &&
388 array_key_exists($block_type, $tmp))
389 {
390 $this->type_grps[$parent_type][$block_type] = $tmp[$block_type];
391 unset($tmp[$block_type]);
392 }
393 // item group
394 else
395 {
396 // using item group ref id directly
397 $this->type_grps[$parent_type][$block_type] = array();
398 }
399 }
400
401 // append missing
402 if (sizeof($tmp))
403 {
404 foreach ($tmp as $block_type => $grp)
405 {
406 $this->type_grps[$parent_type][$block_type] = $grp;
407 }
408 }
409
410 unset($tmp);
411 }
412
413 $childs = array();
414 $done = array();
415
416 foreach ($this->type_grps[$parent_type] as $t => $g)
417 {
418 // type group
419 if (is_array($group[$t]))
420 {
421 // see bug #0015978
422 // custom sorted igroups
423 if (is_array($igroup[$t]))
424 {
425 foreach ($igroup[$t] as $k => $item)
426 {
427 if (!in_array($item["child"], $done))
428 {
429 $childs[] = $item;
430 $done[] = $item["child"];
431 }
432 }
433 }
434 else
435 {
436 // do we have to sort this group??
437 include_once("./Services/Container/classes/class.ilContainer.php");
438 include_once("./Services/Container/classes/class.ilContainerSorting.php");
439 $sort = ilContainerSorting::_getInstance($parent_obj_id);
440 $group = $sort->sortItems($group);
441
442 // need extra session sorting here
443 if ($t == "sess")
444 {
445
446 }
447
448 foreach ($group[$t] as $k => $item)
449 {
450 if (!in_array($item["child"], $done) &&
451 !in_array($item["child"], $in_any_group)) // #16697
452 {
453 $childs[] = $item;
454 $done[] = $item["child"];
455 }
456 }
457 }
458 }
459 // item groups (if not custom block sorting)
460 else if ($t == "itgr" &&
461 is_array($g["ref_ids"]))
462 {
463 foreach ($g["ref_ids"] as $ref_id)
464 {
465 if (isset($group[$ref_id]))
466 {
467 foreach ($group[$ref_id] as $k => $item)
468 {
469 if(!in_array($item["child"], $done))
470 {
471 $childs[] = $item;
472 $done[] = $item["child"];
473 }
474 }
475 }
476 }
477 }
478 }
479
480 return $childs;
481 }
static _getInstance($a_obj_id)
get instance by obj_id
static getItemsByItemGroup($a_item_group_ref_id)
Get materials of item group.
$ref_id
Definition: sahs_server.php:39

References ilTreeExplorerGUI\$childs, $ref_id, $t, ilContainerSorting\_getInstance(), ilObject\_lookupObjId(), ilObject\_lookupType(), and ilObjectActivation\getItemsByItemGroup().

+ Here is the call graph for this function:

Field Documentation

◆ $session_materials

ilRepositoryExplorerGUI::$session_materials = array()
protected

Definition at line 19 of file class.ilRepositoryExplorerGUI.php.

◆ $type_grps

ilRepositoryExplorerGUI::$type_grps = array()
protected

Definition at line 18 of file class.ilRepositoryExplorerGUI.php.


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