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();
 
  775                global $objDefinition;
 
  778                if(
$_GET[
"gotolp"] &&
 
  787                        $gui_class = get_class($a_gui_obj);
 
  789                        if($gui_class == 
"ilSAHSEditGUI")
 
  792                                include_once 
"./Modules/ScormAicc/classes/class.ilObjSAHSLearningModule.php";
 
  797                                                $class = 
"ilObjSCORM2004LearningModuleGUI";
 
  801                                                $class = 
"ilObjSCORMLearningModuleGUI";
 
  805                                                $class = 
"ilObjAICCLearningModuleGUI";
 
  809                                                $class = 
"ilObjHACPLearningModuleGUI";
 
  812                                if(
$GLOBALS[
"ilAccess"]->checkAccess(
"edit_learning_progress", 
"", 
$ref_id))
 
  814                                        $this->
redirectByClass(array($gui_class, $class, 
"illearningprogressgui", 
"illplistofsettingsgui"), 
"");
 
  818                        else if($gui_class == 
"ilLMPresentationGUI")
 
  821                                $this->
redirectByClass(array(
"ilLMEditorGUI", 
"ilObjLearningModuleGUI"), 
"");                   
 
  824                        include_once 
"Services/Object/classes/class.ilObjectLP.php";    
 
  826                        $class = 
"ilObj".$objDefinition->getClassName($type).
"GUI";             
 
  828                        if($gui_class == $class &&
 
  830                                $GLOBALS[
"ilAccess"]->checkAccess(
"edit_learning_progress", 
"", 
$ref_id))
 
  837                                        $a_cmd_node = $obj_node[
"node_id"];
 
  842                                $_GET[
"cmdNode"] = $lp_settings_node[
"node_id"];                                                                
 
  843                                $_GET[
"cmdClass"] = 
"ilLPListOfSettingsGUI";                                                            
 
  845                                return "illearningprogressgui";                         
 
  870                        if ($this->current_node == $cmdNode)
 
  899                $a_class_name = strtolower($a_class_name);
 
  902                $class_rec = $cached_ctrl->lookupClassFile($a_class_name);
 
  908                if ($class_rec[
"plugin_path"] != 
"")
 
  910                        return $class_rec[
"plugin_path"].
"/".$class_rec[
"filename"];
 
  914                        return $class_rec[
"filename"];
 
  928                $path = pathinfo($a_class_path);
 
  930                $class = substr(
$file, 6, strlen(
$file) - 10);
 
  946                if ($a_source_node == 
"1")
 
  950                if (substr($a_target_node, 0, strlen($a_source_node)) != $a_source_node)
 
  952                        $failure =  
"ERROR: Path not found. Source:".$a_source_node.
 
  953                                ", Target:".$a_target_node;
 
  956                                include_once(
"./Services/UICore/exceptions/class.ilCtrlException.php");
 
  963                $temp_node = $a_source_node;
 
  966                if ($a_source_node != 
"")
 
  968                        $path = array($a_source_node);
 
  971                $diffstart = ($a_source_node == 
"")
 
  973                        : strlen($a_source_node) + 1;
 
  974                $diff = substr($a_target_node, $diffstart);
 
  976                $diff_arr = explode(
":", $diff);
 
  977                foreach($diff_arr as $cid)
 
  979                        if ($temp_node != 
"")
 
  984                        $path[] = $temp_node;
 
  998                $this->target_script = $a_target_script;
 
 1023                $_GET[
"baseClass"] = $a_base_class;
 
 1025                $_GET[
"cmdClass"] = 
"";
 
 1026                $_GET[
"cmdNode"] = 
"";
 
 1037        public function getCmd($a_default_cmd = 
"", $a_safe_commands = 
"")
 
 1040                if (isset(
$_GET[
"cmd"]))
 
 1053                        if ($this->verified_cmd != 
"")
 
 1055                                return $this->verified_cmd;
 
 1060                                        (!is_array($a_safe_commands) || !in_array(
$cmd, $a_safe_commands)))
 
 1062                                        return $a_default_cmd;
 
 1066                        $this->verified_cmd = 
$cmd;
 
 1067                        if(
$cmd == 
"" && isset(
$_POST[
"table_top_cmd"]))                
 
 1070                                $this->verified_cmd = 
