91 lines
2.9 KiB
PHP
91 lines
2.9 KiB
PHP
<?php
|
|
/**
|
|
* The control file of api of ZenTaoPMS.
|
|
*
|
|
* @copyright Copyright 2009-2013 青岛易软天创网络科技有限公司 (QingDao Nature Easy Soft Network Technology Co,LTD www.cnezsoft.com)
|
|
* @license LGPL (http://www.gnu.org/licenses/lgpl.html)
|
|
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
|
|
* @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 = '<xmp>' . print_r($data, true) . '</xmp>';
|
|
|
|
$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();
|
|
}
|
|
}
|