Public Member Functions | Data Fields

ilCtrl Class Reference

Public Member Functions

 ilCtrl ()
 control class constructor
 callBaseClass ()
 Calls base class of current request.
 getModuleDir ()
 get directory of current module
forwardCommand (&$a_gui_object)
 forward flow of control to next gui class this invokes the executeCommand() method of the gui object that is passed via reference
 getNodeIdForTargetClass ($a_par_node, $a_class)
 Searchs a node for a given class ($a_class) "near" the another node ($a_par_node).
 getCmdNode ()
 get command target node
 addLocation ($a_title, $a_link, $a_target="")
 add a location to the locator array
 getLocations ()
 get locations array
 addTab ($a_lang_var, $a_link, $a_cmd, $a_class)
 add a tab to tabs array
 getTabs ()
 get tabs array
 getCallStructure ($a_class, $a_nr=0, $a_parent=0)
 Get call structure of class context.
 forwards ($a_from_class, $a_to_class)
 Stores which classes forwards commands to which other classes.
 saveParameter (&$a_obj, $a_parameter)
 Set parameters that should be passed in every form and link of a gui class.
 setParameter (&$a_obj, $a_parameter, $a_value)
 Set parameters that should be passed a form and link of a gui class.
 setParameterByClass ($a_class, $a_parameter, $a_value)
 Same as setParameterByClass, except that a class name is passed.
 getNextClass ()
 Get next class in the control path from the current class to the target command class.
 lookupClassPath ($a_class_name)
 Get class path that can be used in include statements for a given class name.
 getClassForClasspath ($a_class_path)
 this method assumes that the class path has the format "dir/class.<class_name>.php"
 getPathNew ($a_source_node, $a_target_node)
 get path in call structure
 setTargetScript ($a_target_script)
 set target script name
 getTargetScript ()
 get target script name
 getCmd ($a_default_cmd="")
 determines current get/post command
 setCmd ($a_cmd)
 set the current command
 setCmdClass ($a_cmd_class)
 set the current command class
 getCmdClass ()
 determines responsible class for current command
 getFormAction (&$a_gui_obj)
 get form action url for gui class object
 getFormActionByClass ($a_class)
 get form action url for gui class name
 redirect (&$a_gui_obj, $a_cmd="")
 redirectByClass ($a_class, $a_cmd="")
 redirect to other gui class
 getLinkTarget (&$a_gui_obj, $a_cmd="")
 get link target for (current) gui class
 getLinkTargetByClass ($a_class, $a_cmd="", $a_transits="", $a_prepend_transits=false)
 get link target for a target class
 setReturn (&$a_gui_obj, $a_cmd)
 set return command
 setReturnByClass ($a_class, $a_cmd)
 set return command
 returnToParent (&$a_gui_obj, $a_anchor="")
 redirects to next parent class that used setReturn
 getRedirectSource ()
 get current redirect source
 getParentReturn (&$a_gui_obj)
 getParentReturnByClass ($a_class)
 searchReturnClass ($a_class)
 get current return class
 getUrlParameters ($a_class, $a_str, $a_cmd="", $a_transits="")
 appendTransitClasses ($a_str)
 getTransitArray ()
 addTransit ($a_class)
 getParameterArray (&$a_gui_obj, $a_cmd="", $a_incl_transit=true)
 getParameterArrayByClass ($a_class, $a_cmd="", $a_transits="")

Data Fields

 $target_script
 $forward
 $parent
 $save_parameter
 $return

Detailed Description

Definition at line 32 of file class.ilCtrl.php.


Member Function Documentation

ilCtrl::addLocation ( a_title,
a_link,
a_target = "" 
)

add a location to the locator array

Parameters:
string $a_title link text
string $a_link link
string $a_target target frame

Definition at line 215 of file class.ilCtrl.php.

        {
                $this->location[] = array("title" => $a_title,
                        "link" => $a_link, "target" => $a_target);
        }

