PHPCMS X

通过PHPCMS的api获取模块数据:
通过接口的方式获取网站数据在很多场合都需要,例如微信小程序,数据查询等等,phpcms中我们也可以利用系统自带的api功能稍微改造下即可实现通过api获取自定义的网站数据

通过PHPCMS的api获取模块数据
通过接口的方式获取网站数据在很多场合都需要,例如微信小程序,数据查询等等,phpcms中我们也可以利用系统自带的api功能稍微改造下即可实现通过api获取自定义的网站数据
2020-09-01 07:29:56  来源:PHPCMSX

首先我们需要在PHPCMS的网站根目录 api/下新建一个新的php文件,数据获取过程都需要写在这个文件中;


这个PHP文件里需要按实际调用需求来加载一些指定的数据模型,配置获取,加载系统类及函数库的代码


以下代码按您的调用实际需求修改

$db = pc_base::load_model('content_model');  // 引用数据库模型
pc_base::load_config('system'); // 引用配置 caches/configs下文件
pc_base::load_sys_class('mysql'); // 引用系统类 phpcms/libs/classes下文件
pc_base::load_sys_func('global'); // 引用系统函数库phpcms/libs/functions下文件


加载了您需要调用的模型和各种phpcmx类库后,就是具体的获取调用数据的逻辑了

下面写个栗子,供参考,小白同学们可按自己的实际调用需求套写修改


<?php
defined('IN_PHPCMS') or exit('No permission resources.');
$db = pc_base::load_model('content_model');
$categorys = getcache('category_content_1','commons');
$catid = 6; // $_GET['catid'] = intval($_GET['catid']);
$category = $categorys[$catid];
$modelid = $category['modelid'];
$model_arr = getcache('model', 'commons');
$MODEL = $model_arr[$modelid];
unset($model_arr);
$db->set_model($modelid);
// echo '<pre>';
// print_r($db->pages);
// echo '</pre>';
$status = 99;
$where = 'catid='.$catid.' AND status='.$status;
$pageSize = $_GET['pageSize'];
$pageIndex = $_GET['pageIndex'];
//keyword 搜索
if(isset($_GET['keyword']) && !empty($_GET['keyword'])) {
	$type_array = array('title','description','username');
	$searchtype = intval($_GET['searchtype']);
	if($searchtype < 3) {
		$searchtype = $type_array[$searchtype];
		$keyword = strip_tags(trim($_GET['keyword']));
		$where .= " AND `$searchtype` like '%$keyword%'";
	} elseif($searchtype==3) {
		$keyword = intval($_GET['keyword']);
		$where .= " AND `id`='$keyword'";
	}
}
// 添加自定义搜索字段
if(isset($_GET['infotype']) && !empty($_GET['infotype'])){
	$infotype = $_GET['infotype'];
	if($infotype != 0){
		$where .= " AND `infotype`=$infotype";
	}
}
// $where = '', $order = '', $page = 1, $pagesize = 20, $key='', $setpages = 10,$urlrule = '',$array = array(), $data = '*'
$datas = $db->listinfo($where,'id desc',$pageIndex, $pageSize); //$_GET['page']);
$pages = $db->pages;
$count = $db->number;
exit(json_encode($datas));


请求接口的方法大多数都是通过ajax来发起请求,具体方法在其他文章中介绍。