wego微购RSS、Sitemap、Ping、腾讯拍拍网购采集插件

时间:2021-04-15 18:12:45

wego微购RSS、Sitemap、Ping、腾讯拍拍网购采集插件

和哥们研究淘宝客,找到微购这个程序觉得挺不错的,但是地图和RSS功能不是特别完善,于是小憩一下,做了下初级的拓展,分享给大家,开源精神嘛,大家也可以去我的网站我要购物平台去看看。

1.拓展后台seoAction.class.php

<?php
!defined("BUILD_BATCH_COUNT")&&define("BUILD_BATCH_COUNT",200);
class seoAction extends baseAction
{
//显示列表
public function index(){
$this->showindex("网站首页");
}
public function seller()
{
$this->showindex("返现商家");
}
public function search()
{
$this->showindex("逛宝贝");
}
public function album()
{
$this->showindex("专辑");
}
public function promo()
{
$this->showindex("促销活动页");
}
public function exchange_goods()
{
$this->showindex("积分商城");
}
public function cate()
{
$this->showindex("商品分类页");
}
public function item()
{
$this->showindex("商品详细页");
}
public function showindex($title)
{
$map['actionname'] = ACTION_NAME;
$info = $this->seo_mod->where($map)->find();
$this->assign('info',$info);
$this->assign('title',$title);
$this->display("index");
}
//修改
public function edit()
{
$this->seo_mod->create();
$status = $_POST['id'] ? $this->seo_mod->save() : $this->seo_mod->add(); if($status){
$this->success("操作成功!");
}else{
$this->error("操作失败!");
}
}
//伪静态设置
function rewrite(){
$this->assign('set',$this->setting);
$this->display();
}
//设置seo信息
function doEditSeo(){
if(isset($_POST["site"]["url_model"])){
$_POST["site"]["url_model"];
$address = ROOT_PATH."/index/Conf/config.php";
$configFile = file_get_contents($address);
$newFile = str_replace("'URL_MODEL' => {$this->setting['url_model']}","'URL_MODEL' => {$_POST['site']['url_model']}",$configFile);
if(!file_put_contents($address,$newFile)){
$this->error("保存伪静态模式错误!请查看目录是否有修改权限");
}
if(unlink(ROOT_PATH."/index/Runtime/~runtime.php")){
// $success = "保存数据成功";
}
//保存伪静态后缀
if(!empty($_POST['site']['html_suffix'])&&trim($_POST['site']['html_suffix'])!='/'){
$_br = "\r\n";
$_tab = "\t";
$_profile = '<?php'.$_br;
$_profile .= $_tab."//seo后缀配置文件".$_br; $_profile .= $_tab."return array(
'URL_HTML_SUFFIX'=>'{$_POST['site']['html_suffix']}'
);".$_br; $_profile .= $_br;
$_profile .= '?>'.$_br;
if (!file_put_contents(ROOT_PATH."/index/Conf/html_suffix.php", $_profile)) {
$this->error("保存后缀配置文件失败,请重试!");
}
}else{
$_br = "\r\n";
$_tab = "\t";
$_profile = '<?php'.$_br;
$_profile .= $_tab."//seo后缀配置文件".$_br; $_profile .= $_tab."return array( );".$_br; $_profile .= $_br;
$_profile .= '?>'.$_br;
if (!file_put_contents(ROOT_PATH."/index/Conf/html_suffix.php", $_profile)) {
$this->error("保存后缀配置文件失败,请重试!");
}
} $map["name"] = 'url_model';
M('setting')->where($map)->setField('data',$_POST['site']['url_model']);
$map["name"] = 'html_suffix';
M('setting')->where($map)->setField('data',trim($_POST['site']['html_suffix']));
$this->success("保存数据成功!"); }
}
//显示伪静态信息
function showRewriteRules(){
$where=array('name'=>'html_suffix');
$setting_mod=D('setting');
$html_suffix_rel=$setting_mod->where($where)->find();
$this->assign('suffix',$html_suffix_rel['data']); // $where=array('name'=>'url_model');
$url_model_rel=$setting_mod->where($where)->find();
$this->assign('url_model',$url_model_rel['data']); //
$this->display();
} function sitemap(){
if(!empty($_POST['dosubmit'])){
vendor("sitemap.WSitemap");
$_sitemap=new WSiteMap();
$lastmod=date("Y-m-d");
//首页
$_sitemap->add($this->setting['site_domain']."/index.php",$lastmod,"always","1.0");
//导航
$nav_cate = M("nav")->where("is_show=1 AND in_site!='0'")->order("sort_order")->select();
foreach($nav_cate as $v){
if($v['system']=='1')
$loc=$this->setting['site_domain']."/index.php?a=index&m=".$v['alias'];
else{
if($v['in_site']=='0')
$loc=$v['url'];
else
$loc=$this->setting['site_domain']."/index.php?a=index&m=cate&cid=".$v['items_cate_id'];
}
$_sitemap->add($loc,$lastmod,"monthly","0.7");
}
//逛宝贝热门搜索
$setting_cate = M('setting')->where("name='search_words'")->select();
$setting = explode(",",$setting_cate[0]['data']);
foreach($setting as $v)
$_sitemap->add($this->setting['site_domain']."/index.php?a=index&m=search&keywords=".$v,$lastmod,"always","0.8"); //专辑分类
$album_cate = M("album_cate")->where("status=1")->order("sort_order")->select();
foreach($album_cate as $v)
$_sitemap->add($this->setting['site_domain']."/index.php?m=album&a=index&cid=".$v['id'],$lastmod,"monthly","0.7"); //返现商家
$seller_cate = M("seller_cate")->where("status=1")->order("sort")->select();
foreach($seller_cate as $v)
$_sitemap->add($this->setting['site_domain']."/index.php?m=seller&a=index&id=".$v['id'],$lastmod,"monthly","0.9");
//读取标签
$getlabel = file_get_contents("./data/label.txt");
$label = explode(",",$getlabel);
//所有标签
$items_tags = M("items_tags")->where("status=1")->select();
foreach($items_tags as $v){
if(!preg_match("/\w|【|】|、|(|)|\/",$v['name'])){
if(in_array($v['name'],$label))
$_sitemap->add($this->setting['site_domain']."/index.php?m=cate&a=tag&id=".$v['id'],$lastmod,"always","0.9");
}
}
$data=$_sitemap->get();
//读取产品
$data = str_replace('><', ">\n<", $data);
//$data = iconv("GB2312", 'UTF-8',$data);
$data=str_replace("&","&amp;",$data);
if(file_put_contents("sitemap.xml",$_sitemap->begin().$data)){
//读取商品数据
$this->success("提交成功,接下来将分析大数据,请耐心等候...","/admin.php?m=seo&a=sitemap_items",1);
}else{
$this->error("提交失败!");
}
}
$this->display();
} public function sitemap_items(){
import('ORG.Util.Page');
vendor("sitemap.WSitemap");
$_sitemap=new WSiteMap();
$_items=M("items");
$count=!empty($_GET['count'])?$_GET['count']:0;
$nowPage=!empty($_GET['p'])?$_GET['p']:0;
!$count&&$count=$_items->where("status=1")->count("id");
$_page=new Page($count,BUILD_BATCH_COUNT);// 实例化分页类 传入总记录数
$list=$_items->order('add_time DESC')->field("id,add_time")->page($nowPage.','.$_page->listRows)->select();
foreach($list as $v){
$lastmod=date("Y-m-d",$v['add_time']);
$_sitemap->add($this->setting['site_domain']."/index.php?a=index&m=item&id=".$v['id'],$lastmod,"daily","0.9");
}
//读取产品
$data = str_replace('><', ">\n<", $_sitemap->get());
//$data = iconv("GB2312", 'UTF-8',$data);
$data=str_replace("&","&amp;",$data);
if(!file_put_contents("sitemap.xml",$data,FILE_APPEND)){
@file_put_contents("sitemap.xml",$_sitemap->end(),FILE_APPEND);
$this->error("提交失败。","/admin.php?m=seo&a=sitemap",1);
}
if($nowPage>=$_page->totalPages){
@file_put_contents("sitemap.xml",$_sitemap->end(),FILE_APPEND);
$this->success("生成完毕,共生成条".$count."记录。","/admin.php?m=seo&a=sitemap");
}else{
//生成下一页
$this->success("共".$_page->totalPages."页,第".($nowPage+1)."页,请耐心等候...","/admin.php?m=seo&a=sitemap_items&p=".($nowPage+1)."&count=".$count,1);
}
} public function item_rss(){
import('ORG.Util.Page');
vendor("rss.WRss");
$_rss=new WRss();
$_items=M("items");
$count=!empty($_GET['count'])?$_GET['count']:0;
$nowPage=!empty($_GET['p'])?$_GET['p']:0;
if(!$nowPage)
@file_put_contents("rss.xml",$_rss->begin().$_rss->site($this->setting['site_title'],$this->setting['site_domain'],$this->setting['site_description']));
!$count&&$count=$_items->where("status=1")->count("id");
$_page=new Page($count,BUILD_BATCH_COUNT);// 实例化分页类 传入总记录数
$list=$_items->order('add_time DESC')->field("id,title,img,seller_name,add_time")->page($nowPage.','.$_page->listRows)->select();
foreach($list as $v){
$lastmod=date("D d F Y h:i:s",$v['add_time']);
$link=$this->setting['site_domain']."/index.php?a=index&m=item&id=".$v['id'];
$_rss->add($v['title'],$link,$v['title']."<img src=\"{$v[img]}\"/>",$v['seller_name'],$lastmod,$link);
}
//读取产品
$data = str_replace('><', ">\n<", $_rss->get());
//$data = iconv("GB2312", 'UTF-8',$data);
$data=str_replace("&","&amp;",$data);
if(!file_put_contents("rss.xml",$data,FILE_APPEND)){
@file_put_contents("rss.xml",$_rss->end(),FILE_APPEND);
$this->error("提交失败。","/admin.php?m=seo&a=sitemap",1);
}
if($nowPage>=$_page->totalPages){
@file_put_contents("rss.xml",$_rss->end(),FILE_APPEND);
$this->success("生成完毕,共生成条".$count."记录。","/admin.php?m=seo&a=sitemap");
}else{
//生成下一页
$this->success("共".$_page->totalPages."页,第".($nowPage+1)."页,请耐心等候...","/admin.php?m=seo&a=item_rss&p=".($nowPage+1)."&count=".$count,3);
}
} public function ping(){
$ids=$_GET['ids'];
$p=isset($_GET['p'])?$_GET['p']:0;
$idsArray=explode('_',$ids);
$idsCount=count($idsArray);
if($p<$idsCount){
//百度google推送
vendor("ping.WPing");
$_ping=new WPing();
$_items=M("items");
$currentId=$idsArray[$p];
$items=$_items->where("id=".$currentId)->field("title")->find();
if(!$items){
$this->error("记录".$currentId."不存在,将推送下一条请耐心等候...","/admin.php?m=seo&a=ping&p=".($p+1)."&ids=".$ids,1);
}
$link=$this->setting['site_domain']."/index.php?a=index&m=item&id=".$currentId;
$_ping->method($this->setting['site_name'],$this->setting['site_domain'],$link,$this->setting['site_domain'].'/rss.xml');
$sb=$_ping->baidu()?"成功":"失败";
$gb=$_ping->google()?"成功":"失败";
$this->success("共".$idsCount."条记录需要需要推送,当前第".($p+1)."条,百度反馈{$sb},谷歌反馈{$gb}。请耐心等候...","/admin.php?m=seo&a=ping&p=".($p+1)."&ids=".$ids,2);
}else{
$this->success("推送完毕,共生成条".$idsCount."记录。","/admin.php?m=seo&a=sitemap");
}
}
function get_itmes_cate($pid){
$model = M('items_cate');
$map["status"] = 1;
$map["pid"] = $pid;
$list = $model->field('id')->where($map)->select();
foreach($list as $v){
$id .= $v['id'].",";
}
$pid = trim($id,",");
$maps["status"] = 1;
$maps["pid"] = array('in',$pid);
$lists = $model->field('id,name')->where($maps)->select();
foreach($lists as $v){
$str .= "<a href='/index.php?a=index&m=cate&cid=".$v['id']."'>{$v['name']}</a>";
}
return $str;
}
function test(){
$items_tags = M("items_tags")->where("status=1")->select();
foreach($items_tags as $v){
if(!preg_match("/\w|【|】|、|(|)|\/",$v['name'])){
echo $v['name']."&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;http://www.qianbao.cn/index.php?m=cate&a=tag&id=".$v['id']."</br>";
}
}
}
}
?>