ilCtrl::addTab ( a_lang_var,
a_link,
a_cmd,
a_class 
)

add a tab to tabs array

Parameters:
string $a_lang_var language variable
string $a_link link
string $a_cmd command (must be same as in link)
string $a_class command class (must be same as in link)

Definition at line 239 of file class.ilCtrl.php.

        {
                $a_class = strtolower($a_class);

                $this->tab[] = array("lang_var" => $a_lang_var,
                        "link" => $a_link, "cmd" => $a_cmd, "class" => $a_class);
        }

ilCtrl::addTransit ( a_class  ) 

Definition at line 831 of file class.ilCtrl.php.

References $_GET.

        {
                $a_class = strtolower($a_class);
                $_GET["cmdTransit"][] = $a_class;
        }

ilCtrl::appendTransitClasses ( a_str  ) 

Definition at line 804 of file class.ilCtrl.php.

References $_GET, and ilUtil::appendUrlParameterString().

        {
                if (is_array($_GET["cmdTransit"]))
                {
                        reset($_GET["cmdTransit"]);
                        foreach ($_GET["cmdTransit"] as $transit)
                        {
                                $a_str = ilUtil::appendUrlParameterString($a_str, "cmdTransit[]=".$transit);
                        }
                }
                return $a_str;
        }

Here is the call graph for this function:

ilCtrl::callBaseClass (  ) 

Calls base class of current request.

The base class is passed via $_GET["baseClass"] and is the first class in the call sequence of the request. Do not call this method within other scripts than ilias.php.

public

Definition at line 65 of file class.ilCtrl.php.

References $_GET, $module, $q, forwardCommand(), and getCallStructure().

        {
                global $ilDB;
                
                $baseClass = $_GET["baseClass"];
                
                // get class information
                $q = "SELECT * FROM module_class WHERE LOWER(class) = ".
                        $ilDB->quote($baseClass);
                $mc_set = $ilDB->query($q);
                $mc_rec = $mc_set->fetchRow(DB_FETCHMODE_ASSOC);
                $module = $mc_rec["module"];
                $class = $mc_rec["class"];
                $class_dir = $mc_rec["dir"];
                
                // get module information
                $q = "SELECT * FROM module WHERE name = ".
                        $ilDB->quote($module);

                $m_set = $ilDB->query($q);
                $m_rec = $m_set->fetchRow(DB_FETCHMODE_ASSOC);
                $this->module_dir = $m_rec["dir"];
                
                // forward processing to base class
                include_once $this->module_dir."/".$class_dir."/class.".$class.".php";;
                $this->getCallStructure(strtolower($baseClass));
                $base_class_gui =& new $class();
                $this->forwardCommand($base_class_gui);
        }

Here is the call graph for this function:

& ilCtrl::forwardCommand ( &$  a_gui_object  ) 

forward flow of control to next gui class this invokes the executeCommand() method of the gui object that is passed via reference

Parameters:
object $a_gui_object gui object that should receive the flow of control public
Returns:
mixed return data of invoked executeCommand() method

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

References exit, and getNodeIdForTargetClass().

