后退 刷新 前进 收藏 顶部 |   知道 黑匣子 富媒体 技术服务

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

程序猿 PHPcms ... (shuke.2013-06-21 11:25)

在官方源码中,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'] = "<input type='checkbox' name='ids[]' value='{$r[catid]}' {$checked}>";  
                    $r['style'] = '';  
                }  
                $categorys[$r['catid']] = $r;  
            }  
            $str  = "<tr>  
                        <td align='center'>\$checkbox</td>  
                        <td style='\$style'>\$spacer\$catname</td>  
                    </tr>";  
            $tree->init($categorys);  
            $categorys = $tree->get_tree(0, $str);  
            return $categorys;  
        }  
 }  
}  


2 楼 shuke[2013-06-21 11:28]
如果不想改动的话给你个utf-8的源文件下载了。
3 楼 shuke[2013-06-25 17:57]
很管用的说:
----------------------
www  15:28:43
确实,很麻烦
 舒克  15:29:20
第一个站群版本,有待提升
www  15:31:21
我还有很多问题,等你有时间的话, 有机会向你请教
www  15:33:48
比如说,后台这个地方我想改成发布时间,并按按布时间排序,在研究了好久都不行
 舒克  15:36:34
V9 也木有仔细研究过。
只是看了一下相关功能
www  15:37:18
你们都民间高手哦,
 舒克  15:38:36
汗。。。一般水平
www  15:39:57
我在网上找了很多推送的解决方法,就是你的方法管用
进度:100% 返回程序猿

解决织梦图集中上传图片时跳出302错误

图片新热点

导航


目录


    站内搜索
    首页 | W3C | ME