/** * Executes the callback function if page is loaded in callback-mode */ public function process() { if (sizeof($this->mBehaviors) == 0) { $this->addStdBehaviors(); } // Set Request URI if not set manually if (!isset($this->mRequestUri)) { if (isset($_SERVER['REQUEST_URI'])) { $this->mRequestUri = $_SERVER['REQUEST_URI']; } else { if (isset($_SERVER['SCRIPT_NAME'])) { $this->mRequestUri = $_SERVER['SCRIPT_NAME']; } } } $mode = ""; //MK - Check if we have a get-ajax-request if (!empty($_GET["rs"])) { $mode = "get"; } //MK - Check if we have a post-ajax-request if (!empty($_POST["rs"])) { $mode = "post"; } //MK - Executed when if (empty($mode)) { if (isset($this->template) && isset($this->templateHeadField)) { $html = $this->getJavaScript(false, true); $this->template->append($this->templateHeadField, $html); } return; } //MK - Get-request if ($mode == "get") { $this->setLastModified(); $func_name = $_GET["rs"]; if (!empty($_GET["rsargs"])) { $args = $_GET["rsargs"]; } else { $args = array(); } //MK - Parse form-handling if (!empty($_GET["post"])) { $args = $_GET["post"]; } } else { //MK - Post request $func_name = $_POST["rs"]; if (!empty($_POST["rsargs"])) { $args = $_POST["rsargs"]; } else { $args = array(); } } $callable = false; $customClass = null; foreach ($this->mExports as $val) { if (!is_array($val)) { if ($func_name == $val) { $callable = true; } } else { if ($func_name == $val[0]) { $customClass = $val[3]; $callable = true; } } } //MK - urldecode $args here ... $asize = sizeof($args); for ($x = 0; $x < $asize; $x++) { $args[$x] = $this->decode($args[$x]); } if (!$callable) { //MK - Export not found echo "-:{$func_name} not callable"; } else { //MK - Export found, now let's figure out how it's exported and call it echo "+:"; if (isset($this->callbackClass) && is_callable(array($this->callbackClass, $func_name))) { //MK - We have a global callback class and function is callable $result = call_user_func_array(array($this->callbackClass, $func_name), $args); } elseif ($customClass != null && is_callable(array($customClass, $func_name))) { //MK - We have a custom class for this function $result = call_user_func_array(array($customClass, $func_name), $args); } else { if (is_callable(array($this, $func_name), false)) { //MK - Extended TinyAjax, so function is in derived class $result = call_user_func_array(array($this, $func_name), $args); } else { //MK - Regular function $result = call_user_func_array($func_name, $args); } } echo $result; } exit; }