注意事项:
1.要将当前站点下的文章内容推送到另一个站点下,即:content字段的值,默认情况下此content的内容没有推送到另一个站点下的附表中
2.将当前站点下的文章内容推送到另一个站点下的主表时,将islink字段的值设置为0,代表不是尾部链接
3.content字段的值在附表中,所有要查询附表,默认情况下只查询了主表
<?php /** * position_api.class.php 推荐至栏目接口类 * * @copyright (C) 2005-2010 PHPCMS * @license http://www.phpcms.cn/license/ * @lastmodify 2010-10-14 */ defined('IN_PHPCMS') or exit('No permission resources.'); class push_api { private $db, $pos_data; //数据调用属性 public function __construct() { $this->db = pc_base::load_model('content_model'); //加载数据模型 } /** * 接口处理方法,参数1:要推送的文章数组 参数2:旧的模型id及旧的栏目id * @param array $param 属性 请求时,为模型、栏目数组。提交添加为二维信息数据 。例:array(1=>array('title'=>'多发发送方法', ....)) * @param array $arr 参数 表单数据,只在请求添加时传递。 例:array('modelid'=>1, 'catid'=>12); */ 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; } } } ?>
评论列表:
www.4006400989.com
评论于2024-11-21 02:51:49
你的文章内容非常卖力,让人点赞。 http://www.55baobei.com/l5Fcgncxzs.html - 回复该评论
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
相关文章
phpcms loop循环判断是否为最后一条的代码2024-06-18
Phpcms V9 文章或图片模型增加相关下载功能2022-12-30
phpcms文章列表增加一键推送到百度功能2022-12-08
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
phpcms转向链接过滤#的问题解决2020-04-23