追加系统Vendar需要的库文件RSS、Sitemap、Ping

/includes/thinkphp/Extend/Vendar/ping/WPing.php

<?php
/**
+------------------------------------------------------------------------------
* 通知搜索引擎过来抓去最新发布的内容。秒收不是梦
* 目前仅支持Google和Baidu
+------------------------------------------------------------------------------
*/
class WPing {
public $method, $callback;
public function method($site_name,$site_url,$update_url,$update_rss) {
$this->method = "
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<methodCall>
<methodName>weblogUpdates.extendedPing</methodName>
<params>
<param><value>{$site_name}</value></param>
<param><value>{$site_url}</value></param>
<param><value>{$update_url}</value></param>
<param><value>{$update_rss}</value></param>
</params>
</methodCall>";
return $this->method;
} public function _post($url, $postvar) {
$ch=curl_init ();
$headers=array ("POST " . $url . " HTTP/1.0", "Content-type: text/xml;charset=\"utf-8\"", "Accept: text/xml", "Content-length: " . strlen ( $postvar ) );
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch,CURLOPT_POSTFIELDS,$postvar);
$res=curl_exec($ch);
curl_close($ch);
return $res;
} public function google() {
$this->callback = $this->_post ( 'http://blogsearch.google.com/ping/RPC2', $this->method );
return strpos ( $this->callback, "<boolean>0</boolean>" ) ? true : false;
} public function baidu() {
$this->callback = $this->_post ( 'http://ping.baidu.com/ping/RPC2', $this->method );
return strpos ( $this->callback, "<int>0</int>" ) ? true : false;
} }
?>

