* @package api * @version $Id: control.php 5143 2013-07-15 06:11:59Z zhujinyonging@gmail.com $ * @link http://www.zentao.net */ class api extends control { /** * Return session to the client. * * @access public * @return void */ public function getSessionID() { $this->session->set('rand', mt_rand(0, 10000)); $this->view->sessionName = session_name(); $this->view->sessionID = session_id(); $this->view->rand = $this->session->rand; $this->display(); } /** * Execute a module's model's method, return the result. * * @param string $moduleName * @param string $methodName * @param string $params param1=value1,param2=value2, don't use & to join them. * @access public * @return string */ public function getModel($moduleName, $methodName, $params = '') { parse_str(str_replace(',', '&', $params), $params); $module = $this->loadModel($moduleName); $result = call_user_func_array(array(&$module, $methodName), $params); if(dao::isError()) die(json_encode(dao::getError())); $output['status'] = $result ? 'success' : 'fail'; $output['data'] = json_encode($result); $output['md5'] = md5($output['data']); $this->output = json_encode($output); die($this->output); } /** * The interface of api. * * @param int $filePath * @param int $action * @access public * @return void */ public function debug($filePath, $action) { $filePath = helper::safe64Decode($filePath); if($action == 'extendModel') { $method = $this->api->getMethod($filePath, 'Model'); } elseif($action == 'extendControl') { $method = $this->api->getMethod($filePath); } if(!empty($_POST)) { $result = $this->api->request($method->className, $method->methodName, $action); $content = json_decode($result['content']); $status = $content->status; $data = json_decode($content->data); $data = '' . print_r($data, true) . ''; $response['result'] = 'success'; $response['status'] = $status; $response['url'] = $result['url']; $response['data'] = $data; $this->send($response); } $this->view->method = $method; $this->view->filePath = $filePath; $this->display(); } }