Referenced by callBaseClass().

        {
                $class = strtolower(get_class($a_gui_object));
//echo "<br>forwarding to: -$class-";
                $nr = $this->getNodeIdForTargetClass($this->current_node, $class);
                if ($nr > 0)
                {
                        $this->current_node = $nr;
                        return $a_gui_object->executeCommand();
                }
                echo "ERROR: Can't forward to class $class."; exit;
//echo "end forward<br>";
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilCtrl::forwards ( a_from_class,
a_to_class 
)

Stores which classes forwards commands to which other classes.

Parameters:
string $a_from_class source class name
string $a_to_class target class name

private

Definition at line 313 of file class.ilCtrl.php.

Referenced by getCallStructure().

        {
                $a_from_class = strtolower($a_from_class);

                if (is_array($a_to_class))
                {
                        foreach($a_to_class as $to_class)
                        {
                                $this->forward[$a_from_class][] = strtolower($to_class);
                                $this->parent[strtolower($to_class)][] = $a_from_class;
                        }
                }
                else
                {
                        $this->forward[strtolower(get_class($a_obj))][] = strtolower($a_to_class);
                        $this->parent[strtolower($a_to_class)][] = strtolower(get_class($a_obj));
                }
        }

Here is the caller graph for this function:

ilCtrl::getCallStructure ( a_class,
a_nr = 0,
a_parent = 0 
)

Get call structure of class context.

This method must be called for the top level gui class in the leading php script. It must be called before the the current command is forwarded to the top level gui class. Example:

include_once "classes/class.ilRepositoryGUI.php"; $ilCtrl->setTargetScript("repository.php"); $ilCtrl->getCallStructure("ilrepositorygui"); $repository_gui =& new ilRepositoryGUI(); $ilCtrl->forwardCommand($repository_gui);

Parameters:
string $a_class gui class name
int $a_nr internal counter (don't pass a value here)
int $a_parent internal counter (don't pass a value here)

public

Definition at line 276 of file class.ilCtrl.php.

References $q, and forwards().

Referenced by callBaseClass().

        {
                global $ilDB;

                $a_class = strtolower($a_class);

                $a_nr++;
                $this->call_node[$a_nr] = array("class" => $a_class, "parent" => $a_parent);
//echo "nr:$a_nr:class:$a_class:parent:$a_parent:<br>";
                $q = "SELECT * FROM ctrl_calls WHERE parent=".
                        $ilDB->quote(strtolower($a_class)).
                        " ORDER BY child";

                $call_set = $ilDB->query($q);
                //$forw = array();
                $a_parent = $a_nr;
                while($call_rec = $call_set->fetchRow(DB_FETCHMODE_ASSOC))
                {
                        $a_nr = $this->getCallStructure($call_rec["child"], $a_nr, $a_parent);
                        $forw[] = $call_rec["child"];
                }
                $this->forwards($a_class, $forw);
//echo "<br><br>forwards:".$a_class."<br>"; var_dump($forw);

                $this->root_class = $a_class;
                return $a_nr;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilCtrl::getClassForClasspath ( a_class_path  ) 

this method assumes that the class path has the format "dir/class.<class_name>.php"

Parameters:
string $a_class_path class path public
Returns:
string class name

Definition at line 473 of file class.ilCtrl.php.

References $file, and $path.

        {
                $path = pathinfo($a_class_path);
                $file = $path["basename"];
                $class = substr($file, 6, strlen($file) - 10);

                return $class;
        }

ilCtrl::getCmd ( a_default_cmd = ""  ) 

determines current get/post command

Definition at line 548 of file class.ilCtrl.php.

References $_GET, $_POST, and $cmd.

        {
                $cmd = $_GET["cmd"];
                if($cmd == "post")
                {
                        $cmd = @key($_POST["cmd"]);
                }
                if($cmd == "")
                {
                        $cmd = $a_default_cmd;
                }

                return $cmd;
        }

ilCtrl::getCmdClass (  ) 

determines responsible class for current command

Definition at line 600 of file class.ilCtrl.php.

References $_GET.

        {
                return strtolower($_GET["cmdClass"]);
        }

ilCtrl::getCmdNode (  ) 

get command target node

Returns:
int id of current command target node

Definition at line 203 of file class.ilCtrl.php.

References $_GET.

Referenced by getNextClass().

        {
                return $_GET["cmdNode"];
        }

Here is the caller graph for this function:

ilCtrl::getFormAction ( &$  a_gui_obj  ) 

get form action url for gui class object

Parameters:
object $a_gui_obj gui object

Definition at line 610 of file class.ilCtrl.php.

References $script, and getFormActionByClass().

        {
                $script =  $this->getFormActionByClass(strtolower(get_class($a_gui_obj)));
                return $script;
        }

Here is the call graph for this function:

ilCtrl::getFormActionByClass ( a_class  ) 

get form action url for gui class name

Parameters:
string $a_class gui class name

Definition at line 621 of file class.ilCtrl.php.

References $script, and getLinkTargetByClass().

Referenced by getFormAction().

        {
                $a_class = strtolower($a_class);

                $script = $this->getLinkTargetByClass($a_class, "post");
                return $script;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilCtrl::getLinkTarget ( &$  a_gui_obj,
a_cmd = "" 
)

get link target for (current) gui class

Parameters:
object $a_gui_obj (current) gui object (usually $this)
string $a_cmd command
Returns:
string target link

Definition at line 664 of file class.ilCtrl.php.

References $script, and getLinkTargetByClass().

        {
//echo "<br>getLinkTarget";
                $script = $this->getLinkTargetByClass(strtolower(get_class($a_gui_obj)), $a_cmd);
                return $script;
        }

Here is the call graph for this function:

ilCtrl::getLinkTargetByClass ( a_class,
a_cmd = "",
a_transits = "",
a_prepend_transits = false 
)

get link target for a target class

Parameters:
string $a_class command target class
string $a_cmd command
array $a_transits transit classes (deprecated)
Returns:
string target link

Definition at line 681 of file class.ilCtrl.php.

References $script, getTargetScript(), and getUrlParameters().

Referenced by getFormActionByClass(), getLinkTarget(), redirect(), and redirectByClass().

        {
                // note: $a_class may be an array
                //$a_class = strtolower($a_class);

//echo "<br>getLinkTargetByClass";
                $script = $this->getTargetScript();
                $script = $this->getUrlParameters($a_class, $script, $a_cmd, $transits);

                return $script;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilCtrl::getLocations (  ) 

get locations array

Returns:
array array of locations (array("title", "link", "target"))

Definition at line 226 of file class.ilCtrl.php.

        {
                return $this->location;
        }

ilCtrl::getModuleDir (  ) 

get directory of current module

Definition at line 98 of file class.ilCtrl.php.

        {
                return $this->module_dir;
        }

ilCtrl::getNextClass (  ) 

Get next class in the control path from the current class to the target command class.

This is the class that should be instantiated and be invoked via $ilCtrl->forwardCommand($class) next.

Returns:
string class name of next class

Definition at line 421 of file class.ilCtrl.php.

References $path, getCmdNode(), and getPathNew().

        {
//echo "getNextClass:";
                $cmdNode = $this->getCmdNode();
                if ($cmdNode == "")
                {
                        return false;
                }
                else
                {
                        if ($this->current_node == $cmdNode)
                        {
//echo "1:".$this->call_node[$cmdNode]["class"]."<br>";
                                //return $this->call_node[$cmdNode]["class"];
                                return "";
                        }
                        else
                        {
                                $path = $this->getPathNew($this->current_node, $cmdNode);
//echo "2:".$this->call_node[$path[1]]["class"]."<br>";
                                return $this->call_node[$path[1]]["class"];
                        }
                }
        }

Here is the call graph for this function:

ilCtrl::getNodeIdForTargetClass ( a_par_node,
a_class 
)

Searchs a node for a given class ($a_class) "near" the another node ($a_par_node).

It first looks if the given class is a child class of the current node. If such a child node has been found, its id is returned.

If not, this method determines wether the given class is a sibling of the current node within the call structure. If this is the case then the corresponding id is returned.

At last the methode searchs for the given class along the path from the current node to the root class of the call structure.

Parameters:
$a_par_node id of starting node for the search
$a_class class that should be searched

private

Returns:
int id of target node that has been found

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

References exit.

Referenced by forwardCommand(), getParameterArrayByClass(), searchReturnClass(), and setCmdClass().

        {
                $class = strtolower($a_class);

                // target class is class of current node id
                if ($class == $this->call_node[$a_par_node]["class"])
                {
                        return $a_par_node;
                }

                // target class is child of current node id
                foreach($this->call_node as $nr => $node)
                {
                        if (($node["parent"] == $a_par_node) &&
                                ($node["class"] == $class))
                        {
                                return $nr;
                        }
                }

                // target class is sibling
                $par = $this->call_node[$a_par_node]["parent"];
                if ($par != 0)
                {
                        foreach($this->call_node as $nr => $node)
                        {
                                if (($node["parent"] == $par) &&
                                        ($node["class"] == $class))
                                {
                                        return $nr;
                                }
                        }
                }

                // target class is parent
                while($par != 0)
                {
                        if ($this->call_node[$par]["class"] == $class)
                        {
                                return $par;
                        }
                        $par = $this->call_node[$par]["parent"];
                }

                echo "ERROR: Can't find target class $a_class for node $a_par_node ".
                        "(".$this->call_node[$a_par_node]["class"].").<br>"; exit;
        }

Here is the caller graph for this function:

ilCtrl::getParameterArray ( &$  a_gui_obj,
a_cmd = "",
a_incl_transit = true 
)

Definition at line 837 of file class.ilCtrl.php.

References getParameterArrayByClass().

        {
                $par_arr = $this->getParameterArrayByClass(strtolower(get_class($a_gui_obj)), $a_cmd,
                        $trans_arr);

                return $par_arr;
        }

Here is the call graph for this function:

ilCtrl::getParameterArrayByClass ( a_class,
a_cmd = "",
a_transits = "" 
)

Definition at line 848 of file class.ilCtrl.php.

References $_GET, $params, $path, getNodeIdForTargetClass(), and getPathNew().

Referenced by getParameterArray(), and getUrlParameters().

        {
//echo "<br>getparameter for $a_class";
                if ($a_class == "")
                {
                        return array();
                }

                if (!is_array($a_class))
                {
                        $a_class = array($a_class);
                }

                $nr = $this->current_node;
                foreach ($a_class as $class)
                {
//echo "<br>-$class-";
                        $class = strtolower($class);
                        $nr = $this->getNodeIdForTargetClass($nr, $class);
                        $target_class = $class;
//echo "-$nr-";
                }

                $path = $this->getPathNew(1, $nr);
                $params = array();

                // append parameters of parent classes
                foreach($path as $node_id)
                {
                        $class = $this->call_node[$node_id]["class"];
                        if (is_array($this->save_parameter[$class]))
                        {
                                foreach($this->save_parameter[$class] as $par)
                                {
                                        $params[$par] = $_GET[$par];
                                }
                        }

                        if (is_array($this->parameter[$class]))
                        {
                                foreach($this->parameter[$class] as $par => $value)
                                {
                                        $params[$par] = $value;
                                }
                        }
                }

                if ($a_cmd != "")
                {
                        $params["cmd"] = $a_cmd;
                }

                $params["cmdClass"] = $target_class;
                $params["cmdNode"] = $nr;
                $params["baseClass"] = $_GET["baseClass"];

                return $params;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilCtrl::getParentReturn ( &$  a_gui_obj  ) 

Definition at line 747 of file class.ilCtrl.php.

References getParentReturnByClass().

Referenced by returnToParent().

        {
                return $this->getParentReturnByClass(strtolower(get_class($a_gui_obj)));
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilCtrl::getParentReturnByClass ( a_class  ) 

Definition at line 753 of file class.ilCtrl.php.

References searchReturnClass().

Referenced by getParentReturn().

        {
                $a_class = strtolower($a_class);
                $ret_class = $this->searchReturnClass($a_class);
//echo ":$ret_class:";
                if($ret_class)
                {
//echo ":".$this->return[$ret_class].":";
                        return $this->return[$ret_class];
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilCtrl::getPathNew ( a_source_node,
a_target_node 
)

get path in call structure

Parameters:
string $a_source_node source node id
string $a_source_node target node id

private

Definition at line 490 of file class.ilCtrl.php.

References $path, and exit.

Referenced by getNextClass(), getParameterArrayByClass(), and searchReturnClass().

        {
//echo "-".$a_source_node."-";
                $path_rev = array();
                $c_target = $a_target_node;
                while ($a_source_node != $c_target)
                {
                        $path_rev[] = $c_target;
                        $c_target = $this->call_node[$c_target]["parent"];
                        if(!($c_target > 0))
                        {
                                echo "ERROR: Path not found. Source:".$a_source_node.
                                        ", Target:".$a_target_node; exit;
                        }
                }
                if ($a_source_node == $c_target)
                {
                        $path_rev[] = $c_target;
                }
                $path = array();
                for ($i=0; $i<count($path_rev); $i++)
                {
                        $path[] = $path_rev[count($path_rev) - ($i + 1)];
                }

                foreach($path as $node)
                {
//echo "<br>-->".$node.":".$this->call_node[$node]["class"];
                }
                return $path;
        }

Here is the caller graph for this function:

ilCtrl::getRedirectSource (  ) 

get current redirect source

Returns:
string redirect source class

Definition at line 739 of file class.ilCtrl.php.

References $_GET.

        {
                return $_GET["redirectSource"];
        }

ilCtrl::getTabs (  ) 

get tabs array

Returns:
array array of tab entries (array("lang_var", "link", "cmd", "class))

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

        {
                return $this->tab;
        }

ilCtrl::getTargetScript (  ) 

get target script name

Returns:
string target script name

Definition at line 539 of file class.ilCtrl.php.

Referenced by getLinkTargetByClass(), setReturn(), and setReturnByClass().

        {
                return $this->target_script;
        }

Here is the caller graph for this function:

ilCtrl::getTransitArray (  ) 

Definition at line 817 of file class.ilCtrl.php.

References $_GET.

        {
                $trans_arr = array();
                if (is_array($_GET["cmdTransit"]))
                {
                        reset($_GET["cmdTransit"]);
                        foreach ($_GET["cmdTransit"] as $key => $transit)
                        {
                                $trans_arr["cmdTransit[".$key."]"] = $transit;
                        }
                }
                return $trans_arr;
        }

ilCtrl::getUrlParameters ( a_class,
a_str,
a_cmd = "",
a_transits = "" 
)

Definition at line 789 of file class.ilCtrl.php.

References $params, ilUtil::appendUrlParameterString(), and getParameterArrayByClass().

Referenced by getLinkTargetByClass(), setReturn(), and setReturnByClass().

        {
                // note: $a_class may be an array!
                //$a_class = strtolower($a_class);

                $params = $this->getParameterArrayByClass($a_class, $a_cmd, $a_transits);

                foreach ($params as $par => $value)
                {
                        $a_str = ilUtil::appendUrlParameterString($a_str, $par."=".$value);
                }

                return $a_str;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilCtrl::ilCtrl (  ) 

control class constructor

Definition at line 43 of file class.ilCtrl.php.

References $ilBench.

        {
                global $ilBench;

                $this->bench =& $ilBench;
                $this->transit = array();

                $this->location = array();
                $this->tab = array();
                $this->current_node = 0;

        }

ilCtrl::lookupClassPath ( a_class_name  ) 

Get class path that can be used in include statements for a given class name.

Parameters:
string $a_class_name class name

Definition at line 452 of file class.ilCtrl.php.

References $q.

        {
                global $ilDB;
                $a_class_name = strtolower($a_class_name);

                $q = "SELECT * FROM ctrl_classfile WHERE class = ".$ilDB->quote($a_class_name);

                $class_set = $ilDB->query($q);
                $class_rec = $class_set->fetchRow(DB_FETCHMODE_ASSOC);

                return $class_rec["file"];
        }

ilCtrl::redirect ( &$  a_gui_obj,
a_cmd = "" 
)

Definition at line 629 of file class.ilCtrl.php.

References $script, and getLinkTargetByClass().

Referenced by redirectByClass(), and returnToParent().

        {
//echo "<br>class:".get_class($a_gui_obj).":";
                $script = $this->getLinkTargetByClass(strtolower(get_class($a_gui_obj)), $a_cmd);
//echo "<br>script:$script:";
                ilUtil::redirect($script);
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilCtrl::redirectByClass ( a_class,
a_cmd = "" 
)

redirect to other gui class

Parameters:
string $a_class command target class
string $a_cmd command

Definition at line 644 of file class.ilCtrl.php.

References $script, getLinkTargetByClass(), and redirect().

        {
                // $a_class may be an array
                //$a_class = strtolower($a_class);

//echo "<br>class:".get_class($a_gui_obj).":";
                $script = $this->getLinkTargetByClass($a_class, $a_cmd);
//echo "<br>script:$script:";
                ilUtil::redirect($script);
        }

Here is the call graph for this function:

ilCtrl::returnToParent ( &$  a_gui_obj,
a_anchor = "" 
)

redirects to next parent class that used setReturn

Definition at line 721 of file class.ilCtrl.php.

References $script, ilUtil::appendUrlParameterString(), getParentReturn(), and redirect().

        {
                $script = $this->getParentReturn($a_gui_obj);
                $script = ilUtil::appendUrlParameterString($script,
                        "redirectSource=".strtolower(get_class($a_gui_obj)));
                if ($a_anchor != "")
                {
                 $script = $script."#".$a_anchor;
                }
                ilUtil::redirect($script);
        }

Here is the call graph for this function:

ilCtrl::saveParameter ( &$  a_obj,
a_parameter 
)

Set parameters that should be passed in every form and link of a gui class.

All links that relate to the specified gui object class and are build e.g. by using getLinkTarger() or getFormAction() will include this parameter. This is the mechanism to add url parameters to the standard url (which is set by the setTargetScript() method) target everytime.

A typical example is the "ref_id" that should be included in almost every link or form action url. So the constructor of ilRepositoryGUI includes the command:

$this->ctrl->saveParameter($this, array("ref_id"));

Parameters:
object $a_obj gui object that will process the parameter
mixed $a_parameter parameter name (string) or array of parameter names

public

Definition at line 352 of file class.ilCtrl.php.

        {
                if (is_array($a_parameter))
                {
                        foreach($a_parameter as $parameter)
                        {
                                $this->save_parameter[strtolower(get_class($a_obj))][] = $parameter;
                        }
                }
                else
                {
                        $this->save_parameter[strtolower(get_class($a_obj))][] = $a_parameter;
                }
        }

ilCtrl::searchReturnClass ( a_class  ) 

get current return class

Definition at line 768 of file class.ilCtrl.php.

References $path, getNodeIdForTargetClass(), and getPathNew().

Referenced by getParentReturnByClass().

        {
//echo "<br>searchReturnClass".$a_class;
                $a_class = strtolower($a_class);

                $nr = $this->getNodeIdForTargetClass($this->current_node, $a_class);
                $path = $this->getPathNew(1, $nr);
//var_dump($path);
                for($i = count($path)-2; $i>=0; $i--)
                {
//echo "<br>:$i:".$path[$i].":".$this->call_node[$path[$i]]["class"]
//             .":".$this->return[$this->call_node[$path[$i]]["class"]].":";
                        if ($this->return[$this->call_node[$path[$i]]["class"]] != "")
                        {
                                return $this->call_node[$path[$i]]["class"];
                        }
                }

                return false;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilCtrl::setCmd ( a_cmd  ) 

set the current command

IMPORTANT NOTE:

please use this function only in exceptional cases it is not intended for setting commands in forms or links! use the corresponding parameters of getFormAction() and getLinkTarget() instead.

Definition at line 573 of file class.ilCtrl.php.

References $_GET.

        {
                $_GET["cmd"] = $a_cmd;
        }

ilCtrl::setCmdClass ( a_cmd_class  ) 

set the current command class

IMPORTANT NOTE:

please use this function only in exceptional cases it is not intended for setting the command class in forms or links! use the corresponding parameters of getFormAction() and getLinkTarget() instead.

Definition at line 588 of file class.ilCtrl.php.

References $_GET, and getNodeIdForTargetClass().

        {
                $a_cmd_class = strtolower($a_cmd_class);

                $nr = $this->getNodeIdForTargetClass($this->current_node, $a_cmd_class);
                $_GET["cmdClass"] = $a_cmd_class;
                $_GET["cmdNode"] = $nr;
        }

Here is the call graph for this function:

ilCtrl::setParameter ( &$  a_obj,
a_parameter,
a_value 
)

Set parameters that should be passed a form and link of a gui class.

All links that relate to the specified gui object class and are build e.g. by using getLinkTarger() or getFormAction() will include this parameter. This is the mechanism to add url parameters to the standard url (which is set by the setTargetScript() method) target. The difference to the saveParameter() method is, that setParameter() does not simply forward the url parameter of the last request. You can set a spefific value.

If this parameter is also a "saved parameter" (set by saveParameter() method) the saved value will be overwritten.

The method is usually used in conjunction with a getFormAction() or getLinkTarget() call. E.g.:

$this->ctrl->setParameter($this, "obj_id", $data_row["obj_id"]); $obj_link = $this->ctrl->getLinkTarget($this, "view");

Parameters:
object $a_obj gui object
string $a_parameter parameter name
string $a_parameter parameter value

public

Definition at line 392 of file class.ilCtrl.php.

        {
                $this->parameter[strtolower(get_class($a_obj))][$a_parameter] = $a_value;
        }

ilCtrl::setParameterByClass ( a_class,
a_parameter,
a_value 
)

Same as setParameterByClass, except that a class name is passed.

Parameters:
string $a_class gui class name
string $a_parameter parameter name
string $a_parameter parameter value

public

Definition at line 407 of file class.ilCtrl.php.

        {
                $this->parameter[strtolower($a_class)][$a_parameter] = $a_value;
        }

ilCtrl::setReturn ( &$  a_gui_obj,
a_cmd 
)

set return command

Definition at line 696 of file class.ilCtrl.php.

References $script, getTargetScript(), and getUrlParameters().

        {
                $script = $this->getTargetScript();
                $script = $this->getUrlParameters(strtolower(get_class($a_gui_obj)), $script, $a_cmd);
//echo "<br>setReturn:".get_class($a_gui_obj).":".$script.":<br>";
                $this->return[strtolower(get_class($a_gui_obj))] = $script;
        }

Here is the call graph for this function:

ilCtrl::setReturnByClass ( a_class,
a_cmd 
)

set return command

Definition at line 707 of file class.ilCtrl.php.

References $script, getTargetScript(), and getUrlParameters().

        {
                // may not be an array!
                $a_class = strtolower($a_class);

                $script = $this->getTargetScript();
                $script = $this->getUrlParameters($a_class, $script, $a_cmd);
//echo "<br>setReturn:".get_class($a_gui_obj).":".$script.":<br>";
                $this->return[strtolower($a_class)] = $script;
        }

Here is the call graph for this function:

ilCtrl::setTargetScript ( a_target_script  ) 

set target script name

Parameters:
string $a_target_script target script name

Definition at line 528 of file class.ilCtrl.php.

        {
                $this->target_script = $a_target_script;
        }


Field Documentation

ilCtrl::$forward

Definition at line 35 of file class.ilCtrl.php.

ilCtrl::$parent

Definition at line 36 of file class.ilCtrl.php.

ilCtrl::$return

Definition at line 38 of file class.ilCtrl.php.

ilCtrl::$save_parameter

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

ilCtrl::$target_script

Definition at line 34 of file class.ilCtrl.php.


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