织梦(dedecms)百度小程序制作的方法

很多站长都在使用知名的织梦DEDECMS这个程序做网站,特别是一些小白站长,网站制作简单复制粘贴或随便找个模板就可以,但是百度小程序很多人都不会,因为它都是数据对接的,

小程序生态分析-顺应大势-与时俱进:

DEDECMS网站转百度小程序是顺应大势,与时俱进,现在各平台小程序生态现在是越来越成熟了,如今使用百度APP的用户越来越多了,过去我们做网站的目的是为了流量,如今做小程序得目的也同样如此,在这个竞争激烈的时代,就看谁跑的快,谁抓住先机,谁快人一步,百度也在为拥有小程序的网站做流量扶持,有百度智能小程序的网站优先排名,而如今很多网站都是DEDECMS制作的,我们最好的方法就是只需要写个接口对接渲染小程序前端,不用复杂的改动原有的网站,这样网站内容更新,小程序数据内容也同网站一起更新了,而且小程序给用户的体验更好更舒适。

我们做百度喜欢的小程序:

我们要做的百度智能小程序并不是那种webview载入一个H5网页嵌套那种,那种会影响用户使用的功能体验,百度官方也很难收录和有排名的。

制作原理:

让小程序每个页面都是通过接口数据对接的,这样小程序打开加载的速度比网站更快,百度更喜欢,如下图每个页面都是通过数据对接的:

制作百度小程序,首先需要给dedecms做一个API数据接口输出JSON格式数据,我们用浏览器打开请求接口地址如下图:

织梦系统给我们提供了一个json类,在include/json.class.php文件里面,也就是是说,我们在对php文件转换json编码

 百度智能小程序制作的方法流程如下:

直接用php系统给我们提供的系统函数,json_encode(),我们如下面写上函数

$dsql->SetQuery("Select arc.id,arc.title,arc.litpic,t.sitepath,arc.description,arc.pubdate,arc.senddate,arc.source,addon.body From `#@__archives` arc addon.aid=arc.id 
left join `#@__arctype`t on arc.typeid=t.id where channel=1 And FIND_IN_SET('$fid',flag) order by id desc limit 0,5");
$dsql->Execute('me');
while ($row = $dsql->GetArray('me')) {
	if (preg_match('/(http:\/\/)|(https:\/\/)/i', $row['litpic'])) {
	    $row['pic'] = $row['litpic'];
	     unset($row['litpic']);
	}else {
	    $row['pic'] = "https://".$row['litpic'];
		unset($row['litpic']);
	}

	$row['newsId'] = $row['id'];
	  unset($row['id']);
	  
	   $row['description'] = $row['description'];
	   
	   $row['sitepath'] = str_replace('{cmspath}','',$row['sitepath']);
		
	  $row['updateTime'] = strftime("%Y-%m-%d %H:%M:%S",$row['pubdate']);
	  unset($row['pubdate']);
	  
	  $row['time'] = strftime("%Y/%m-%d/",$row['senddate']);
	  unset($row['senddate']);
	  
	  $row['media'] = $row['source'];
	  
	  unset($row['source']);
	  
	  $row['content'] = $row['body'];
	  //只允许使用 <p> <img> <ul> <li>
	    $row['content'] = preg_replace('/<img.+?src=\"(.+?)\".+?>/','<img src="\1">',$row['content']);
	  	 // $row['content'] = str_replace("/uploads/","/uploads/",$row['content']);
	  unset($row['body']);
	  
	  
         $reval[] = $row;
		
}
echo json_encode(array('list'=>$reval));

 就这样我们就可以输出栏目列表的数据了,然后我们小程序里面写好页面对接数据。

如下图我们在小程序里面写好页面代码,然后对接请求的接口数据进去就可以渲染成我们想要样式和功能了。

百度小程序我们做的列表页面渲染出来的样式就如下图了. 

知道了原理,接下来就是详细实现方法,如下一个简单的数据接口列子代码:

首先新建一个PHP文件,命名为list.php(也可以新建个文件夹命名为api,然后PHP命名为index.php,这样调用的时候就只需要http://你的域名/api这样的方式调用),用于作为被调用的API接口,代码如下:

<?php

$cfg_NotPrintHead = false;

header("Content-Type: textml; charset=utf-8");

include_once (dirname(__FILE__)."/../include/common.inc.php");

error_reporting(E_ALL || ~E_NOTICE);

require_once(DEDEINC.'/json.class.php');

$reval = array();

$dsql->SetQuery("SELECT id,title FROM `dede_archives` ORDER BY id DESC LIMIT 0,10");

$dsql->Execute('me');

while ($row = $dsql->GetArray('me')) {

$row['title'] = gb2utf8($row['title']);

$reval[] = $row;

}

$json = new Services_JSON(SERVICES_JSON_SUPPRESS_ERRORS);

echo $json->encode($reval);

?>

这里代码有进行了GBK转UTF8的操作,所以兼容GBK版的DEDECMS

调用方法如下:

这个接口是调用顶级栏目下所有子栏目的文章列表

接口调用方法:

http://你的域名/API/list.php?channel=1&page=1
参数channel=1表示调用栏目ID为1下面所有子栏目的数据
参数page=1表示第一页
小程序里面使用page++这样就可以无限加载。

百度小程序里请求这样的接口数据进行处理就可以实现列表加载了。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

q550707177

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值