* @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 = '') { if(!$this->config->features->apiGetModel) die(sprintf($this->lang->api->error->disabled, '$config->features->apiGetModel')); $params = explode(',', $params); $newParams = array_shift($params); foreach($params as $param) { $sign = strpos($param, '=') !== false ? '&' : ','; $newParams .= $sign . $param; } parse_str($newParams, $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 = '