/includes/thinkphp/Extend/Vendar/rss/WRss.php

<?php
class WRss{
private $urls="";
public function add($title,$link,$description,$author,$pubDate,$guid=0,$share=true){
!empty($title)&&$tmp.="<title>{$title}</title>";
!empty($link)&&$tmp.="<link>{$link}</link>";
!empty($description)&&$tmp.="<description>{$description}</description>";
!empty($author)&&$tmp.="<author>{$author}</author>";
!empty($pubDate)&&$tmp.="<pubDate>{$pubDate}</pubDate>";
!empty($guid)&&$tmp.="<guid>{$guid}</guid >";
$this->urls.="<item>".$tmp."</item>";
} public function get($charset="UTF-8"){
return $this->urls;
} public function begin(){
return '<?xml version="1.0" encoding="UTF-8"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0"><channel>';
} public function end(){
return "</channel></rss>";
} public function site($title,$link,$description,$managingEditor="mengdj@outlook.com",$webMaster="mengdj@outlook.com"){
return "<title>{$title}</title><link>{$link}</link><description>{$description}</description><managingEditor>{$managingEditor}</managingEditor><webMaster>{$webMaster}</webMaster>";
}
}
?>

/includes/thinkphp/Extend/Vendar/sitemap/WSitemap.php