$cmd;
 
 1073                        if(
$cmd == 
"" && isset(
$_POST[
"select_cmd2"]))          
 
 1075                                if(isset(
$_POST[
"select_cmd_all2"]))
 
 1081                                        $_POST[
"select_cmd_all"] = 
$_POST[
"select_cmd_all2"] = 
null;
 
 1084                                $this->verified_cmd = 
$cmd;
 
 1086                        if(
$cmd == 
"" && isset(
$_POST[
"select_cmd"]))           
 
 1088                                if(isset(
$_POST[
"select_cmd_all"]))
 
 1094                                        $_POST[
"select_cmd_all"] = 
$_POST[
"select_cmd_all2"] = 
null;
 
 1097                                $this->verified_cmd = 
$cmd;
 
 1102                                $this->verified_cmd = 
$cmd;
 
 1107                        $cmd = $a_default_cmd;
 
 1124                $_GET[
"cmd"] = $a_cmd;
 
 1139                $a_cmd_class = strtolower($a_cmd_class);
 
 1141                $nr = $nr[
"node_id"];
 
 1142                $_GET[
"cmdClass"] = $a_cmd_class;
 
 1143                $_GET[
"cmdNode"] = $nr;
 
 1153                return strtolower(
$_GET[
"cmdClass"]);
 
 1166        function getFormAction(&$a_gui_obj, $a_fallback_cmd = 
"", $a_anchor = 
"", $a_asynch = 
false,
 
 1170                        $a_fallback_cmd, $a_anchor, $a_asynch, $xml_style);
 
 1187                if(!is_array($a_class))
 
 1189                        $a_class = strtolower($a_class);
 
 1200                if ($a_fallback_cmd != 
"")
 
 1206                if ($a_anchor != 
"")
 
 1208                        $script = $script.
"#".$a_anchor;
 
 1235                if ($this->rtoken != 
"")
 
 1242                                $ilUser->getId() != ANONYMOUS_USER_ID)
 
 1244                                $res = 
$ilDB->query(
"SELECT token FROM il_request_token WHERE user_id = ".
 
 1246                                        " AND session_id = ".$ilDB->quote(session_id(), 
"text"));
 
 1249                                if ($rec[
"token"] != 
"")
 
 1251                                        $this->rtoken = $rec[
"token"];
 
 1252                                        return $rec[
"token"];
 
 1255                                $this->rtoken = md5(uniqid(rand(), 
true));
 
 1258                                if (rand(1, 200) == 2)
 
 1263                                        $dq = 
"DELETE FROM il_request_token WHERE ".
 
 1265                                        $ilDB->manipulate($dq);
 
 1272                                $ilDB->manipulate(
"INSERT INTO il_request_token (user_id, token, stamp, session_id) VALUES ".
 
 1275                                        $ilDB->quote($this->rtoken, 
"text").
",".
 
 1277                                        $ilDB->quote(session_id(), 
"text").
")");
 
 1295                        $ilUser->getId() != ANONYMOUS_USER_ID)
 
 1297                        if (
$_GET[
"rtoken"] == 
"")
 
 1299                                #echo "ilCtrl::No Request Token Given!";                
 
 1303                        $set = 
$ilDB->query(
"SELECT * FROM il_request_token WHERE ".
 
 1304                                " user_id = ".
$ilDB->quote(
$ilUser->getId(), 
"integer").
" AND ".                 
 
 1305                                " token = ".$ilDB->quote(
$_GET[self::IL_RTOKEN_NAME]), 
"text");                  
 
 1306                        if (
$ilDB->numRows($set) > 0)            
 
 1325                                $ilDB->manipulate(
"DELETE FROM il_request_token WHERE ".
 
 1326                                        " user_id = ".
$ilDB->quote(
$ilUser->getId(), 
"integer").
" AND ".                 
 
 1327                                        " session_id != ".$ilDB->quote(session_id(), 
"text").
" AND ".
 
 1344                                        $to_remove = array();
 
 1347                                        foreach(
$_SESSION[
"rtokens"] as $tok => $time)
 
 1349                                                if (time() - $time > $sec)
 
 1351                                                        $to_remove[] = $tok;
 
 1354                                        foreach($to_remove as $tok)
 
 1379        public function redirect(&$a_gui_obj, $a_cmd = 
"", $a_anchor = 
"", $a_asynch = 
false)
 
 1384                        "", $a_asynch, 
false);
 
 1389                if ($a_anchor != 
"")
 
 1391                        $script = $script.
