54 $a_selection_gui =
null,
55 string $a_selection_cmd =
"selectObject",
56 string $a_selection_par =
"sel_ref_id",
57 string $a_id =
"rep_exp_sel",
58 string $a_node_parameter_name =
"node_id" 62 $this->tree = $DIC->repositoryTree();
63 $this->obj_definition = $DIC[
"objDefinition"];
64 $this->
lng = $DIC->language();
65 $tree = $DIC->repositoryTree();
67 $objDefinition = $DIC[
"objDefinition"];
68 $this->request = $DIC->repository()->internal()->gui()->standardRequest();
69 $this->cur_ref_id = $this->request->getRefId();
71 $this->
access = $DIC->access();
72 $this->
ctrl = $DIC->ctrl();
74 if (is_null($a_selection_gui)) {
75 $a_selection_gui = $a_parent_obj;
78 $this->selection_gui = is_object($a_selection_gui)
79 ? strtolower(get_class($a_selection_gui))
80 : strtolower($a_selection_gui);
81 $this->selection_cmd = $a_selection_cmd;
82 $this->selection_par = $a_selection_par;
91 foreach ($objDefinition->getSubObjectsRecursively(
"root") as $rtype) {
92 if ($rtype[
"name"] !==
"itgr" && !$objDefinition->isSideBlock($rtype[
"name"])) {
93 $white[] = $rtype[
"name"];
100 if ($this->cur_ref_id > 0) {
108 $this->nc_modifier = $a_val;
121 if (is_callable(
$c)) {
125 $title = $a_node[
"title"];
126 if ($title ===
"ILIAS" && (
int) $a_node[
"child"] === (
int) $this->
getNodeId($this->
getRootNode())) {
127 $title =
$lng->
txt(
"repository");
130 return (
string) $title;
144 $title = $a_node[
"title"];
145 if ($title ===
"ILIAS") {
146 $title =
$lng->
txt(
"repository");
148 return $lng->
txt(
"icon") .
" " . $title;
151 return parent::getNodeIconAlt($a_node);
163 if ((
int) $a_node[
"child"] === $this->cur_ref_id ||
164 ($this->cur_ref_id === 0 && (
int) $a_node[
"child"] === (
int) $this->
getNodeId($this->
getRootNode()))) {
174 if ($this->select_postvar ===
"") {
175 $ilCtrl->
setParameterByClass($this->selection_gui, $this->selection_par, $a_node[
"child"]);
176 $link = $ilCtrl->getLinkTargetByClass($this->selection_gui, $this->selection_cmd);
177 $ilCtrl->setParameterByClass($this->selection_gui, $this->selection_par,
"");
189 if (!$ilAccess->checkAccess(
'visible',
'', $a_node[
"child"])) {
196 public function sortChilds(array $a_childs, $a_parent_node_id): array
202 if ($parent_obj_id > 0) {
205 $parent_type =
"dummy";
206 $this->type_grps[
"dummy"] = [
"root" =>
"dummy"];
209 if (empty($this->type_grps[$parent_type])) {
210 $this->type_grps[$parent_type] =
211 $objDefinition::getGroupedRepositoryObjectTypes($parent_type);
215 foreach ($a_childs as $child) {
216 $g = $objDefinition->getGroupOfObj($child[
"type"]);
220 $group[$g][] = $child;
225 if (is_array($wl) && in_array(
"poll", $wl,
true)) {
226 $this->type_grps[$parent_type][
"poll"] = [];
230 foreach ($this->type_grps[$parent_type] as $t => $g) {
231 if (isset($group[$t])) {
234 $group = $sort->sortItems($group);
236 foreach ($group[$t] as $k => $item) {
248 if (!$ilAccess->checkAccess(
"read",
"", (
int) $a_parent_node_id)) {
252 return parent::getChildsOfNode($a_parent_node_id);
257 $this->clickable_permission = $rbac_perm;
264 if (!$ilAccess->hasUserRBACorAnyPositionAccess($this->clickable_permission, $a_node[
"child"])) {
277 $this->highlighted_node = $a_value;
287 $this->clickable_types = $a_types;
297 $this->selectable_types = $a_types;
isNodeHighlighted($a_node)
setSkipRootNode(bool $a_val)
ilObjectDefinition $obj_definition
static _getIcon(int $obj_id=0, string $size="big", string $type="", bool $offline=false)
Get icon for repository item.
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
isNodeSelectable($a_node)
setTypeWhiteList(array $a_val)
Set type white list.
setParameterByClass(string $a_class, string $a_parameter, $a_value)
setPathOpen($a_id)
Set node path to be opened.
string $clickable_permission
setClickablePermission(string $rbac_perm)
static _lookupObjId(int $ref_id)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
setNodeContentModifier(Closure $a_val)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
sortChilds(array $a_childs, $a_parent_node_id)
getNodeId($a_node)
Get id for node.
StandardGUIRequest $request
setSelectableTypes(array $a_types)
getRootNode()
Get root node.
setClickableTypes(array $a_types)
Explorer class that works on tree objects (Services/Tree)
__construct(Container $dic, ilPlugin $plugin)
getChildsOfNode($a_parent_node_id)
static _getInstance(int $a_obj_id)
setOrderField(string $a_val, bool $a_numeric=false)
setHighlightedNode(string $a_value)
static _lookupType(int $id, bool $reference=false)
setChildLimit(int $a_val)
getTypeWhiteList()
Get type white list.
__construct(string $a_expl_id, $a_parent_obj, string $a_parent_cmd, ilTree $a_tree, string $a_node_parameter_name="node_id")