php ftp a站到b站,phpcmsv9在做推送中将a站文章内容完美的推送b站点下

这段代码展示了如何使用PHP实现从A站到B站的内容推送,确保文章内容、元信息和链接正确同步。关键步骤包括获取文章详情、设置新站点的模型表、更新islink字段为0以生成静态页面,以及处理点击率统计。该功能适用于多站点内容共享和管理。
摘要由CSDN通过智能技术生成

在官方源码中,A站推送B站只送出一个没有内容部分的站外连接。

以下代码是,推送全部内容。

注意事项:

1.要将当前站点下的文章内容推送到另一个站点下,即:content字段的值,默认情况下此content的内容没有推送到另一个站点下的附表中

2.将当前站点下的文章内容推送到另一个站点下的主表时,将islink字段的值设置为0,代表不是尾部链接

3.content字段的值在附表中,所有要查询附表,默认情况下只查询了主表

使用的文件 \phpcms\modules\content\classes\push_api.class.php

找到函数:category_list

public function category_list($param = array(), $arr = array()) {

//确认推送按钮

if ($arr['dosubmit']) {

$id = $_POST['id'];//要批量推送的文章id,如:39|38|37

if(empty($id)) return true;

$id_arr = explode('|',$id);//要批量推送的文章id数组

if(count($id_arr)==0) return true;

$old_catid = intval($_POST['catid']);//旧栏目id

if(!$old_catid) return true;

$ids = $_POST['ids'];//推送栏目,如:6|68

if(empty($ids)) return true;

$ids = explode('|', $ids);//推送栏目id数组

$siteid = intval($_POST['siteid']);//站点id

$siteids = getcache('category_content','commons');//所有栏目对应的站点id

$oldsiteid = $siteids[$old_catid];//旧站点id

$this->categorys = getcache('category_content_'.$oldsiteid,'commons');//旧站点下所有栏目信息

$modelid = $this->categorys[$old_catid]['modelid'];//旧栏目所属的模型id

$this->db->set_model($modelid);//根据模型id设置对应的模型表

$tablename = $this->db->table_name;

$this->hits_db = pc_base::load_model('hits_model');//点击率统计表

foreach($id_arr as $id) {//要批量推送的文章id数组

$this->db->table_name = $tablename;//模型表

$r = $this->db->get_one(array('id'=>$id));//根据当前文章id获取该文章详细信息

//weiyanhui添加

//附属表

$this->db->table_name = $this->db->table_name.'_data';

$r2 = $this->db->get_one(array('id'=>$id));//内容字段在附表中

if($r2) {

$r = array_merge($r,$r2);

} else {

$r = $r;

}

//weiyanhui添加结束

$linkurl = preg_match('/^http:\/\//',$r['url']) ? $r['url'] : siteurl($siteid).$r['url'];

foreach($ids as $catid) {//推送栏目,如:6|68

$siteid = $siteids[$catid];//推送到哪个站点id下的栏目

$this->categorys = getcache('category_content_'.$siteid,'commons');//推送站点下所有的栏目信息

$modelid = $this->categorys[$catid]['modelid'];//推送栏目所属模型id

$this->db->set_model($modelid);//根据模型id设置对应的模型表

$newid = $this->db->insert(

array('title'=>$r['title'],//标题

'style'=>$r['style'],

'thumb'=>$r['thumb'],//缩略图

'keywords'=>$r['keywords'],//关键词

'description'=>$r['description'],//描述

'status'=>$r['status'],//状态

'catid'=>$catid,//栏目id

'url'=>$linkurl,//旧的链接地址

'sysadd'=>1,//系统添加

'username'=>$r['username'],//作者

'inputtime'=>$r['inputtime'],//发布时间

'updatetime'=>$r['updatetime'],//更新时间

//'islink'=>1 //默认值为1:外部链接

'islink'=>0 //weiyanhui添加

),true);//将文章内容发布到推送栏目,并返回新插入的文章id

$this->db->table_name = $this->db->table_name.'_data';//模型附表

//将文章内容推送到其它站点后,将islink字段值修改为0,然后再重新发布一下,即可生成文章静态页到当前站点当前栏目下

//思考:1-可以在附表入库前将islink字段值设置为0 2-将内容入库附表

//$this->db->insert(array('id'=>$newid));//新插入的文章id存储到附表中,注意:文章内容没有被存储到附表中

$this->db->insert(array('id'=>$newid,'content'=>$r['content']));//weiyanhui添加

$hitsid = 'c-'.$modelid.'-'.$newid;

$this->hits_db->insert(array('hitsid'=>$hitsid,'catid'=>$catid,'updatetime'=>SYS_TIME));//点击量统计表

}

}

return true;

} else {

$siteid = get_siteid();

$this->categorys = getcache('category_content_'.$siteid,'commons');

$tree = pc_base::load_sys_class('tree');

$tree->icon = array(' │ ',' ├─ ',' └─ ');

$tree->nbsp = ' ';

$categorys = array();

$this->catids_string = array();

if($_SESSION['roleid'] != 1) {

$this->priv_db = pc_base::load_model('category_priv_model');

$priv_result = $this->priv_db->select(array('action'=>'add','roleid'=>$_SESSION['roleid'],'siteid'=>$siteid,'is_admin'=>1));

$priv_catids = array();

foreach($priv_result as $_v) {

$priv_catids[] = $_v['catid'];

}

if(empty($priv_catids)) return '';

}

foreach($this->categorys as $r) {

if($r['siteid']!=$siteid || $r['type']!=0) continue;

if($_SESSION['roleid'] != 1 && !in_array($r['catid'],$priv_catids)) {

$arrchildid = explode(',',$r['arrchildid']);

$array_intersect = array_intersect($priv_catids,$arrchildid);

if(empty($array_intersect)) continue;

}

if($r['child']) {

$r['checkbox'] = '';

$r['style'] = 'color:#8A8A8A;';

} else {

$checked = '';

if($typeid && $r['usable_type']) {

$usable_type = explode(',', $r['usable_type']);

if(in_array($typeid, $usable_type)) {

$checked = 'checked';

$this->catids_string[] = $r['catid'];

}

}

$r['checkbox'] = "";

$r['style'] = '';

}

$categorys[$r['catid']] = $r;

}

$str = "

\$checkbox\$spacer\$catname";

$tree->init($categorys);

$categorys = $tree->get_tree(0, $str);

return $categorys;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值