"#".$a_anchor;
 
 1406                if ($a_anchor != 
"")
 
 1408                        $script = $script.
"#".$a_anchor;
 
 1420                if (isset(
$_GET[
"cmdMode"]) && 
$_GET[
"cmdMode"] == 
"asynch")
 
 1442        function getLinkTarget(&$a_gui_obj, $a_cmd = 
"", $a_anchor = 
"", $a_asynch = 
false,
 
 1445                $script = $this->
getLinkTargetByClass(strtolower(get_class($a_gui_obj)), $a_cmd, $a_anchor, $a_asynch,
 
 1483                        $script.= $amp.
"cmdMode=asynch";
 
 1486                if ($a_anchor != 
"")
 
 1488                        $script = $script.
"#".$a_anchor;
 
 1500                $script = $this->
getUrlParameters(strtolower(get_class($a_gui_obj)), $script, $a_cmd);
 
 1502                $this->
return[strtolower(get_class($a_gui_obj))] = $script;
 
 1511                $a_class = strtolower($a_class);
 
 1516                $this->
return[strtolower($a_class)] = $script;
 
 1527                        "redirectSource=".strtolower(get_class($a_gui_obj)));
 
 1529                        "cmdMode=".
$_GET[
"cmdMode"]);
 
 1530                if ($a_anchor != 
"")
 
 1532                        $script = $script.
"#".$a_anchor;
 
 1546                return $_GET[
"redirectSource"];
 
 1563                $a_class = strtolower($a_class);
 
 1569                        return $this->
return[$ret_class];
 
 1581                if (is_object($a_class))
 
 1583                        $class = strtolower(get_class($a_class));
 
 1587                        $class = strtolower($a_class);
 
 1598                $a_class = strtolower($a_class);
 
 1601                $node = $node[
"node_id"];
 
 1602                $n_arr = explode(
":", $node);
 
 1603                for($i = count($n_arr)-2; $i>=0; $i--)
 
 1624                foreach (
$params as $par => $value)
 
 1626                        if (strlen((
string) $value))
 
 1659                if (!is_array($a_class))
 
 1661                        $a_class = array($a_class);
 
 1664                $nr = $this->current_node;
 
 1665                foreach ($a_class as $class)
 
 1667                        $class = strtolower($class);
 
 1669                        if ($nr[
"base_class"] != 
"")
 
 1671                                $new_baseclass = $nr[
"base_class"];
 
 1673                        $nr = $nr[
"node_id"]; 
 
 1674                        $target_class = $class;
 
 1681                foreach(
$path as $node_id)
 
 1683                        $class = ($node_id == 
"")
 
 1684                                ? strtolower(
$_GET[
"baseClass"])
 
 1686                        if (isset($this->save_parameter[$class]) && is_array($this->save_parameter[$class]))
 
 1688                                foreach($this->save_parameter[$class] as $par)
 
 1690                                        if (isset(
$_GET[$par]))
 
 1694                                        else if (isset(
$_POST[$par]))
 
 1701                        if (isset($this->parameter[$class]) && is_array($this->parameter[$class]))
 
 1703                                foreach($this->parameter[$class] as $par => $value)
 
 1715                $params[
"cmdClass"] = $target_class;
 
 1717                if($new_baseclass == 
"")
 
 1723                        $params[
"baseClass"] = $new_baseclass;
 
 1734                if ($this->class_cid[$a_class] == 
"")
 
 1738                if ($this->class_cid[$a_class] == 
"")
 
 1746                                $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 
 1747                                        may solve the issue by putting an empty * @ilCtrl_Calls [YourClassName]: into your class header.".
 
 1748                                        " In both cases you need to reload the control structure in the setup.";
 
 1750                        include_once(
"./Services/UICore/exceptions/class.ilCtrlException.php");
 
 1751                        throw new ilCtrlException(
"Cannot find cid for class ".$a_class.
".".$add);
 
 1753                return $this->class_cid[$a_class];
 
 1761                if ($this->cid_class[$a_cid] == 
"")
 
 1765                if ($this->cid_class[$a_cid] == 
"")
 
 1767                        include_once(
"./Services/UICore/exceptions/class.ilCtrlException.php");
 
 1770                return $this->cid_class[$a_cid];
 
 1782                if (isset($this->info_read_cid[$a_cid]))
 
 1788                $rec = $cached_ctrl->lookupCid($a_cid);
 
 1796                        $this->cid_class[$a_cid] = $rec[
"class"];
 
 1797                        $this->class_cid[$rec[
"class"]] = $a_cid;
 
 1799                        $calls = $cached_ctrl->lookupCall($rec[
"class"]);
 
 1807                                if (!isset($this->calls[$rec[
"class"]]) || !is_array($this->calls[$rec[
"class"]]) || !in_array($rec2[
"child"], $this->calls[$rec[
"class"]]))
 
 1809                                        if ($rec2[
"child"] != 
"")
 
 1811                                                $this->calls[$rec[
"class"]][] = $rec2[
"child"];
 
 1815                        $this->info_read_class[$rec[
"class"]] = 
true;
 
 1818                $this->info_read_cid[$a_cid] = 
