phpcms文章列表增加一键推送到百度功能
(1)打开phpcms\modules\content\content.php 在最下边增加推送方法
/** 
     * 一键推送百度 
     */ 
    public function push_bd() { 
        $ids = $_POST['ids']; 
        $ids = implode(',', $ids);//合并子栏目id 
        if(!$ids) showmessage(L('you_do_not_check')); 
        $catid = intval($_GET['catid']); 
        if(!$catid) showmessage(L('missing_part_parameters')); 
        $modelid = $this->categorys[$catid]['modelid']; 
        $siteid = $this->categorys[$catid]['siteid']; 
         
        $data = $urls = array(); 
        $this->db = pc_base::load_model('content_model');//引入content模型 
        $this->db->set_model($modelid); 
        $sql = "status=99 AND id IN ($ids)"; 
        $order = "listorder desc, id desc"; 
        $data = $this->db->select($sql, '*', '', $order, '', 'id'); 
        foreach($data as $v){ 
             $urls[] = $v['url']; 
        }; 
         
        /*获取appid和appsecret*/ 
        $this->site = pc_base::load_model('site_model'); 
        $siteinfo   = $this->site->get_one(array('siteid'=>$siteid)); 
        $setting    = json_decode($siteinfo['setting'], true); 
        $bdtoken    = $setting['bdtoken'];//站长token 
        $token      = $setting['xtoken'];//熊掌token 
        $appid      = $setting['appid']; 
        $domain     = parse_url($siteinfo['domain']); 
        $siteurl    = $domain['host']; 
         
        $res1 = $res2 = ''; 
        if(!empty($bdtoken)){ 
            $bdapi =  'http://data.zz.baidu.com/urls?site='.$siteurl.'&token='.$bdtoken; 
            $res1 = json_decode(self::baidu_push($bdapi, $urls), true); 
        } 
        if(!empty($token) && !empty($appid)){ 
            $api = 'http://data.zz.baidu.com/urls?appid='.$appid.'&token='.$token.'&type=realtime'; 
            $res2 = json_decode(self::baidu_push($api, $urls), true); 
        } 
        if($res1 || $res2){ 
            $text = ''; 
            if($res1['success']){ 
                $text .= '站长推送成功,成功数量'.$res1['success']; 
            }else{ 
                $text .= '站长推送失败,失败数量'.$res1['success']; 
            } 
            if($res2['success']){ 
                $text .= '------熊掌推送成功,成功数量'.$res2['success_realtime']; 
            }else{ 
                if($res2['remain_realtime']){ 
                    $text .= '------熊掌推送失败,失败数量'.$res2['success_realtime']; 
                }else{ 
                    $text .= '------<font color="red">今日熊掌推送次数已用完</font>'; 
                }  
            } 
            showmessage($text,HTTP_REFERER,8000); 
        }else { 
            showmessage(L('operation_failure')); 
        } 
    } 
     
    /* 
    ** 百度推送处理函数 
    */ 
    public function baidu_push($api, $urls){ 
        $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); 
        return $result; 
    }(2)phpcms\modules\content\templates\content_list.tpl.php 找到大概141行代码:
<input type="button" class="button" value="<?php echo L('remove');?>" onclick="myform.action='?m=content&c=content&a=remove&catid=<?php echo $catid;?>';myform.submit();"/>在下边增加代码:
<input type="button" class="button" value="一键推送百度" onclick="myform.action='?m=content&c=content&a=push_bd&catid=<?php echo $catid;?>';myform.submit();"/>
(3)phpcms\modules\admin\templates\site_add.tpl.php 找到大概135代码:
<tr> 
   <th width="130" valign="top"><?php echo L('site_att_allow_ext')?></th> 
   <td class="y-bg"><input type="text" class="input-text" name="setting[upload_allowext]" id="upload_allowext" size="50" value="<?php echo $setting['upload_allowext']?>"/></td> 
 </tr>在下边新增代码:
<tr> <th width="130" valign="top">百度推送Token</th> <td class="y-bg"><input type="text" class="input-text" name="setting[bdtoken]" id="bdtoken" size="50" value="<?php echo $setting['bdtoken']?>"/></td> </tr> <tr> <th width="130" valign="top">百度熊掌号设置</th> <td class="y-bg">Appid:<input type="text" class="input-text" name="setting[appid]" id="appid" size="20" value="<?php echo $setting['appid']?>"/>   Toekn:<input type="text" class="input-text" name="setting[xtoken]" id="xtoken" size="20" value="<?php echo $setting['xtoken']?>"/> </td> </tr>
(4)phpcms\modules\admin\templates\site_edit.tpl.php找到125行之后增加如上代码:
<tr> <th width="130" valign="top">百度推送Token</th> <td class="y-bg"><input type="text" class="input-text" name="setting[bdtoken]" id="bdtoken" size="50" value="<?php echo $setting['bdtoken']?>"/></td> </tr> <tr> <th width="130" valign="top">百度熊掌号设置</th> <td class="y-bg">Appid:<input type="text" class="input-text" name="setting[appid]" id="appid" size="20" value="<?php echo $setting['appid']?>"/>   Toekn:<input type="text" class="input-text" name="setting[xtoken]" id="xtoken" size="20" value="<?php echo $setting['xtoken']?>"/> </td> </tr>
最后保存,更新后台缓存,即可实现对百度的手动推送
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
相关文章
phpcms V9站点间内容转移工具(php版本)2025-05-21
phpcms-v9中将一个站点下的文章内容完美的推送到另一个站点下2024-09-24
phpcms loop循环判断是否为最后一条的代码2024-06-18
Phpcms V9 文章或图片模型增加相关下载功能2022-12-30
phpcms 标题SEO栏目不同的代码2022-11-14
PHPCMS替换内容的两种方法:str_replace和preg_replace2022-10-25
phpcms 搜索结果第一页比设定的多一条数据的解决办法2021-01-05
phpcms v9 字段多行文本不换行的解决办法2020-09-22
phpcms 栏目和文章页面“您没有访问该信息的权限”跳转登陆页面2020-09-17
phpcms 模板header包含action="lists"导致搜索结果错误的解决方案2020-04-26