Beispiel #1
0
 /**
  * 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;
 }