true;
 
 1828                $n_arr = explode(
":", $a_node);
 
 1829                foreach ($n_arr as $cid)
 
 1844                $a_class = strtolower($a_class);
 
 1845                if (isset($this->info_read_class[$a_class]))
 
 1851                $rec = $cached_ctrl->lookupClassFile($a_class);
 
 1860                        $this->cid_class[$rec[
"cid"]] = $a_class;
 
 1861                        $this->class_cid[$a_class] = $rec[
"cid"];
 
 1867                $recs = $cached_ctrl->lookupCall($a_class);
 
 1869                foreach($recs as $rec)
 
 1871                        if (!isset($this->calls[$a_class]) || !is_array($this->calls[$a_class]) || !in_array($rec[
"child"], $this->calls[$a_class]))
 
 1873                                if ($rec[
"child"] != 
"")
 
 1875                                        $this->calls[$a_class][] = $rec[
"child"];
 
 1880                $this->info_read_class[$a_class] = 
true;
 
 1881                $this->info_read_cid[$this->class_cid[$a_class]] = 
true;
 
 1889                $n_arr = explode(
":", $a_node);
 
 1890                return $n_arr[count($n_arr) - 2];
 
 1898                $lpos = strrpos($a_node, 
":");
 
 1899                return substr($a_node, 0, $lpos);
 
 1907                $n_arr = explode(
":", $a_node);
 
 1908                return $n_arr[count($n_arr) - 1];
 
 1921                $a_parent = strtolower($a_parent);
 
 1922                $a_child = strtolower($a_child);
 
 1923                $a_comp_prefix = strtolower($a_comp_prefix);
 
 1925                $set = 
$ilDB->query(
"SELECT * FROM ctrl_calls WHERE ".
 
 1926                        " parent = ".
$ilDB->quote($a_parent, 
"text").
" AND ".
 
 1927                        " child = ".$ilDB->quote($a_child, 
"text").
" AND ".
 
 1928                        " comp_prefix = ".$ilDB->quote($a_comp_prefix, 
"text")
 
 1930                if ($rec = 
$ilDB->fetchAssoc($set))
 
 1934                $ilDB->manipulate(
"INSERT INTO ctrl_calls ".
 
 1935                        "(parent, child, comp_prefix) VALUES (".
 
 1936                        $ilDB->quote($a_parent, 
"text").
",".
 
 1937                        $ilDB->quote($a_child, 
"text").
",".
 
 1938                        $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.
checkLPSettingsForward($a_gui_obj, $a_cmd_node)
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.
getNextClass($a_gui_class=null)
Get next class in the control path from the current class to the target command class.
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 ...
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
_lookupSubType($a_obj_id)
lookup subtype id (scorm, aicc, hacp)
static isSupportedObjectType($a_type)
static _lookupObjectId($a_ref_id)
lookup object id
static _lookupType($a_id, $a_reference=false)
lookup object type
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.
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
if((!isset($_SERVER['DOCUMENT_ROOT'])) OR(empty($_SERVER['DOCUMENT_ROOT']))) $_SERVER['DOCUMENT_ROOT']