前段时间给自己Discuz!x3.2论坛开发客户端,自己就研究了下discuz的api的接口和流程,记录下一些重要的点。
api的入口文件,为根目录下的api.php,代码如下:
define('IN_API', true);//定义api标识
define('CURSCRIPT', 'api');//定义CURSCRIPT常量
$modarray = array('js' => 'javascript/javascript', 'ad' => 'javascript/advertisement');
$mod = !empty($_GET['mod']) ? $_GET['mod'] : '';
if(empty($mod) || !in_array($mod, array('js', 'ad'))) {
exit('Access Denied');
}
require_once './api/'.$modarray[$mod].'.php';//包含对应php文件
function loadcore() {
global $_G;
require_once './source/class/class_core.php';
$discuz = C::app();
$discuz->init_cron = false;
$discuz->init_session = false;