phpcms开发微信小程序接口之获取栏目信息(get_categorys.php)

首页在phpcms v9的api文件夹下创建get_categorys.php,访问路径是:***/api.php?op=get_category

php代码:

/**
	 ** 栏目调用接口,栏目相关信息
	 ** catid 栏目id ,catid为空调用全部栏目
	 ** parentid 父栏目id 为0是调用一级栏目 为-1时调用全部栏目
	 ** catid和parentid 不能同时存在
	 ** 如果存在catid则调用当前栏目信息,否则调用全部栏目信息
	 ** 版权:石头建站 http://www.sootou.com
	 ** 时间:2017-12-18
	 */
	defined('IN_PHPCMS') or exit('No permission resources.');   
	pc_base::load_app_func('util','content');
	$siteid = 1;
	$r = array();
	$wxid     =  trim($_GET['wxid']) ? trim($_GET['wxid']) : ''; 
	$catid    = intval($_GET['catid']); //用来接收请求的栏目id    
	$parentid = trim($_GET['parentid']) ? intval($_GET['parentid']) : -1; //父栏目
	
	$CATEGORYS = getcache('category_content_'.$siteid,'commons');
	$category_db = pc_base::load_model('category_model');
	
	/*正式逻辑*/
	if($wxid == "" || empty($wxid)){
	   echo "微信id填写错误,请修改app.json配置";
	}else{
	    $xiao_db = pc_base::load_model('xiaochengxu_model');
		$xiao = $xiao_db->get_one(array('wxid'=>$wxid, 'status'=>"1"));
	    if($xiao){
		    /*-----------读取开始------------------*/
			if(isset($catid) && $catid !=''){
				 $r = $category_db->get_one(array('catid' => $catid));
				 $childid = $r['arrchildid'];
				 $arrchildid = explode(',',$childid);
				 $childs = array();
				 foreach($arrchildid as $arr){
					 if($arr != $catid){
						 $childs[] = $arr;
					 }
				 }
				 //$r['arrchildid'] = implode(',',$childs);
				 $r['arrchildid'] = $childs;
			 }else{
				 if($parentid == '-1' ){
					 $r = $CATEGORYS;
				 }else{
					 $r = $category_db->select(array('parentid' => $parentid),'*','','lisrotder desc');
				 }
				 
			 }
			 
			//转换为json类型   $r = json_encode($r); //格式:{{..},{..},{..}}
			$r = json_encode(array_reverse(array_reverse($r))); //两次倒置数组,转成json数组,否则会出现无法排序的情况,格式[{..},{..},{..}]
			//jsonp请求的固定写法,可以解决跨域问题,引入callback回调函数  
			echo $_GET['jsoncallback'] .$r;  
			
			/*-------------读取结束-----------------------*/
		}else{
		    echo "您的小程序不存在或者已关闭" ;
		}
	}
通过这个接口,微信小程序就能直接访问调用网站的所有栏目信息,也可以指定调用某个栏目或者子栏目的信息,小程序代码:

wx.request({
      url: 'https://www.cnzhixiao.wang/api.php?op=get_category',
      data: {
        wxid:wxid//必填,用于验证小程序合法性
      },
      method: 'GET',
      header: {
        'content-type': 'application/json' // 默认值
      },
      success: function (res) {
        const categorys = res.data;
        try {
          categorys.unshift(Date.now());//为了后期方便调用
          wx.setStorageSync('categorys', categorys)
        } catch (e) {
        }
      }
    })
获取到栏目信息,最好是存储到缓存,这样可以方便以后随时调用!

版权所有:转载请注明出处

猜你喜欢

转载自blog.csdn.net/fengye002011/article/details/79059992