Public Member Functions | Data Fields

ilExplorer Class Reference

Inheritance diagram for ilExplorer:

Public Member Functions

 ilExplorer ($a_target)
 Constructor public.
 setOrderColumn ($a_column)
 set the order column public
 setOrderDirection ($a_direction)
 set the order direction public
 setTargetGet ($a_target_get)
 set the varname in Get-string public
 setParamsGet ($a_params_get)
 set additional params to be passed in Get-string public
 setExpandTarget ($a_exp_target)
 target script for expand icons
 highlightNode ($a_id)
 set highlighted node
 checkPermissions ($a_check)
 check permissions via rbac
 setSessionExpandVariable ($a_var_name="expand")
 set name of expand session variable
 outputIcons ($a_icons)
 output icons
 setClickable ($a_type, $a_clickable)
 (de-)activates links for a certain object type
 isVisible ($a_ref_id, $a_type)
 isClickable ($a_type, $a_ref_id=0)
 check if links for certain object type are activated
 setPostSort ($a_sort)
 process post sorting
 setFilterMode ($a_mode=IL_FM_NEGATIVE)
 set filter mode
 getFilterMode ()
 get filter mode
 setOutput ($a_parent_id, $a_depth=1, $a_obj_id=0)
 Creates output for explorer view in admin menue recursive method public.
 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.
 forceExpanded ($a_obj_id)
 force expansion of node
 getOutput ()
 Creates output recursive method public.
 handleListEndTags (&$a_tpl_tree, $a_cur_depth, $a_item_depth)
 handle list end tags ( and )
 handleListStartTags (&$a_tpl_tree, $a_cur_depth, $a_item_depth)
 handle list start tags (
 formatHeader (&$tpl, $a_obj_id, $a_option)
 Creates output for header (is empty here but can be overwritten in derived classes).
 formatObject (&$tpl, $a_node_id, $a_option, $a_obj_id=0)
 Creates output recursive method private.
 getImage ($a_name, $a_type="", $a_obj_id="")
 get image path (may be overwritten by derived classes)
 getNodeStyleClass ($a_id, $a_type)
 get style class for node
 buildLinkTarget ($a_node_id, $a_type)
 get link target (may be overwritten by derived classes)
 buildOnClick ($a_node_id, $a_type, $a_title)
 get onclick event handling (may be overwritten by derived classes)
 buildTitle ($a_title, $a_id, $a_type)
 standard implementation for title, may be overwritten by derived classes
 buildDescription ($a_desc, $a_id, $a_type)
 standard implementation for description, may be overwritten by derived classes
 buildFrameTarget ($a_type, $a_child=0, $a_obj_id=0)
 get frame target (may be overwritten by derived classes)
 createTarget ($a_type, $a_node_id)
 Creates Get Parameter private.
 setFrameTarget ($a_target)
 set target frame or not frame?
 createLines ($a_depth)
 Creates lines for explorer view private.
 is_in_array ($a_start, $a_depth)
 DESCRIPTION MISSING private.
 getIndex ($a_data)
 get index of format_options array from specific ref_id,parent_id private
 addFilter ($a_item)
 adds item to the filter public
 delFilter ($a_item)
 removes item from the filter public
 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
 forceExpandAll ($a_mode, $a_show_minus=true)
 force expandAll.
 setFiltered ($a_bool)
 active/deactivate the filter public
 checkFilter ($a_item)
 check if item is in filter private
 sortNodes ($a_nodes)
 sort nodes and put adm object to the end of sorted array private

Data Fields

 $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

Detailed Description

Definition at line 37 of file class.ilExplorer.php.


Member Function Documentation

ilExplorer::addFilter ( a_item  ) 

adds item to the filter public

Parameters:
string object type to add
Returns:
boolean

Definition at line 1030 of file class.ilExplorer.php.

Referenced by ilConditionSelector::ilConditionSelector(), ilExplorer(), ilLMMenuObjectSelector::ilLMMenuObjectSelector(), ilMaterialExplorer::ilMaterialExplorer(), ilPaymentObjectSelector::ilPaymentObjectSelector(), ilRepositoryCopySelector::ilRepositoryCopySelector(), ilRepositoryExplorer::ilRepositoryExplorer(), ilRepositoryLinkSelector::ilRepositoryLinkSelector(), ilRoleDesktopItemSelector::ilRoleDesktopItemSelector(), ilSearchResultExplorer::ilSearchResultExplorer(), ilSearchRootSelector::ilSearchRootSelector(), ilSolutionExplorer::ilSolutionExplorer(), and ilTableOfContentsExplorer::ilTableOfContentsExplorer().

        {
                $ispresent = 0;

                if (is_array($this->filter))
                {
                        //run through filter
                    foreach ($this->filter as $item)
                        {
                                if ($item == $a_item)
                                {
                                    $is_present = 1;

                                        return false;
                                }
                        }
                }
                else
                {
                        $this->filter = array();
                }
                if ($is_present == 0)
                {
                        $this->filter[] = $a_item;
                }

                return true;
        }

Here is the caller graph for this function:

ilExplorer::buildDescription ( a_desc,
a_id,
a_type 
)

standard implementation for description, may be overwritten by derived classes

Reimplemented in ilBookmarkExplorer, and ilIntLinkRepItemExplorer.

Definition at line 891 of file class.ilExplorer.php.

Referenced by formatObject().

        {
                return "";
        }

Here is the caller graph for this function:

ilExplorer::buildFrameTarget ( a_type,
a_child = 0,
a_obj_id = 0 
)
ilExplorer::buildLinkTarget ( a_node_id,
a_type 
)

get link target (may be overwritten by derived classes)

Reimplemented in ilSolutionExplorer, ilAdministrationExplorer, ilBookmarkExplorer, ilConditionSelector, ilRepositoryCopySelector, ilRepositoryExplorer, ilRepositoryLinkSelector, ilRoleDesktopItemSelector, ilSearchResultExplorer, ilStyleScopeExplorer, ilIntLinkRepItemExplorer, ilLMEditorExplorer, ilLMMenuObjectSelector, ilTableOfContentsExplorer, ilLMTOCExplorer, ilObjectSelector, ilPaymentObjectSelector, ilSearchRootSelector, and ilMaterialExplorer.

Definition at line 864 of file class.ilExplorer.php.

References $target.

Referenced by ilLMExplorer::formatHeader(), ilHACPExplorer::formatObject(), ilAICCExplorer::formatObject(), and formatObject().

        {
                $target = (strpos($this->target, "?") === false)
                        ? $this->target."?"
                        : $this->target."&";
                return $target.$this->target_get."=".$a_node_id.$this->params_get;
        }

Here is the caller graph for this function:

ilExplorer::buildOnClick ( a_node_id,
a_type,
a_title 
)

get onclick event handling (may be overwritten by derived classes)

Reimplemented in ilIntLinkRepItemExplorer.

Definition at line 875 of file class.ilExplorer.php.

Referenced by formatObject(), and ilBookmarkExplorer::formatObject().

        {
                return "";
        }

Here is the caller graph for this function:

ilExplorer::buildTitle ( a_title,
a_id,
a_type 
)

standard implementation for title, may be overwritten by derived classes

Reimplemented in ilIntLinkRepItemExplorer, ilLMEditorExplorer, ilTableOfContentsExplorer, and ilLMTOCExplorer.

Definition at line 883 of file class.ilExplorer.php.

Referenced by formatObject(), and ilBookmarkExplorer::formatObject().

        {
                return $a_title;
        }

Here is the caller graph for this function:

ilExplorer::checkFilter ( a_item  ) 

check if item is in filter private

Parameters:
string 
Returns:
integer

Definition at line 1159 of file class.ilExplorer.php.

References getFilterMode().

Referenced by ilSCORMExplorer::setOutput(), and setOutput().

        {
                if (is_array($this->filter))
                {
                        if (in_array($a_item, $this->filter))
                        {
                                $ret = true;
                        }
                        else
                        {
                                $ret = false;
                        }
                }
                else
                {
                        $ret = false;
                }

                if ($this->getFilterMode() == IL_FM_NEGATIVE )
                {
                        return $ret;
                }
                else
                {
                        return !$ret;
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilExplorer::checkPermissions ( a_check  ) 

check permissions via rbac

Parameters:
boolean $a_check check true/false

Definition at line 307 of file class.ilExplorer.php.

Referenced by ilAICCExplorer::ilAICCExplorer(), ilHACPExplorer::ilHACPExplorer(), ilLMExplorer::ilLMExplorer(), ilMediaPoolExplorer::ilMediaPoolExplorer(), and ilSCORMExplorer::ilSCORMExplorer().

        {
                $this->rbac_check = $a_check;
        }

Here is the caller graph for this function:

ilExplorer::createLines ( a_depth  ) 

Creates lines for explorer view private.

Parameters:
integer 

Definition at line 947 of file class.ilExplorer.php.

References is_in_array().

Referenced by ilSCORMExplorer::getOutput(), ilPublicSectionSelector::getOutput(), ilMailExplorer::getOutput(), ilForumExplorer::getOutput(), getOutput(), and ilBookmarkExplorer::getOutput().

        {
                for ($i = 0; $i < count($this->format_options); ++$i)
                {
                        if ($this->format_options[$i]["depth"] == $a_depth+1
                           and !$this->format_options[$i]["container"]
                                and $this->format_options[$i]["depth"] != 1)
                        {
                                $this->format_options[$i]["tab"]["$a_depth"] = "quer";
                        }

                        if ($this->format_options[$i]["depth"] == $a_depth+2)
                        {
                                if ($this->is_in_array($i+1,$this->format_options[$i]["depth"]))
                                {
                                        $this->format_options[$i]["tab"]["$a_depth"] = "winkel";
                                }
                                else
                                {
                                        $this->format_options[$i]["tab"]["$a_depth"] = "ecke";
                                }
                        }

                        if ($this->format_options[$i]["depth"] > $a_depth+2)
                        {
                                if ($this->is_in_array($i+1,$a_depth+2))
                                {
                                        $this->format_options[$i]["tab"]["$a_depth"] = "hoch";
                                }
                        }
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilExplorer::createTarget ( a_type,
a_node_id 
)

Creates Get Parameter private.

Parameters:
string 
integer 
Returns:
string

Reimplemented in ilForumExplorer, ilMailExplorer, and ilSCORMExplorer.

Definition at line 912 of file class.ilExplorer.php.

Referenced by formatObject(), and ilBookmarkExplorer::formatObject().

        {
                if (!isset($a_type) or !is_string($a_type) or !isset($a_node_id))
                {
                        $this->ilias->raiseError(get_class($this)."::createTarget(): Missing parameter or wrong datatype! ".
                                                                        "type: ".$a_type." node_id:".$a_node_id,$this->ilias->error_obj->WARNING);
                }

                // SET expand parameter:
                //     positive if object is expanded
                //     negative if object is compressed
                $a_node_id = $a_type == '+' ? $a_node_id : -(int) $a_node_id;

                $sep = (is_int(strpos($this->expand_target, "?")))
                        ? "&"
                        : "?";
                return $this->expand_target.$sep.$this->expand_variable."=".$a_node_id.$this->params_get."#".abs($a_node_id);
        }

Here is the caller graph for this function:

ilExplorer::delFilter ( a_item  ) 

removes item from the filter public

Parameters:
string object type to remove
Returns:
boolean

Definition at line 1065 of file class.ilExplorer.php.

        {
                //check if a filter exists
                if (is_array($this->filter))
                {
                        //build copy of the existing filter without the given item
                        $tmp = array();

                        foreach ($this->filter as $item)
                    {
                                if ($item != $a_item)
                                {
                                    $tmp[] = $item;
                                }
                                else
                                {
                                        $deleted = 1;
                                }
                        }

                        $this->filter = $tmp;
                }
                else
                {
                        return false;
                }

                if ($deleted == 1)
                {
                        return true;
                }
                else
                {
                        return false;
                }
        }

ilExplorer::forceExpandAll ( a_mode,
a_show_minus = true 
)

force expandAll.

if true all nodes are expanded regardless of the values in $expanded (default: false) public

Parameters:
boolean 

Definition at line 1135 of file class.ilExplorer.php.

Referenced by ilPublicSectionSelector::ilPublicSectionSelector().

        {
                $this->expand_all = (bool) $a_mode;
                $this->show_minus = $a_show_minus;
        }

Here is the caller graph for this function:

ilExplorer::forceExpanded ( a_obj_id  ) 

force expansion of node

Reimplemented in ilAdministrationExplorer, ilTableOfContentsExplorer, and ilLMTOCExplorer.

Definition at line 579 of file class.ilExplorer.php.

Referenced by setOutput().

        {
                return false;
        }

Here is the caller graph for this function:

ilExplorer::formatHeader ( &$  tpl,
a_obj_id,
a_option 
)

Creates output for header (is empty here but can be overwritten in derived classes).

public

Parameters:
integer obj_id
integer array options

Reimplemented in ilAdministrationExplorer, ilRepositoryExplorer, ilStyleScopeExplorer, ilIntLinkRepItemExplorer, ilLMEditorExplorer, ilLMExplorer, and ilMediaPoolExplorer.

Definition at line 710 of file class.ilExplorer.php.

Referenced by getOutput().

        {
        }

Here is the caller graph for this function:

ilExplorer::formatObject ( &$  tpl,
a_node_id,
a_option,
a_obj_id = 0 
)

Creates output recursive method private.

Parameters:
integer 
array 
Returns:
string

Reimplemented in ilBookmarkExplorer, ilForumExplorer, and ilPublicSectionSelector.

Definition at line 722 of file class.ilExplorer.php.

References $lng, $target, $tpl, buildDescription(), buildFrameTarget(), buildLinkTarget(), buildOnClick(), buildTitle(), createTarget(), getImage(), getNodeStyleClass(), isClickable(), and ilUtil::shortenText().

Referenced by ilMailExplorer::getOutput(), and getOutput().

        {
                global $lng;
                if (!isset($a_node_id) or !is_array($a_option))
                {
                        $this->ilias->raiseError(get_class($this)."::formatObject(): Missing parameter or wrong datatype! ".
                                                                        "node_id: ".$a_node_id." options:".var_dump($a_option),$this->ilias->error_obj->WARNING);
                }

                $pic = false;
                foreach ($a_option["tab"] as $picture)
                {
                        if ($picture == 'plus')
                        {
                                $tpl->setCurrentBlock("exp_desc");
                                $tpl->setVariable("EXP_DESC", $lng->txt("expand"));
                                $tpl->parseCurrentBlock();
                                $target = $this->createTarget('+',$a_node_id);
                                $tpl->setCurrentBlock("expander");
                                $tpl->setVariable("LINK_NAME", $a_node_id);
                                $tpl->setVariable("LINK_TARGET_EXPANDER", $target);
                                $tpl->setVariable("IMGPATH", $this->getImage("browser/plus.gif"));
                                $tpl->parseCurrentBlock();
                                $pic = true;
                        }

                        if ($picture == 'minus' && $this->show_minus)
                        {
                                $tpl->setCurrentBlock("exp_desc");
                                $tpl->setVariable("EXP_DESC", $lng->txt("collapse"));
                                $tpl->parseCurrentBlock();
                                $target = $this->createTarget('-',$a_node_id);
                                $tpl->setCurrentBlock("expander");
                                $tpl->setVariable("LINK_NAME", $a_node_id);
                                $tpl->setVariable("LINK_TARGET_EXPANDER", $target);
                                $tpl->setVariable("IMGPATH", $this->getImage("browser/minus.gif"));
                                $tpl->parseCurrentBlock();
                                $pic = true;
                        }

                        /*
                        if ($picture == 'blank' or $picture == 'winkel'
                           or $picture == 'hoch' or $picture == 'quer' or $picture == 'ecke')
                        {
                                $picture = "blank";
                                $tpl->setCurrentBlock("lines");
                                $tpl->setVariable("IMGPATH_LINES", $this->getImage("browser/".$picture.".gif"));
                                $tpl->parseCurrentBlock();
                        }
                        */
                }
                
                if (!$pic)
                {
                        $tpl->setCurrentBlock("blank");
                        $tpl->setVariable("BLANK_PATH", $this->getImage("browser/blank.gif"));
                        $tpl->parseCurrentBlock();
                }

                if ($this->output_icons)
                {
                        $tpl->setCurrentBlock("icon");
                        $tpl->setVariable("ICON_IMAGE" , $this->getImage("icon_".$a_option["type"].".gif", $a_option["type"], $a_obj_id));
                        
                        $tpl->setVariable("TARGET_ID" , "iconid_".$a_node_id);
                        $this->iconList[] = "iconid_".$a_node_id;
                        $tpl->setVariable("TXT_ALT_IMG", $lng->txt($a_option["desc"]));
                        $tpl->parseCurrentBlock();
                }

                if ($this->isClickable($a_option["type"], $a_node_id,$a_obj_id))        // output link
                {
                        $tpl->setCurrentBlock("link");
                        //$target = (strpos($this->target, "?") === false) ?
                        //      $this->target."?" : $this->target."&";
                        //$tpl->setVariable("LINK_TARGET", $target.$this->target_get."=".$a_node_id.$this->params_get);
                        $tpl->setVariable("LINK_TARGET", $this->buildLinkTarget($a_node_id, $a_option["type"]));
                                
                        $style_class = $this->getNodeStyleClass($a_node_id, $a_option["type"]);
                        
                        if ($style_class != "")
                        {
                                $tpl->setVariable("A_CLASS", ' class="'.$style_class.'" ' );
                        }

                        if (($onclick = $this->buildOnClick($a_node_id, $a_option["type"], $a_option["title"])) != "")
                        {
                                $tpl->setVariable("ONCLICK", "onClick=\"$onclick\"");
                        }

                        $tpl->setVariable("LINK_NAME", $a_node_id);
                        $tpl->setVariable("TITLE", ilUtil::shortenText(
                                $this->buildTitle($a_option["title"], $a_node_id, $a_option["type"]),
                                $this->textwidth, true));
                        $tpl->setVariable("DESC", ilUtil::shortenText(
                                $this->buildDescription($a_option["description"], $a_node_id, $a_option["type"]), $this->textwidth, true));
                        $frame_target = $this->buildFrameTarget($a_option["type"], $a_node_id, $a_option["obj_id"]);
                        if ($frame_target != "")
                        {
                                $tpl->setVariable("TARGET", " target=\"".$frame_target."\"");
                        }
                        $tpl->parseCurrentBlock();
                }
                else                    // output text only
                {
                        $tpl->setCurrentBlock("text");
                        $tpl->setVariable("OBJ_TITLE", ilUtil::shortenText(
                                $this->buildTitle($a_option["title"], $a_node_id, $a_option["type"]), $this->textwidth, true));
                        $tpl->setVariable("OBJ_DESC", ilUtil::shortenText(
                                $this->buildDescription($a_option["description"], $a_node_id, $a_option["type"]), $this->textwidth, true));
                        $tpl->parseCurrentBlock();
                }

                $tpl->setCurrentBlock("list_item");
                $tpl->parseCurrentBlock();
                $tpl->touchBlock("element");
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilExplorer::getFilterMode (  ) 

get filter mode

Returns:
int filter mode IL_FM_NEGATIVE | IL_FM_NEGATIVE

Definition at line 414 of file class.ilExplorer.php.

Referenced by checkFilter().

        {
                return $this->filter_mode;
        }

Here is the caller graph for this function:

ilExplorer::getImage ( a_name,
a_type = "",
a_obj_id = "" 
)

get image path (may be overwritten by derived classes)

Reimplemented in ilAdministrationExplorer, and ilRepositoryExplorer.

Definition at line 843 of file class.ilExplorer.php.

References ilUtil::getImagePath().

Referenced by formatObject(), and ilBookmarkExplorer::formatObject().

        {
                return ilUtil::getImagePath($a_name);
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilExplorer::getIndex ( a_data  ) 

get index of format_options array from specific ref_id,parent_id private

Parameters:
array object data
Returns:
integer index

Definition at line 1010 of file class.ilExplorer.php.

References $key.

Referenced by ilSCORMExplorer::setOutput(), ilMailExplorer::setOutput(), ilForumExplorer::setOutput(), setOutput(), and ilBookmarkExplorer::setOutput().

        {
                foreach ($this->format_options as $key => $value)
                {
                        if (($value["child"] == $a_data["parent"]))
                        {
                                return $key;
                        }
                }

                // exit on error
                $this->ilias->raiseError(get_class($this)."::getIndex(): Error in tree. No index found!",$this->ilias->error_obj->FATAL);
        }

Here is the caller graph for this function:

ilExplorer::getNodeStyleClass ( a_id,
a_type 
)

get style class for node

Reimplemented in ilLMEditorExplorer.

Definition at line 852 of file class.ilExplorer.php.

Referenced by formatObject().

        {
                if ($a_id == $this->highlighted)
                {
                        return "il_HighlightedNode";
                }
                return "";
        }

Here is the caller graph for this function:

ilExplorer::getOutput (  ) 

Creates output recursive method public.

Returns:
string

Reimplemented in ilBookmarkExplorer, ilForumExplorer, ilMailExplorer, ilPublicSectionSelector, and ilSCORMExplorer.

Definition at line 590 of file class.ilExplorer.php.

References $ilBench, $key, $tpl, createLines(), formatHeader(), formatObject(), handleListEndTags(), and handleListStartTags().

        {
                global $ilBench, $tpl;

                $ilBench->start("Explorer", "getOutput");

                $this->format_options[0]["tab"] = array();

                $depth = $this->tree->getMaximumDepth();

                for ($i=0;$i<$depth;++$i)
                {
                        $this->createLines($i);
                }

                $tpl->addBlockFile("EXPLORER_TOP", "exp_top", "tpl.explorer_top.html");
//echo "hh";
                // set global body class
                $tpl->setVariable("BODY_CLASS", "il_Explorer");
                
                $tpl_tree = new ilTemplate("tpl.tree.html", true, true);
                
                $cur_depth = -1;
                foreach ($this->format_options as $key => $options)
                {
//echo "-".$options["depth"]."-";
                        if (!$options["visible"])
                        {
                                continue;
                        }
                        
                        // end tags
                        $this->handleListEndTags($tpl_tree, $cur_depth, $options["depth"]);
                        
                        // start tags
                        $this->handleListStartTags($tpl_tree, $cur_depth, $options["depth"]);
                        
                        $cur_depth = $options["depth"];
                        
                        if ($options["visible"] and $key != 0)
                        {
                                $this->formatObject($tpl_tree, $options["child"],$options,$options['obj_id']);
                        }
                        if ($key == 0)
                        {
                                $this->formatHeader($tpl_tree, $options["child"],$options);
                        }
                                                
                }
                
                $this->handleListEndTags($tpl_tree, $cur_depth, -1);
                
                $ilBench->stop("Explorer", "getOutput");
                
                return $tpl_tree->get();
        }

Here is the call graph for this function:

ilExplorer::handleListEndTags ( &$  a_tpl_tree,
a_cur_depth,
a_item_depth 
)

handle list end tags ( and )

Definition at line 650 of file class.ilExplorer.php.

Referenced by ilPublicSectionSelector::getOutput(), ilMailExplorer::getOutput(), ilForumExplorer::getOutput(), getOutput(), and ilBookmarkExplorer::getOutput().

        {
                if ($a_item_depth < $a_cur_depth)
                {
                        // </li></ul> for ending lists
                        for ($i = 0; $i < ($a_cur_depth - $a_item_depth); $i++)
                        {
                                $a_tpl_tree->touchBlock("end_list_item");
                                $a_tpl_tree->touchBlock("element");

                                $a_tpl_tree->touchBlock("end_list");
                                $a_tpl_tree->touchBlock("element");
                        }
                }
                else if ($a_item_depth == $a_cur_depth)
                {
                        // </li> for ending list items
                        $a_tpl_tree->touchBlock("end_list_item");
                        $a_tpl_tree->touchBlock("element");
                }
        }

Here is the caller graph for this function:

ilExplorer::handleListStartTags ( &$  a_tpl_tree,
a_cur_depth,
a_item_depth 
)

handle list start tags (

)

Definition at line 675 of file class.ilExplorer.php.

Referenced by ilPublicSectionSelector::getOutput(), ilMailExplorer::getOutput(), ilForumExplorer::getOutput(), getOutput(), and ilBookmarkExplorer::getOutput().

        {
                // start tags
                if ($a_item_depth > $a_cur_depth)
                {
                        // <ul><li> for new lists
                        if ($a_item_depth > 1)
                        {
                                $a_tpl_tree->touchBlock("start_list");
                        }
                        else
                        {
                                $a_tpl_tree->touchBlock("start_list_no_indent");
                        }
                        $a_tpl_tree->touchBlock("element");
                        
                        $a_tpl_tree->touchBlock("start_list_item");
                        $a_tpl_tree->touchBlock("element");
                }
                else
                {
                        // <li> items
                        $a_tpl_tree->touchBlock("start_list_item");
                        $a_tpl_tree->touchBlock("element");
                }
        }

Here is the caller graph for this function:

ilExplorer::highlightNode ( a_id  ) 

set highlighted node

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

        {
                $this->highlighted = $a_id;
        }

ilExplorer::ilExplorer ( a_target  ) 

Constructor public.

Parameters:
string scriptname

Definition at line 178 of file class.ilExplorer.php.

References $ilias, $type, addFilter(), setFiltered(), and setFilterMode().

Referenced by ilAdministrationExplorer::ilAdministrationExplorer(), ilAICCExplorer::ilAICCExplorer(), ilBookmarkExplorer::ilBookmarkExplorer(), ilConditionSelector::ilConditionSelector(), ilForumExplorer::ilForumExplorer(), ilHACPExplorer::ilHACPExplorer(), ilLMExplorer::ilLMExplorer(), ilLMMenuObjectSelector::ilLMMenuObjectSelector(), ilIntLinkRepItemExplorer::ilLMMenuObjectSelector(), ilMailExplorer::ilMailExplorer(), ilMaterialExplorer::ilMaterialExplorer(), ilMediaPoolExplorer::ilMediaPoolExplorer(), ilObjectSelector::ilObjectSelector(), ilPaymentObjectSelector::ilPaymentObjectSelector(), ilRepositoryCopySelector::ilRepositoryCopySelector(), ilRepositoryExplorer::ilRepositoryExplorer(), ilRepositoryLinkSelector::ilRepositoryLinkSelector(), ilRoleDesktopItemSelector::ilRoleDesktopItemSelector(), ilSCORMExplorer::ilSCORMExplorer(), ilSearchResultExplorer::ilSearchResultExplorer(), ilSearchRootSelector::ilSearchRootSelector(), ilSolutionExplorer::ilSolutionExplorer(), and ilStyleScopeExplorer::ilStyleScopeExplorer().

        {
                global $ilias, $objDefinition;

                if (!isset($a_target) or !is_string($a_target))
                {
                        $this->ilias->raiseError(get_class($this)."::Constructor(): No target given!",$this->ilias->error_obj->WARNING);
                }

                // autofilter object types in devmode
                $devtypes = $objDefinition->getDevModeAll();

                if (count($devtypes > 0))
                {
                        // activate filter if objects found in devmode
                        $this->setFiltered(true);

                        foreach ($devtypes as $type)
                        {
                                $this->addFilter($type);
                        }
                }

                $this->ilias =& $ilias;
                $this->output = array();
                $this->expanded = array();
                $this->target = $a_target;
                $this->target_get = 'ref_id';
                $this->frame_target = "content";
                $this->order_column = "title";
                $this->tree = new ilTree(ROOT_FOLDER_ID);
                $this->expand_target = $_SERVER["PATH_INFO"];
                $this->rbac_check = true;
                $this->output_icons = true;
                $this->expand_variable = "expand";
                $this->textwidth=50;
                $this->post_sort=true;
                $this->setFilterMode(IL_FM_NEGATIVE);
                $this->highlighted = "";
                $this->show_minus = true;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilExplorer::is_in_array ( a_start,
a_depth 
)

DESCRIPTION MISSING private.

Parameters:
integer 
integer 
Returns:
boolean

Definition at line 987 of file class.ilExplorer.php.

Referenced by createLines().

        {
                for ($i=$a_start;$i<count($this->format_options);++$i)
                {
                        if ($this->format_options[$i]["depth"] < $a_depth)
                        {
                                break;
                        }

                        if ($this->format_options[$i]["depth"] == $a_depth)
                        {
                                return true;
                        }
                }
                return false;
        }

Here is the caller graph for this function:

ilExplorer::isClickable ( a_type,
a_ref_id = 0 
)

check if links for certain object type are activated

Parameters:
string $a_type object type
Returns:
boolean true if linking is activated

Reimplemented in ilSolutionExplorer, ilConditionSelector, ilRepositoryCopySelector, ilRepositoryLinkSelector, ilRoleDesktopItemSelector, ilSearchResultExplorer, ilAICCExplorer, ilIntLinkRepItemExplorer, ilLMExplorer, ilLMMenuObjectSelector, ilObjectSelector, ilPaymentObjectSelector, and ilMaterialExplorer.

Definition at line 374 of file class.ilExplorer.php.

Referenced by formatObject(), and ilBookmarkExplorer::formatObject().

        {
                // in this standard implementation
                // only the type determines, wether an object should be clickable or not
                // but this method can be overwritten and make use of the ref id
                // (this happens e.g. in class ilRepositoryExplorerGUI)
                if ($this->is_clickable[$a_type] == "n")
                {
                        return false;
                }
                else
                {
                        return true;
                }
        }

Here is the caller graph for this function:

ilExplorer::isVisible ( a_ref_id,
a_type 
)

Reimplemented in ilAdministrationExplorer, ilRepositoryExplorer, ilTableOfContentsExplorer, ilLMTOCExplorer, and ilSCORMExplorer.

Definition at line 351 of file class.ilExplorer.php.

References $ilBench, and $rbacsystem.

Referenced by setOutput().

        {
                global $rbacsystem, $ilBench;
                
                if (!$this->rbac_check)
                {
                        return true;
                }
                
                $ilBench->start("Explorer", "setOutput_isVisible");
                $visible = $rbacsystem->checkAccess('visible',$a_ref_id);
                $ilBench->stop("Explorer", "setOutput_isVisible");

                return $visible;
        }

Here is the caller graph for this function:

ilExplorer::modifyChilds ( a_parent_id,
a_objects 
)

Reimplemented in ilAdministrationExplorer.

Definition at line 561 of file class.ilExplorer.php.

Referenced by setOutput().

        {
                return $a_objects;
        }

Here is the caller graph for this function:

ilExplorer::outputIcons ( a_icons  ) 

output icons

Parameters:
boolean $a_icons output icons true/false

Definition at line 327 of file class.ilExplorer.php.

Referenced by ilAICCExplorer::ilAICCExplorer(), ilHACPExplorer::ilHACPExplorer(), and ilSCORMExplorer::ilSCORMExplorer().

        {
                $this->output_icons = $a_icons;
        }

Here is the caller graph for this function:

ilExplorer::setClickable ( a_type,
a_clickable 
)

(de-)activates links for a certain object type

Parameters:
string $a_type object type
boolean $a_clickable true/false

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

        {
                if($a_clickable)
                {
                        $this->is_clickable[$a_type] = "";
                }
                else
                {
                        $this->is_clickable[$a_type] = "n";
                }
        }

ilExplorer::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

Parameters:
string pipe-separated integer

Reimplemented in ilBookmarkExplorer, ilForumExplorer, and ilMailExplorer.

Definition at line 1108 of file class.ilExplorer.php.

References $_SESSION, and $key.

Referenced by ilSCORMExplorer::setOutput().

        {
                // IF ISN'T SET CREATE SESSION VARIABLE
                if(!is_array($_SESSION[$this->expand_variable]))
                {
                        $_SESSION[$this->expand_variable] = array($this->tree->getRootId());
                }
                // IF $_GET["expand"] is positive => expand this node
                if ($a_node_id > 0 && !in_array($a_node_id,$_SESSION[$this->expand_variable]))
                {
                        array_push($_SESSION[$this->expand_variable],$a_node_id);
                }
                // IF $_GET["expand"] is negative => compress this node
                if ($a_node_id < 0)
                {
                        $key = array_keys($_SESSION[$this->expand_variable],-(int) $a_node_id);
                        unset($_SESSION[$this->expand_variable][$key[0]]);
                }
                $this->expanded = $_SESSION[$this->expand_variable];
        }

Here is the caller graph for this function:

ilExplorer::setExpandTarget ( a_exp_target  ) 

target script for expand icons

Parameters:
string $a_exp_target script name of target script(may include parameters) initially set to $_SERVER["PATH_INFO"]

Definition at line 289 of file class.ilExplorer.php.

Referenced by ilTableOfContentsExplorer::ilTableOfContentsExplorer().

        {
                $this->expand_target = $a_exp_target;
        }

Here is the caller graph for this function:

ilExplorer::setFiltered ( a_bool  ) 
ilExplorer::setFilterMode ( a_mode = IL_FM_NEGATIVE  ) 
ilExplorer::setFrameTarget ( a_target  ) 

set target frame or not frame?

Parameters:
string public

Definition at line 937 of file class.ilExplorer.php.

Referenced by ilTableOfContentsExplorer::ilTableOfContentsExplorer(), and ilTableOfContentsExplorer::setOfflineMode().

        {
                $this->frame_target = $a_target;
        }

Here is the caller graph for this function:

ilExplorer::setOrderColumn ( a_column  ) 

set the order column public

Parameters:
string name of order column

Definition at line 225 of file class.ilExplorer.php.

Referenced by ilAICCExplorer::ilAICCExplorer(), ilHACPExplorer::ilHACPExplorer(), and ilSCORMExplorer::ilSCORMExplorer().

        {
                $this->order_column = $a_column;
        }

Here is the caller graph for this function:

ilExplorer::setOrderDirection ( a_direction  ) 

set the order direction public

Parameters:
string name of order column

Definition at line 235 of file class.ilExplorer.php.

        {
                if ($a_direction == "desc")
                {
                        $this->order_direction = $a_direction;
                }
                else
                {
                        $this->order_direction = "asc";
                }
        }

ilExplorer::setOutput ( a_parent_id,
a_depth = 1,
a_obj_id = 0 
)

Creates output for explorer view in admin menue recursive method public.

Parameters:
integer parent_node_id where to start from (default=0, 'root')
integer depth level where to start (default=1)
Returns:
string

Definition at line 427 of file class.ilExplorer.php.

References $counter, $ilBench, $key, $rbacadmin, $rbacsystem, $tab, checkFilter(), forceExpanded(), getIndex(), isVisible(), modifyChilds(), showChilds(), and sortNodes().

        {
                global $rbacadmin, $rbacsystem, $ilBench;
                static $counter = 0;

                if (!isset($a_parent_id))
                {
                        $this->ilias->raiseError(get_class($this)."::setOutput(): No node_id given!",$this->ilias->error_obj->WARNING);
                }

                if ($this->showChilds($a_parent_id,$a_obj_id))
                {
//echo "<br>getChildsFor:".$a_parent_id.":";
                        $ilBench->start("Explorer", "setOutput_getChilds");
                        $objects = $this->tree->getChilds($a_parent_id, $this->order_column);
                        $ilBench->stop("Explorer", "setOutput_getChilds");
                }
                else
                {
                        $objects = array();
                }
                
                $objects = $this->modifyChilds($a_parent_id, $objects);
                
                // force expansion (of single nodes)
                if ($this->forceExpanded($a_obj_id) && !in_array($a_obj_id, $this->expanded))
                {
                        $this->expanded[] = $a_obj_id;
                }

                if (count($objects) > 0)
                {
                        // Maybe call a lexical sort function for the child objects
                        $ilBench->start("Explorer", "setOutput_sortNodes");
                        $tab = ++$a_depth - 2;
                        if ($this->post_sort)
                        {
                                $objects = $this->sortNodes($objects);
                        }
                        $ilBench->stop("Explorer", "setOutput_sortNodes");

                        $skip_rest = false;
                        
                        foreach ($objects as $key => $object)
                        {
                                // skip childs, if parent is not expanded
                                if (!$this->forceExpanded($object["child"]) && $skip_rest)
                                {
                                        continue;
                                }
                                //ask for FILTER
                                if ($this->filtered == false or $this->checkFilter($object["type"]) == false)
                                {
                                        if ($this->isVisible($object['child'],$object['type']))
                                        {
                                                $ilBench->start("Explorer", "setOutput_setFormatOptions");
                                                if ($object["child"] != $this->tree->getRootId())
                                                {
                                                        $parent_index = $this->getIndex($object);
                                                }
                                                $this->format_options["$counter"]["parent"]             = $object["parent"];
                                                $this->format_options["$counter"]["child"]              = $object["child"];
                                                $this->format_options["$counter"]["title"]              = $object["title"];
                                                $this->format_options["$counter"]["type"]               = $object["type"];
                                                $this->format_options["$counter"]["obj_id"]             = $object["obj_id"];
                                                $this->format_options["$counter"]["desc"]               = "obj_".$object["type"];
                                                $this->format_options["$counter"]["depth"]              = $tab;
                                                $this->format_options["$counter"]["container"]  = false;
                                                $this->format_options["$counter"]["visible"]    = true;

                                                // Create prefix array
                                                for ($i = 0; $i < $tab; ++$i)
                                                {
                                                         $this->format_options["$counter"]["tab"][] = 'blank';
                                                }

                                                // fix explorer (sometimes explorer disappears)
                                                if ($parent_index == 0)
                                                {
                                                        if (!$this->expand_all and !in_array($object["parent"], $this->expanded))
                                                        {
                                                                $this->expanded[] = $object["parent"];
                                                        }
                                                }

                                                // only if parent is expanded and visible, object is visible
                                                if ($object["child"] != $this->tree->getRootId() and ((!$this->expand_all and !in_array($object["parent"],$this->expanded))
                                                   or !$this->format_options["$parent_index"]["visible"]))
                                                {
                                                        if (!$this->forceExpanded($object["child"]))
                                                        {
                                                                // if parent is not expanded, and one child is
                                                                // visible we don't need more information and
                                                                // can skip the rest of the childs
                                                                if ($this->format_options["$counter"]["visible"])
                                                                {
//echo "-setSkipping";
                                                                        $skip_rest = true;
                                                                }
                                                                $this->format_options["$counter"]["visible"] = false;
                                                        }
                                                }

                                                // if object exists parent is container
                                                if ($object["child"] != $this->tree->getRootId())
                                                {
                                                        $this->format_options["$parent_index"]["container"] = true;

                                                        if ($this->expand_all or in_array($object["parent"],$this->expanded))
                                                        {
                                                                $this->format_options["$parent_index"]["tab"][($tab-2)] = 'minus';
                                                        }
                                                        else
                                                        {
                                                                $this->format_options["$parent_index"]["tab"][($tab-2)] = 'plus';
                                                        }
                                                }

                                                ++$counter;
                                                $ilBench->stop("Explorer", "setOutput_setFormatOptions");
                                                
                                                // stop recursion if 2. level beyond expanded nodes is reached
                                                if ($this->expand_all or in_array($object["parent"],$this->expanded) or ($object["parent"] == 0)
                                                        or $this->forceExpanded($object["child"]))
                                                {
                                                        // recursive
                                                        $this->setOutput($object["child"],$a_depth,$object['obj_id']);
                                                }
                                        } //if
                                } //if FILTER
                        } //foreach
                } //if
        } //function

Here is the call graph for this function:

ilExplorer::setParamsGet ( a_params_get  ) 

set additional params to be passed in Get-string public

Parameters:
array 

Definition at line 267 of file class.ilExplorer.php.

References $key.

        {
                if (!isset($a_params_get) or !is_array($a_params_get))
                {
                        $this->ilias->raiseError(get_class($this)."::setTargetGet(): No target given!",$this->ilias->error_obj->WARNING);
                }

                foreach ($a_params_get as $key => $val)
                {
                        $str .= "&".$key."=".$val;
                }

                $this->params_get = $str;
        }

ilExplorer::setPostSort ( a_sort  ) 

process post sorting

Parameters:
boolean $a_sort true / false

Definition at line 394 of file class.ilExplorer.php.

Referenced by ilLMExplorer::ilLMExplorer(), and ilMediaPoolExplorer::ilMediaPoolExplorer().

        {
                $this->post_sort = $a_sort;
        }

Here is the caller graph for this function:

ilExplorer::setSessionExpandVariable ( a_var_name = "expand"  ) 
ilExplorer::setTargetGet ( a_target_get  ) 

set the varname in Get-string public

Parameters:
string varname containing Ids to be used in GET-string

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

        {
                if (!isset($a_target_get) or !is_string($a_target_get))
                {
                        $this->ilias->raiseError(get_class($this)."::setTargetGet(): No target given!",$this->ilias->error_obj->WARNING);
                }

                $this->target_get = $a_target_get;
        }

ilExplorer::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.

ilRepositoryExplorerGUI)

Reimplemented in ilSolutionExplorer, ilConditionSelector, ilRepositoryCopySelector, ilRepositoryLinkSelector, ilRoleDesktopItemSelector, ilSearchResultExplorer, ilIntLinkRepItemExplorer, ilLMMenuObjectSelector, ilObjectSelector, ilPaymentObjectSelector, ilSearchRootSelector, and ilMaterialExplorer.

Definition at line 571 of file class.ilExplorer.php.

Referenced by ilSCORMExplorer::setOutput(), and setOutput().

        {
                return true;
        }

Here is the caller graph for this function:

ilExplorer::sortNodes ( a_nodes  ) 

sort nodes and put adm object to the end of sorted array private

Parameters:
array node list as returned by iltree::getChilds();
Returns:
array sorted nodes

Definition at line 1193 of file class.ilExplorer.php.

References $key, and ilUtil::sortArray().

Referenced by setOutput().

        {
                foreach ($a_nodes as $key => $node)
                {
                        if ($node["type"] == "adm")
                        {
                                $match = $key;
                                $adm_node = $node;
                                break;
                        }
                }

                // cut off adm node
                isset($match) ? array_splice($a_nodes,$match,1) : "";

                $a_nodes = ilUtil::sortArray($a_nodes,$this->order_column,$this->order_direction);

                // append adm node to end of list
                isset ($match) ? array_push($a_nodes,$adm_node) : "";

                return $a_nodes;
        }

Here is the call graph for this function:

Here is the caller graph for this function:


Field Documentation

ilExplorer::$expand_all = false

Definition at line 171 of file class.ilExplorer.php.

ilExplorer::$expand_target

Definition at line 114 of file class.ilExplorer.php.

ilExplorer::$expand_variable

Definition at line 136 of file class.ilExplorer.php.

ilExplorer::$expanded

Definition at line 93 of file class.ilExplorer.php.

ilExplorer::$filter_mode

Definition at line 164 of file class.ilExplorer.php.

ilExplorer::$filtered = false

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

ilExplorer::$format_options

Definition at line 58 of file class.ilExplorer.php.

ilExplorer::$ilias
ilExplorer::$is_clickable

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

ilExplorer::$order_column

Definition at line 100 of file class.ilExplorer.php.

ilExplorer::$order_direction = "asc"

Definition at line 107 of file class.ilExplorer.php.

ilExplorer::$output
ilExplorer::$output_icons

Definition at line 129 of file class.ilExplorer.php.

ilExplorer::$params_get

Definition at line 86 of file class.ilExplorer.php.

ilExplorer::$post_sort

Definition at line 150 of file class.ilExplorer.php.

ilExplorer::$rbac_check

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

ilExplorer::$target
ilExplorer::$target_get

Definition at line 79 of file class.ilExplorer.php.

ilExplorer::$tree

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