Public Member Functions | Data Fields

ilFileExplorer Class Reference

Public Member Functions

 ilFileExplorer ($a_directory, $a_target)
 Constructor public.
 setOrderColumn ($a_column)
 set the order column 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
 checkPermissions ($a_check)
 check permissions via rbac
 outputIcons ($a_icons)
 output icons
 setOutput ($a_parent_dir, $a_depth=1)
 Creates output for explorer view in admin menue recursive method public.
 getFiles ($a_parent_dir, $a_order)
 getOutput ()
 Creates output recursive method public.
 formatHeader ($a_obj_id, $a_option)
 Creates output for header (is empty here but can be overwritten in derived classes).
 formatObject ($a_node_id, $a_option)
 Creates output recursive method private.
 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)
 adds item to 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
 setFiltered ($a_bool)
 active/deactivate the filter public
 checkFilter ($a_item)
 check if item is in filter private

Data Fields

 $ilias
 $output
 $format_options
 $directory
 $target
 $target_get
 $params_get
 $expanded
 $order_column
 $expand_target
 $output_icons

Detailed Description

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


Member Function Documentation

ilFileExplorer::addFilter ( a_item  ) 

adds item to the filter public

Parameters:
string object type to add
Returns:
boolean

Definition at line 559 of file class.ilFileExplorer.php.

        {
                $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;
        }

ilFileExplorer::checkFilter ( a_item  ) 

check if item is in filter private

Parameters:
string 
Returns:
integer

Definition at line 677 of file class.ilFileExplorer.php.

Referenced by setOutput().

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

Here is the caller graph for this function:

ilFileExplorer::checkPermissions ( a_check  ) 

check permissions via rbac

Parameters:
boolean $a_check check true/false

Definition at line 206 of file class.ilFileExplorer.php.

        {
                $this->rbac_check = $a_check;
        }

ilFileExplorer::createLines ( a_depth  ) 

Creates lines for explorer view private.

Parameters:
integer 

Definition at line 476 of file class.ilFileExplorer.php.

References is_in_array().

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

ilFileExplorer::createTarget ( a_type,
a_node_id 
)

Creates Get Parameter private.

Parameters:
string 
integer 
Returns:
string

Definition at line 441 of file class.ilFileExplorer.php.

Referenced by 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."expand=".$a_node_id.$this->params_get;
        }

Here is the caller graph for this function:

ilFileExplorer::delFilter ( a_item  ) 

adds item to the filter public

Parameters:
string object type to delete
Returns:
boolean

Definition at line 596 of file class.ilFileExplorer.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;
                }
        }

ilFileExplorer::formatHeader ( 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

Definition at line 357 of file class.ilFileExplorer.php.

Referenced by getOutput().

        {
        }

Here is the caller graph for this function:

ilFileExplorer::formatObject ( a_node_id,
a_option 
)

Creates output recursive method private.

Parameters:
integer 
array 
Returns:
string

Definition at line 369 of file class.ilFileExplorer.php.

References $lng, $target, $tpl, createTarget(), and ilUtil::getImagePath().

Referenced by 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);
                }

                $tpl = new ilTemplate("tpl.tree.html", true, true);

                foreach ($a_option["tab"] as $picture)
                {
                        if ($picture == 'plus')
                        {
                                $target = $this->createTarget('+',$a_node_id);
                                $tpl->setCurrentBlock("expander");
                                $tpl->setVariable("LINK_TARGET", $target);
                                $tpl->setVariable("IMGPATH", ilUtil::getImagePath("browser/plus.gif"));
                                $tpl->parseCurrentBlock();
                        }

                        if ($picture == 'minus')
                        {
                                $target = $this->createTarget('-',$a_node_id);
                                $tpl->setCurrentBlock("expander");
                                $tpl->setVariable("LINK_TARGET", $target);
                                $tpl->setVariable("IMGPATH", ilUtil::getImagePath("browser/minus.gif"));
                                $tpl->parseCurrentBlock();
                        }

                        if ($picture == 'blank' or $picture == 'winkel'
                           or $picture == 'hoch' or $picture == 'quer' or $picture == 'ecke')
                        {
                                $tpl->setCurrentBlock("expander");
                                $tpl->setVariable("IMGPATH", ilUtil::getImagePath("browser/".$picture.".gif"));
                                $tpl->setVariable("TXT_ALT_IMG", $lng->txt($a_option["desc"]));
                                $tpl->parseCurrentBlock();
                        }
                }

                if ($this->output_icons)
                {
                        $tpl->setCurrentBlock("icon");
                        $tpl->setVariable("ICON_IMAGE" ,ilUtil::getImagePath("icon_".$a_option["type"].".gif"));
                        $tpl->setVariable("TXT_ALT_IMG", $lng->txt($a_option["desc"]));
                        $tpl->parseCurrentBlock();
                }
                $tpl->setCurrentBlock("row");
                $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("TITLE", $a_option["title"]);

                if ($this->frame_target != "")
                {
                        $tpl->setVariable("TARGET", " target=\"".$this->frame_target."\"");
                }

                $tpl->parseCurrentBlock();

                $this->output[] = $tpl->get();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilFileExplorer::getFiles ( a_parent_dir,
a_order 
)

Definition at line 298 of file class.ilFileExplorer.php.

References $file, and $files.

Referenced by setOutput().

        {
                $files = array();
                $handle = opendir($a_parent_dir);
                while (false !== ($file = readdir($handle)))
                {
                if (!is_dir($file))
                        {
                                $files[] = array("type" => "file", "name" => $file);
                        }
                        else
                        {
                                $files[] = array("type" => "dir", "name" => $file);
                        }
        }
                return $files;
        }

