医美软件管理员教你改造phpcms推送熊掌号
近段时间以来,很多医美软件系统管理员向我咨询如何将phpcms内容管理系统更改造为推送百度熊掌号,因为每个网站的熊掌号推送文章的数量配额权限是不同的,所以最好能实现单条或多条的批量推送。当然,也有很多医美软件系统管理员喜欢使用织梦,wordpress等其它内容管理系统,其原理也都大同小异,大家根据自己的需要变通一下即可。或实再不懂,可以在线留言,我将为大家提供具体修改方法。下面讲的是phpcms V9后台的修改方法:
1、修改phpcms文件夹下,phpcms/modules/content/content.php:
为后台控制器文件增加两个函数,分别用于单条推送和批量推送,内容如下:
/**
* 百度熊掌号推送
*/
public function plush_bdxzh(){
$urls = array(
$_GET['ArticleId']
);
$api = 'http://data.zz.baidu.com/urls?appid=你的熊掌号APPID&token=你的熊掌号准入密钥';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
//--解析Json,获取$result对应的变量值
//返回成功:
//字段 是否必选 参数类型 说明
//remain_realtime 是 int 当天剩余可推送到新增内容的url条数,当返回值为0时,再提交的数据不会添加到新增内容中
//success_realtime 是 int 当天成功推送到新增内容的url条数
//not_same_site 否 array 由于不是本站url而未处理的url列表
//not_valid 否 array 不合法的url列表
//失败返回示例:
//{
//"error":401,
//"message":"token is not valid"
//}
$obj=json_decode($result,TRUE);
$success_realtime = $obj['success_realtime'];
$remain_realtime = $obj['remain_realtime'];
$not_same_site = $obj['not_same_site'];
$not_valid = $obj['not_valid'];
echo "成功推送:".$success_realtime."条
";
echo "当前剩余:".$remain_realtime."条
";
echo "非本站URL:".$not_same_site."
";
echo "不合法URL:".$not_valid."
";
if ($success_realtime>0){
$catid = intval($_GET['catid']);
$id = intval($_GET['id']);
if(!$catid) showmessage(L('missing_part_parameters'));
$modelid = $this->categorys[$catid]['modelid'];
$this->db->set_model($modelid);
$this->db->update(array('push_xzh'=>1),array('id'=>$id));
showmessage(L('operation_success'));
} else {
showmessage(L('operation_failure'));
}
}
/**
* 百度熊掌号批量推送
*/
public function plush_bdxzh_bat(){
if(isset($_GET['dosubmit'])) {
$catid = intval($_GET['catid']);
if(!$catid) showmessage(L('missing_part_parameters'));
$modelid = $this->categorys[$catid]['modelid'];
$this->db->set_model($modelid);
if(isset($_GET['ajax_preview'])) {
$ids = intval($_GET['id']);
$_POST['ids'] = array(0=>$ids);
}
if(empty($_POST['ids'])) showmessage(L('you_do_not_check'));
//附件初始化
$this->url = pc_base::load_app_class('url', 'content');
foreach($_POST['ids'] as $id) {
$r = $this->db->get_one(array('id'=>$id));
if(!$r['islink']) {
$url='http://www.basemay.com'.$r['url'];
$urls = array(
$url
);
$api = 'http://data.zz.baidu.com/urls?appid=你的熊掌号APPID&token=你的熊掌号准入密钥&type=realtime';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
$obj=json_decode($result,TRUE);
$success_realtime = $obj['success_realtime'];
$remain_realtime = $obj['remain_realtime'];
$not_same_site = $obj['not_same_site'];
$not_valid = $obj['not_valid'];
if ($success_realtime>0){
$this->db->update(array('push_xzh'=>1),array('id'=>$id));
echo $url.",推送成功!
";
} else{
echo $url.",推送失败!
";
}
}
}
echo "当前剩余:".$remain_realtime."条可推送
";
}
}
2、修改内容列表的模板文件,位于phpcms/modules/content/templates/content_list.tpl.php:,内容如下:
在后面增加表格的列名:
熊掌号推送
然后在原代码
|
后面,增加:
if($r['push_xzh']==1) {
echo " class='plush_xzh_finished' value=' 完 成 ' disabled";
}
else {
echo " class='plush_xzh' value=' 推 送 '";
}
?>
onclick="myform.action='?m=content&c=content&a=plush_bdxzh&ArticleId={C}{C}{C}&catid={C}{C}{C}&id={C}{C}{C}';myform.submit();"/>
在
代码后面,增加代码用于批量推送:
将以上代码中的appid及token信息修改为自己的即可。到此,后台文件就修改完成了。
3、在相应的模块中,增加一个字段名称为:
push_xzh,字段类型相关设置如图:
phpcms经修改后效果图:
这样就实现了单条推送,在下面有百度批量推送的功能了。
文章中因为编码问题,可能显示不全。也为一些拿来主义者提供文件下载【下载】,下载后,覆盖到相应目录即可。
下一篇:最后一页