3require_once(
'class.ilCachedCtrl.php');
38 $this->stored_trees = array
39 (
"ilrepositorygui",
"ilpersonaldesktopgui",
40 "illmpresentationgui",
"illmeditorgui",
41 "iladministrationgui");
51 $this->
debug[] = $str;
69 $this->transit = array();
70 $this->forward = array();
72 $this->parent = array();
73 $this->save_parameter = array();
74 $this->parameter = array();
76 $this->location = array();
78 $this->current_node = 0;
79 $this->module_dir =
"";
80 $this->service_dir =
"";
81 $this->call_node = array();
82 $this->root_class =
"";
95 $baseClass = strtolower(
$_GET[
"baseClass"]);
98 $mc_rec = $module_class->lookupModuleClass($baseClass);
104 $module = $mc_rec[
"module"];
105 $class = $mc_rec[
"class"];
106 $class_dir = $mc_rec[
"dir"];
110 $m_set =
$ilDB->query(
"SELECT * FROM il_component WHERE name = ".
111 $ilDB->quote($module,
"text"));
112 $m_rec =
$ilDB->fetchAssoc($m_set);
113 $this->module_dir = $m_rec[
"type"].
"/".$m_rec[
"name"];
114 include_once $this->module_dir.
"/".$class_dir.
"/class.".$class.
".php";
122 $mc_rec = $module_class->lookupServiceClass($baseClass);
124 $service = $mc_rec[
"service"];
125 $class = $mc_rec[
"class"];
126 $class_dir = $mc_rec[
"dir"];
130 include_once(
"./Services/UICore/exceptions/class.ilCtrlException.php");
131 throw new ilCtrlException(
"Could not find entry in modules.xml or services.xml for ".
132 $baseClass.
" <br/>".str_replace(
"&",
"<br />&", htmlentities($_SERVER[
"REQUEST_URI"])));
142 $this->service_dir = $m_rec[
"type"].
"/".$m_rec[
"name"];
144 include_once $this->service_dir.
"/".$class_dir.
"/class.".$class.
".php";;
149 $base_class_gui =&
new $class();
158 return $this->module_dir;
172 $class = strtolower(get_class($a_gui_object));
175 $nr = $nr[
"node_id"];
178 $current_node = $this->current_node;
180 $this->current_node = $nr;
184 $this->call_hist[] = array(
"class" => get_class($a_gui_object),
185 "mode" =>
"execComm",
"cmd" => $this->
getCmd());
188 $html = $a_gui_object->executeCommand();
191 $this->current_node = $current_node;
197 include_once(
"./Services/UICore/exceptions/class.ilCtrlException.php");
210 $class = strtolower(get_class($a_gui_object));
213 $nr = $nr[
"node_id"];
216 $current_node = $this->current_node;
219 $this->current_node = $nr;
223 $this->call_hist[] = array(
"class" => get_class($a_gui_object),
224 "mode" =>
"getHtml",
"cmd" => $this->
getCmd());
227 $html = $a_gui_object->getHTML();
230 $this->current_node = $current_node;
236 include_once(
"./Services/UICore/exceptions/class.ilCtrlException.php");
250 function setContext($a_obj_id, $a_obj_type, $a_sub_obj_id = 0, $a_sub_obj_type =
"")
252 $this->context_obj_id = $a_obj_id;
253 $this->context_obj_type = $a_obj_type;
254 $this->context_sub_obj_id = $a_sub_obj_id;
255 $this->context_sub_obj_type = $a_sub_obj_type;
265 return $this->context_obj_id;
275 return $this->context_obj_type;
285 return $this->context_sub_obj_id;
295 return $this->context_sub_obj_type;
318 $class = strtolower($a_class);
321 if ($a_par_node === 0 || $a_par_node ==
"")
334 return array(
"node_id" => $a_par_node,
341 in_array($a_class, $this->calls[$this->
getClassForCid($node_cid)]))
343 return array(
"node_id" => $a_par_node.
":".$this->getCidForClass($class),
352 in_array($a_class, $this->calls[$this->
getClassForCid($par_cid)]))
354 return array(
"node_id" =>
362 while($temp_node !=
"")
367 return array(
"node_id" => $temp_node,
378 $mc_rec = $module_class->lookupModuleClass($class);
379 $n_class = $mc_rec[
'lower_class'];
390 $mc_rec = $module_class->lookupServiceClass($class);
391 $n_class = $mc_rec[
'lower_class'];
404 "base_class" => $class);
419 error_log(
"ERROR: Can't find target class $a_class for node $a_par_node ".
427 include_once(
"./Services/UICore/exceptions/class.ilCtrlException.php");
428 throw new ilCtrlException(
"ERROR: Can't find target class $a_class for node $a_par_node ".
440 if (!is_array($a_class))
442 $a_class = array($a_class);
445 $nr = $this->current_node;
446 foreach ($a_class as $class)
448 $class = strtolower($class);
456 $nr = $nr[
"node_id"];
472 return $_GET[
"cmdNode"];
482 function addLocation($a_title, $a_link, $a_target =
"", $a_ref_id = 0)
484 $this->location[] = array(
"title" => $a_title,
485 "link" => $a_link,
"target" => $a_target,
"ref_id" => $a_ref_id);
506 function addTab($a_lang_var, $a_link, $a_cmd, $a_class)
508 $a_class = strtolower($a_class);
510 $this->tab[] = array(
"lang_var" => $a_lang_var,
511 "link" => $a_link,
"cmd" => $a_cmd,
"class" => $a_class);
588 $a_class = strtolower($a_class);
593 $this->call_node[$a_nr] = array(
"class" => $a_class,
"parent" => $a_parent);
596 $call_set =
$ilDB->query(
"SELECT * FROM ctrl_calls WHERE parent = ".
597 $ilDB->quote(strtolower($a_class),
"text").
598 " ORDER BY child", array(
"text"));
600 while ($call_rec =
$ilDB->fetchAssoc($call_set))
603 $forw[] = $call_rec[
"child"];
611 $this->root_class = $a_class;
622 private function forwards($a_from_class, $a_to_class)
624 $a_from_class = strtolower($a_from_class);
626 if (is_array($a_to_class))
628 foreach($a_to_class as $to_class)
630 if ($a_from_class !=
"" && $to_class !=
"")
632 if (!is_array($this->forward[$a_from_class]) || !in_array(strtolower($to_class), $this->forward[$a_from_class]))
634 $this->forward[$a_from_class][] = strtolower($to_class);
636 if (!is_array($this->parent[strtolower($to_class)]) || !in_array($a_from_class, $this->parent[strtolower($to_class)]))
638 $this->parent[strtolower($to_class)][] = $a_from_class;
645 $to_class = $a_to_class;
646 if ($a_from_class !=
"" && $to_class !=
"")
648 if (!is_array($this->forward[$a_from_class]) || !in_array(strtolower($to_class), $this->forward[$a_from_class]))
650 $this->forward[$a_from_class][] = strtolower($to_class);
652 if (!is_array($this->parent[strtolower($to_class)]) || !in_array($a_from_class, $this->parent[strtolower($to_class)]))
654 $this->parent[strtolower($to_class)][] = $a_from_class;
682 if (is_object($a_obj))
696 if (is_array($a_parameter))
698 foreach($a_parameter as $parameter)
700 $this->save_parameter[strtolower($a_class)][] = $parameter;
705 $this->save_parameter[strtolower($a_class)][] = $a_parameter;
734 $this->parameter[strtolower(get_class($a_obj))][$a_parameter] = $a_value;
747 $this->parameter[strtolower($a_class)][$a_parameter] = $a_value;
770 $this->parameter[strtolower($a_class)] = array();
791 if ($this->current_node == $cmdNode)
818 $a_class_name = strtolower($a_class_name);
821 $class_rec = $cached_ctrl->lookupClassFile($a_class_name);
827 if ($class_rec[
"plugin_path"] !=
"")
829 return $class_rec[
"plugin_path"].
"/".$class_rec[
"filename"];
833 return $class_rec[
"filename"];
847 $path = pathinfo($a_class_path);
849 $class = substr(
$file, 6, strlen(
$file) - 10);
865 if ($a_source_node ==
"1")
869 if (substr($a_target_node, 0, strlen($a_source_node)) != $a_source_node)
871 $failure =
"ERROR: Path not found. Source:".$a_source_node.
872 ", Target:".$a_target_node;
875 include_once(
"./Services/UICore/exceptions/class.ilCtrlException.php");
882 $temp_node = $a_source_node;
885 if ($a_source_node !=
"")
887 $path = array($a_source_node);
890 $diffstart = ($a_source_node ==
"")
892 : strlen($a_source_node) + 1;
893 $diff = substr($a_target_node, $diffstart);
895 $diff_arr = explode(
":", $diff);
896 foreach($diff_arr as $cid)
898 if ($temp_node !=
"")
903 $path[] = $temp_node;
917 $this->target_script = $a_target_script;
942 $_GET[
"baseClass"] = $a_base_class;
944 $_GET[
"cmdClass"] =
"";
945 $_GET[
"cmdNode"] =
"";
956 public function getCmd($a_default_cmd =
"", $a_safe_commands =
"")
959 if (isset(
$_GET[
"cmd"]))
972 if ($this->verified_cmd !=
"")
974 return $this->verified_cmd;
979 (!is_array($a_safe_commands) || !in_array(
$cmd, $a_safe_commands)))
981 return $a_default_cmd;
985 $this->verified_cmd =
$cmd;
986 if(
$cmd ==
"" && isset(
$_POST[
"table_top_cmd"]))
989 $this->verified_cmd =
$cmd;
992 if(
$cmd ==
"" && isset(
$_POST[
"select_cmd2"]))
994 if(isset(
$_POST[
"select_cmd_all2"]))
1000 $_POST[
"select_cmd_all"] =
$_POST[
"select_cmd_all2"] =
null;
1003 $this->verified_cmd =
$cmd;
1005 if(
$cmd ==
"" && isset(
$_POST[
"select_cmd"]))
1007 if(isset(
$_POST[
"select_cmd_all"]))
1013 $_POST[
"select_cmd_all"] =
$_POST[
"select_cmd_all2"] =
null;
1016 $this->verified_cmd =
$cmd;
1021 $this->verified_cmd =
$cmd;
1026 $cmd = $a_default_cmd;
1043 $_GET[
"cmd"] = $a_cmd;
1058 $a_cmd_class = strtolower($a_cmd_class);
1060 $nr = $nr[
"node_id"];
1061 $_GET[
"cmdClass"] = $a_cmd_class;
1062 $_GET[
"cmdNode"] = $nr;
1072 return strtolower(
$_GET[
"cmdClass"]);
1085 function getFormAction(&$a_gui_obj, $a_fallback_cmd =
"", $a_anchor =
"", $a_asynch =
false,
1089 $a_fallback_cmd, $a_anchor, $a_asynch, $xml_style);
1106 if(!is_array($a_class))
1108 $a_class = strtolower($a_class);
1119 if ($a_fallback_cmd !=
"")
1125 if ($a_anchor !=
"")
1127 $script = $script.
"#".$a_anchor;
1154 if ($this->rtoken !=
"")
1161 $ilUser->getId() != ANONYMOUS_USER_ID)
1163 $res =
$ilDB->query(
"SELECT token FROM il_request_token WHERE user_id = ".
1165 " AND session_id = ".$ilDB->quote(session_id(),
"text"));
1168 if ($rec[
"token"] !=
"")
1170 $this->rtoken = $rec[
"token"];
1171 return $rec[
"token"];
1174 $this->rtoken = md5(uniqid(rand(),
true));
1177 if (rand(1, 200) == 2)
1182 $dq =
"DELETE FROM il_request_token WHERE ".
1184 $ilDB->manipulate($dq);
1191 $ilDB->manipulate(
"INSERT INTO il_request_token (user_id, token, stamp, session_id) VALUES ".
1194 $ilDB->quote($this->rtoken,
"text").
",".
1196 $ilDB->quote(session_id(),
"text").
")");
1214 $ilUser->getId() != ANONYMOUS_USER_ID)
1216 if (
$_GET[
"rtoken"] ==
"")
1218 #echo "ilCtrl::No Request Token Given!";
1222 $set =
$ilDB->query(
"SELECT * FROM il_request_token WHERE ".
1223 " user_id = ".
$ilDB->quote(
$ilUser->getId(),
"integer").
" AND ".
1224 " token = ".$ilDB->quote(
$_GET[self::IL_RTOKEN_NAME]),
"text");
1225 if (
$ilDB->numRows($set) > 0)
1244 $ilDB->manipulate(
"DELETE FROM il_request_token WHERE ".
1245 " user_id = ".
$ilDB->quote(
$ilUser->getId(),
"integer").
" AND ".
1246 " session_id != ".$ilDB->quote(session_id(),
"text").
" AND ".
1263 $to_remove = array();
1266 foreach(
$_SESSION[
"rtokens"] as $tok => $time)
1268 if (time() - $time > $sec)
1270 $to_remove[] = $tok;
1273 foreach($to_remove as $tok)
1298 public function redirect(&$a_gui_obj, $a_cmd =
"", $a_anchor =
"", $a_asynch =
false)
1303 "", $a_asynch,
false);
1308 if ($a_anchor !=
"")
1310 $script = $script.
"#".$a_anchor;
1325 if ($a_anchor !=
"")
1327 $script = $script.
"#".$a_anchor;
1339 if (isset(
$_GET[
"cmdMode"]) &&
$_GET[
"cmdMode"] ==
"asynch")
1361 function getLinkTarget(&$a_gui_obj, $a_cmd =
"", $a_anchor =
"", $a_asynch =
false,
1364 $script = $this->
getLinkTargetByClass(strtolower(get_class($a_gui_obj)), $a_cmd, $a_anchor, $a_asynch,
1402 $script.= $amp.
"cmdMode=asynch";
1405 if ($a_anchor !=
"")
1407 $script = $script.
"#".$a_anchor;
1419 $script = $this->
getUrlParameters(strtolower(get_class($a_gui_obj)), $script, $a_cmd);
1421 $this->
return[strtolower(get_class($a_gui_obj))] = $script;
1430 $a_class = strtolower($a_class);
1435 $this->
return[strtolower($a_class)] = $script;
1446 "redirectSource=".strtolower(get_class($a_gui_obj)));
1448 "cmdMode=".
$_GET[
"cmdMode"]);
1449 if ($a_anchor !=
"")
1451 $script = $script.
"#".$a_anchor;
1465 return $_GET[
"redirectSource"];
1482 $a_class = strtolower($a_class);
1488 return $this->
return[$ret_class];
1500 if (is_object($a_class))
1502 $class = strtolower(get_class($a_class));
1506 $class = strtolower($a_class);
1517 $a_class = strtolower($a_class);
1520 $node = $node[
"node_id"];
1521 $n_arr = explode(
":", $node);
1522 for($i = count($n_arr)-2; $i>=0; $i--)
1543 foreach ($params as $par => $value)
1545 if (strlen((
string) $value))
1578 if (!is_array($a_class))
1580 $a_class = array($a_class);
1583 $nr = $this->current_node;
1584 foreach ($a_class as $class)
1586 $class = strtolower($class);
1588 if ($nr[
"base_class"] !=
"")
1590 $new_baseclass = $nr[
"base_class"];
1592 $nr = $nr[
"node_id"];
1593 $target_class = $class;
1600 foreach(
$path as $node_id)
1602 $class = ($node_id ==
"")
1603 ? strtolower(
$_GET[
"baseClass"])
1605 if (isset($this->save_parameter[$class]) && is_array($this->save_parameter[$class]))
1607 foreach($this->save_parameter[$class] as $par)
1609 if (isset(
$_GET[$par]))
1611 $params[$par] =
$_GET[$par];
1613 else if (isset(
$_POST[$par]))
1620 if (isset($this->parameter[$class]) && is_array($this->parameter[$class]))
1622 foreach($this->parameter[$class] as $par => $value)
1624 $params[$par] = $value;
1631 $params[
"cmd"] = $a_cmd;
1634 $params[
"cmdClass"] = $target_class;
1635 $params[
"cmdNode"] = $nr;
1636 if($new_baseclass ==
"")
1638 $params[
"baseClass"] =
$_GET[
"baseClass"];
1642 $params[
"baseClass"] = $new_baseclass;
1653 if ($this->class_cid[$a_class] ==
"")
1657 if ($this->class_cid[$a_class] ==
"")
1665 $add =
"<br><br>Please make sure your GUI class name ends with 'GUI' and that the filename is 'class.[YourClassName].php'. In exceptional cases you
1666 may solve the issue by putting an empty * @ilCtrl_Calls [YourClassName]: into your class header.".
1667 " In both cases you need to reload the control structure in the setup.";
1669 include_once(
"./Services/UICore/exceptions/class.ilCtrlException.php");
1670 throw new ilCtrlException(
"Cannot find cid for class ".$a_class.
".".$add);
1672 return $this->class_cid[$a_class];
1680 if ($this->cid_class[$a_cid] ==
"")
1684 if ($this->cid_class[$a_cid] ==
"")
1686 include_once(
"./Services/UICore/exceptions/class.ilCtrlException.php");
1689 return $this->cid_class[$a_cid];
1701 if (isset($this->info_read_cid[$a_cid]))
1707 $rec = $cached_ctrl->lookupCid($a_cid);
1715 $this->cid_class[$a_cid] = $rec[
"class"];
1716 $this->class_cid[$rec[
"class"]] = $a_cid;
1718 $calls = $cached_ctrl->lookupCall($rec[
"class"]);
1726 if (!isset($this->calls[$rec[
"class"]]) || !is_array($this->calls[$rec[
"class"]]) || !in_array($rec2[
"child"], $this->calls[$rec[
"class"]]))
1728 if ($rec2[
"child"] !=
"")
1730 $this->calls[$rec[
"class"]][] = $rec2[
"child"];
1734 $this->info_read_class[$rec[
"class"]] =
true;
1737 $this->info_read_cid[$a_cid] =
true;
1747 $n_arr = explode(
":", $a_node);
1748 foreach ($n_arr as $cid)
1763 $a_class = strtolower($a_class);
1764 if (isset($this->info_read_class[$a_class]))
1770 $rec = $cached_ctrl->lookupClassFile($a_class);
1779 $this->cid_class[$rec[
"cid"]] = $a_class;
1780 $this->class_cid[$a_class] = $rec[
"cid"];
1786 $recs = $cached_ctrl->lookupCall($a_class);
1788 foreach($recs as $rec)
1790 if (!isset($this->calls[$a_class]) || !is_array($this->calls[$a_class]) || !in_array($rec[
"child"], $this->calls[$a_class]))
1792 if ($rec[
"child"] !=
"")
1794 $this->calls[$a_class][] = $rec[
"child"];
1799 $this->info_read_class[$a_class] =
true;
1800 $this->info_read_cid[$this->class_cid[$a_class]] =
true;
1808 $n_arr = explode(
":", $a_node);
1809 return $n_arr[count($n_arr) - 2];
1817 $lpos = strrpos($a_node,
":");
1818 return substr($a_node, 0, $lpos);
1826 $n_arr = explode(
":", $a_node);
1827 return $n_arr[count($n_arr) - 1];
1840 $a_parent = strtolower($a_parent);
1841 $a_child = strtolower($a_child);
1842 $a_comp_prefix = strtolower($a_comp_prefix);
1844 $set =
$ilDB->query(
"SELECT * FROM ctrl_calls WHERE ".
1845 " parent = ".
$ilDB->quote($a_parent,
"text").
" AND ".
1846 " child = ".$ilDB->quote($a_child,
"text").
" AND ".
1847 " comp_prefix = ".$ilDB->quote($a_comp_prefix,
"text")
1849 if ($rec =
$ilDB->fetchAssoc($set))
1853 $ilDB->manipulate(
"INSERT INTO ctrl_calls ".
1854 "(parent, child, comp_prefix) VALUES (".
1855 $ilDB->quote($a_parent,
"text").
",".
1856 $ilDB->quote($a_child,
"text").
",".
1857 $ilDB->quote($a_comp_prefix,
"text").
static getComponentInfo($a_type, $a_name)
This class provides processing control methods.
appendRequestTokenParameterString($a_url, $xml_style=true)
Append request token as url parameter.
getCidForClass($a_class, $a_check=false)
Get Cid for Class.
getCallHistory()
Get controller call history.
setCmdClass($a_cmd_class)
Set the current command class.
redirect(&$a_gui_obj, $a_cmd="", $a_anchor="", $a_asynch=false)
Redirect to another command.
getCmd($a_default_cmd="", $a_safe_commands="")
Determines current get/post command.
getParentReturnByClass($a_class)
Get return script url.
getContextSubObjId()
Get context subobject id.
getContextObjId()
Get context object id.
getCmdNode()
Get command target node.
ilCtrl()
control class constructor
& getHTML(&$a_gui_object)
Gets an HTML output from another GUI class and returns the flow of control to the calling class.
readCallStructure($a_class, $a_nr=0, $a_parent=0)
stores often used common call structures (called from db_update script!!!)
getParentCidOfNode($a_node)
Get last but one cid of node id.
readCidInfo($a_cid)
Read information of class per cid.
getFormActionByClass($a_class, $a_fallback_cmd="", $a_anchor="", $a_asynch=false, $xml_style=true)
Get form action url for gui class name.
getFormAction(&$a_gui_obj, $a_fallback_cmd="", $a_anchor="", $a_asynch=false, $xml_style=true)
Get form action url for gui class object.
getTargetScript()
Get target script name.
getModuleDir()
get directory of current module
verifyToken()
Verify Token.
addTab($a_lang_var, $a_link, $a_cmd, $a_class)
Add a tab to tabs array (.
removeLastCid($a_node)
Remove last cid of node.
getPathNew($a_source_node, $a_target_node)
Get path in call structure.
getNodeIdForTargetClass($a_par_node, $a_class, $a_check=false)
Searchs a node for a given class ($a_class) "near" the another node ($a_par_node).
getDebug()
Get debug message string (.
clearParameters(&$a_obj)
Clears all parameters that have been set via setParameter for a GUI class.
getLinkTargetByClass($a_class, $a_cmd="", $a_anchor="", $a_asynch=false, $xml_style=true)
Get link target for command using gui class name.
getCmdClass()
Determines class that should execute the current command.
getCallStructure($a_class)
Get call structure of class context.
debug($str)
Collect debugging strings (.
getRequestToken()
Get request token.
getRedirectSource()
Get current redirect source.
searchReturnClass($a_class)
Determine current return class.
getClassForClasspath($a_class_path)
this method assumes that the class path has the format "dir/class.<class_name>.php"
readNodeInfo($a_node)
Read info of node.
setContext($a_obj_id, $a_obj_type, $a_sub_obj_id=0, $a_sub_obj_type="")
Set context of current user interface.
getTabs()
Get tabs array (.
setTargetScript($a_target_script)
set target script name
setReturnByClass($a_class, $a_cmd)
Set return command.
& forwardCommand(&$a_gui_object)
Forward flow of control to next gui class this invokes the executeCommand() method of the gui object ...
getNextClass()
Get next class in the control path from the current class to the target command class.
readClassInfo($a_class)
Read info of class.
getReturnClass($a_class)
Get return class.
getContextObjType()
Get context object type.
getCurrentCidOfNode($a_node)
Get last cid of node id.
callBaseClass()
Calls base class of current request.
getLinkTarget(&$a_gui_obj, $a_cmd="", $a_anchor="", $a_asynch=false, $xml_style=true)
Get link target for command using gui object.
getUrlParameters($a_class, $a_str, $a_cmd="", $xml_style=false)
Get URL parameters for a class and append them to a string.
getParameterArrayByClass($a_class, $a_cmd="")
Get all set/save parameters using gui class name.
getContextSubObjType()
Get context subobject type.
returnToParent(&$a_gui_obj, $a_anchor="")
Redirects to next parent class that used setReturn.
isAsynch()
Is current command an asynchronous command?
setParameterByClass($a_class, $a_parameter, $a_value)
Same as setParameterByClass, except that a class name is passed.
getParameterArray(&$a_gui_obj, $a_cmd="")
Get all set/save parameters for a gui object.
clearParametersByClass($a_class)
Clears all parameters that have been set via setParameter for a GUI class.
insertCtrlCalls($a_parent, $a_child, $a_comp_prefix)
Insert ctrl calls record.
redirectByClass($a_class, $a_cmd="", $a_anchor="", $a_asynch=false)
Redirect to other gui class using class name.
lookupClassPath($a_class_name)
Get class path that can be used in include statements for a given class name.
setParameter(&$a_obj, $a_parameter, $a_value)
Set parameters that should be passed a form and link of a gui class.
saveParameterByClass($a_class, $a_parameter)
Save parameter for a class.
getParentReturn(&$a_gui_obj)
Get return script url.
getClassForCid($a_cid)
Get class for cid.
saveParameter(&$a_obj, $a_parameter)
Set parameters that should be passed in every form and link of a gui class.
setReturn(&$a_gui_obj, $a_cmd)
Set return command.
setCmd($a_cmd)
Set the current command.
checkTargetClass($a_class)
Check whether target is valid.
forwards($a_from_class, $a_to_class)
Stores which classes forwards commands to which other classes.
initBaseClass($a_base_class)
Initialises new base class.
addLocation($a_title, $a_link, $a_target="", $a_ref_id=0)
Add a location to the locator array (.
getLocations()
Get locations array (.
@classDescription Date and time handling
static appendUrlParameterString($a_url, $a_par, $xml_style=false)
append URL parameter string ("par1=value1&par2=value2...") to given URL string
static redirect($a_script)
http redirect to other script
static stripSlashesRecursive($a_data, $a_strip_html=true, $a_allow="")
Strip slashes from array and sub-arrays.