Here is the caller graph for this function:

ilFileExplorer::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 539 of file class.ilFileExplorer.php.

References $key.

Referenced by 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:

ilFileExplorer::getOutput (  ) 

Creates output recursive method public.

Returns:
string

Definition at line 322 of file class.ilFileExplorer.php.

References $key, formatHeader(), and formatObject().

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

                /* ???
                $depth = $this->tree->getMaximumDepth();

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

                foreach ($this->format_options as $key => $options)
                {
                        if ($options["visible"] and $key != 0)
                        {
                                $this->formatObject($options["child"],$options);
                        }
                        if ($key == 0)
                        {
                                $this->formatHeader($options["child"],$options);
                        }
                }

                return implode('',$this->output);
        }

Here is the call graph for this function:

ilFileExplorer::ilFileExplorer ( a_directory,
a_target 
)

Constructor public.

Parameters:
string scriptname

Definition at line 117 of file class.ilFileExplorer.php.

References $ilias.

        {
                global $ilias;

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

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

                $this->ilias =& $ilias;
                $this->directory = $a_directory;
                $this->output = array();
                $this->expanded = array();
                $this->target = $a_target;
                $this->target_get = 'ref_id';
                $this->frame_target = "_top";
                $this->order_column = "title";
                $this->expand_target = $_SERVER["PATH_INFO"];
                $this->rbac_check = true;
                $this->output_icons = true;
        }

ilFileExplorer::is_in_array ( a_start,
a_depth 
)

DESCRIPTION MISSING private.

Parameters:
integer 
integer 
Returns:
boolean

Definition at line 516 of file class.ilFileExplorer.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:

ilFileExplorer::outputIcons ( a_icons  ) 

output icons

Parameters:
boolean $a_icons output icons true/false

Definition at line 216 of file class.ilFileExplorer.php.

        {
                $this->output_icons = $a_icons;
        }

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

Definition at line 638 of file class.ilFileExplorer.php.

References $_SESSION, and $key.

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

ilFileExplorer::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 196 of file class.ilFileExplorer.php.

        {
                $this->expand_target = $a_exp_target;
        }

ilFileExplorer::setFiltered ( a_bool  ) 

active/deactivate the filter public

Parameters:
boolean 
Returns:
boolean

Definition at line 665 of file class.ilFileExplorer.php.

        {
                $this->filtered = $a_bool;
                return true;
        }

ilFileExplorer::setFrameTarget ( a_target  ) 

set target frame or not frame?

Parameters:
string public

Definition at line 466 of file class.ilFileExplorer.php.

        {
                $this->frame_target = $a_target;
        }

ilFileExplorer::setOrderColumn ( a_column  ) 

set the order column public

Parameters:
string name of order column

Definition at line 149 of file class.ilFileExplorer.php.

        {
                $this->order_column = $a_column;
        }

ilFileExplorer::setOutput ( a_parent_dir,
a_depth = 1 
)

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 230 of file class.ilFileExplorer.php.

References $counter, $files, $key, $tab, checkFilter(), getFiles(), and getIndex().

        {
                static $counter = 0;

                if (!isset($a_parent_id))
                {
                        $this->ilias->raiseError(get_class($this)."::setOutput(): No node_id given!",$this->ilias->error_obj->WARNING);
                }
                $files = $this->getFiles($a_parent_dir, $this->order_column);
                if (count($files) > 0)
                {
                        $tab = ++$a_depth - 2;
                        foreach ($objects as $key => $object)
                        {
                                //ask for FILTER
                                if ($this->filtered == false || $this->checkFilter($object["type"])==true)
                                {
                                        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"]["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';
                                        }

                                        // only if parent is expanded and visible, object is visible
                                        if ($object["child"] != $this->tree->getRootId() and (!in_array($object["parent"],$this->expanded)
                                        or !$this->format_options["$parent_index"]["visible"]))
                                        {
                                                $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 (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;

                                        // Recursive
                                        $this->setOutput($object["child"],$a_depth);
                                } //if FILTER
                        } //foreach
                } //if
        } //function

Here is the call graph for this function:

ilFileExplorer::setParamsGet ( a_params_get  ) 

set additional params to be passed in Get-string public

Parameters:
array 

Definition at line 174 of file class.ilFileExplorer.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;
        }

ilFileExplorer::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 159 of file class.ilFileExplorer.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;
        }


Field Documentation

ilFileExplorer::$directory

Definition at line 61 of file class.ilFileExplorer.php.

ilFileExplorer::$expand_target

Definition at line 103 of file class.ilFileExplorer.php.

ilFileExplorer::$expanded

Definition at line 89 of file class.ilFileExplorer.php.

ilFileExplorer::$format_options

Definition at line 54 of file class.ilFileExplorer.php.

ilFileExplorer::$ilias

Definition at line 40 of file class.ilFileExplorer.php.

Referenced by ilFileExplorer().

ilFileExplorer::$order_column

Definition at line 96 of file class.ilFileExplorer.php.

ilFileExplorer::$output

Definition at line 47 of file class.ilFileExplorer.php.

ilFileExplorer::$output_icons

Definition at line 110 of file class.ilFileExplorer.php.

ilFileExplorer::$params_get

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

ilFileExplorer::$target

Definition at line 68 of file class.ilFileExplorer.php.

Referenced by formatObject().

ilFileExplorer::$target_get

Definition at line 75 of file class.ilFileExplorer.php.


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