<?php
class WSiteMap{
private $urls="";
public function add($loc,$lastmod,$changefreq=0,$priority=0){
!empty($loc)&&$tmp.="<loc>{$loc}</loc>";
!empty($loc)&&$tmp.="<lastmod>{$lastmod}</lastmod>";
!empty($loc)&&$tmp.="<changefreq>{$changefreq}</changefreq>";
!empty($loc)&&$tmp.="<priority>{$priority}</priority>";
$this->urls.="<url>".$tmp."</url>";
} public function get($charset="UTF-8"){
return $this->urls;
} public function begin(){
return '<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
} public function end(){
return "</urlset>";
}
}
?>

另外修改了thinkphp默认的Page类文件,其实也就开放了一个统计页数的属性

wego微购RSS、Sitemap、Ping、腾讯拍拍网购采集插件

修改完成后再后台添加对应的菜单就可以了,祝你好运。另外还有个拍拍平台采集插件,需要的可联系我。¥5元免费使用升级,哈哈...,当是资助开发了。

wego微购RSS、Sitemap、Ping、腾讯拍拍网购采集插件

wego微购RSS、Sitemap、Ping、腾讯拍拍网购采集插件wego微购RSS、Sitemap、Ping、腾讯拍拍网购采集插件

文件以及目录可在此处下载:http://files.cnblogs.com/mengdejun/wyao.in.zip

php源码zend加密和解密方案:http://re.paipai.com/tws/...