医美软件管理员教你改造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经修改后效果图:


这样就实现了单条推送,在下面有百度批量推送的功能了。
文章中因为编码问题,可能显示不全。也为一些拿来主义者提供文件下载【下载】,下载后,覆盖到相应目录即可。

上一篇:推荐医美行业注册使用熊掌号
下一篇:最后一页