帝国7.5如何实现复制栏目信息到另一栏目时自动去重?
大家好,我们经常会用到将栏目A信息复制到另一个站点栏目B的操作,那么帝国CMS7.5如何实现复制栏目信息到另一栏目时自动去重呢?下面附上来自热心技术高手自摸帝国提供的方法和代码,具体步骤如下:
一、打开e/class/hinfofun.php,搜索“//复制信息”;
二、将这个函数的所有代码替换为如下代码即可(从//复制信息到//批量转移信息区间,大概在第2081-2231行位置,操作前记得备份该文件哦):
//复制信息 function CopyNews_all($classid,$id,$to_classid,$userid,$username){ global $empire,$public_r,$class_r,$dbtbpre,$emod_r,$lur; $classid=(int)$classid; $to_classid=(int)$to_classid; if(empty($classid)||empty($to_classid)) { printerror("EmptyCopyClassid","history.go(-1)"); } if(empty($class_r[$classid][islast])||empty($class_r[$to_classid][islast])) { printerror("EmptyCopyClassid","history.go(-1)"); } if($class_r[$classid][modid]<>$class_r[$to_classid][modid]) { printerror("DefModid","history.go(-1)"); } $userid=(int)$userid; //验证权限 $doselfinfo=CheckLevel($userid,$username,$classid,"news"); //权限 if(!$doselfinfo['domoveinfo']) { printerror("NotMoveInfoLevel","history.go(-1)"); } $count=count($id); if(empty($count)) { printerror("NotCopyNewsid","history.go(-1)"); } $userisqf=EcmsReturnDoIsqf($userid,$username,$lur['groupid'],0); $dopubid=0; $donum=0; $dolog=''; //附加链接参数 $addecmscheck=empty($_POST['ecmscheck'])?'&ecmscheck=1':''; for($i=0;$i<$count;$i++) { $add.="id='".intval($id[$i])."' or "; } $add=substr($add,0,strlen($add)-4); $mid=$class_r[$classid][modid]; $tbname=$class_r[$classid][tbname]; $stf=$emod_r[$mid]['savetxtf']; //查看目录是否存在,不存在则建立 $newspath=FormatPath($to_classid,"",0); $newstime=time(); $truetime=$newstime; $newstempid=0; $dosql=$empire->query("select id,classid,checked from {$dbtbpre}ecms_".$tbname."_index where ".$add); while($index_r=$empire->fetch($dosql)) { //返回表 $infotb=ReturnInfoMainTbname($tbname,$index_r['checked']); //主表 $r=$empire->fetch1("select * from ".$infotb." where id='$index_r[id]' limit 1"); //返回表信息 $infotbr=ReturnInfoTbname($tbname,$index_r['checked'],$r['stb']); //副表 $finfor=$empire->fetch1("select ".ReturnSqlFtextF($mid)." from ".$infotbr['datatbname']." where id='$r[id]' limit 1"); $r=array_merge($r,$finfor); if($stf)//存放文本 { $r[$stf]=GetTxtFieldText($r[$stf]); } //返回自定义字段 $ret_r=ReturnAddF($r,$class_r[$to_classid][modid],$userid,$username,9,1,0); if($class_r[$to_classid][wfid]) { if($userisqf) { $checked=$class_r[$to_classid][checked]; $isqf=0; } else { $checked=0; $isqf=1; } } else { $checked=$class_r[$to_classid][checked]; $isqf=0; } $checked=(int)$checked; $u=$empire->fetch1("select title from {$dbtbpre}ecms_".$tbname." where id='$r[id]' limit 1"); //获取要插入的标题 $num=$empire->gettotal("select count(*) as total from {$dbtbpre}ecms_".$tbname." where classid='$to_classid' and title='$u[title]'"); //查询是否有相同的记 if($num==0) { //索引表 $empire->query("insert into {$dbtbpre}ecms_".$tbname."_index(classid,checked,newstime,truetime,lastdotime,havehtml) values('$to_classid','$checked','$r[newstime]','$truetime','$truetime','$r[havehtml]');"); $l_id=$empire->lastid(); $update_infotbr=ReturnInfoTbname($tbname,$checked,$ret_r['tb']); //主表 $sql=$empire->query("insert into ".$update_infotbr['tbname']."(id,classid,ttid,onclick,plnum,totaldown,newspath,filename,userid,username,firsttitle,isgood,ispic,istop,isqf,ismember,isurl,truetime,lastdotime,havehtml,groupid,userfen,titlefont,titleurl,stb,fstb,restb,keyboard".$ret_r[fields].") values('$l_id','$to_classid','$r[ttid]',0,0,0,'$newspath','$filename',$userid,'$username',0,0,'$r[ispic]',0,'$isqf',0,'$r[isurl]',$truetime,$truetime,$r[havehtml],$r[groupid],$r[userfen],'$r[titlefont]','$r[titleurl]','$ret_r[tb]','$public_r[filedeftb]','$public_r[pldeftb]','$r[keyboard]'".$ret_r[values].");"); //副表 $empire->query("insert into ".$update_infotbr['datatbname']."(id,classid,keyid,dokey,newstempid,closepl,haveaddfen,infotags".$ret_r[datafields].") values('$l_id','$to_classid','$r[keyid]',$r[dokey],'".$newstempid."',$r[closepl],0,'$r[infotags]'".$ret_r[datavalues].");"); if($isqf==1) { InfoInsertToWorkflow($l_id,$to_classid,$class_r[$to_classid][wfid],$userid,$username); } //文件命名 $filename=ReturnInfoFilename($to_classid,$l_id,$r[filenameqz]); //信息地址 $updateinfourl=''; if(!$r['isurl']) { $infourl=GotoGetTitleUrl($to_classid,$l_id,$newspath,$filename,$r['groupid'],$r['isurl'],$r['titleurl']); $updateinfourl=",titleurl='$infourl'"; } $usql=$empire->query("update ".$update_infotbr['tbname']." set filename='$filename'".$updateinfourl." where id='$l_id'"); //更新栏目信息数 AddClassInfos($to_classid,'+1','+1',$checked); //生成信息文件 if($checked) { $addr=$empire->fetch1("select * from ".$update_infotbr['tbname']." where id='$l_id'"); GetHtml($addr['classid'],$addr['id'],$addr,1); } //更新动态缓存 if($public_r['ctimeopen']&&$checked) { eUpCacheInfo(1,$to_classid,0,0,$r['ttid'],'',$r[infotags],0,0,1); } $donum++; if($donum==1) { $dopubid=ReturnInfoPubid($r['classid'],$r['id']); $dolog="classid=".$r['classid']."<br>id=".$r['id']."<br>title=".$r['title']."<br>to_classid=".$to_classid; } } //刷新列表 ReListHtml($to_classid,1); //操作日志 if($donum==1) { insert_dolog($dolog,$dopubid); } else { insert_dolog("classid=".$classid."<br>classname=".$class_r[$classid][classname]."<br>to_classid=".$to_classid); } } printerror("CopyNewsSuccess",EcmsGetReturnUrl()); } //批量转移信息 |
本网声明:海南科技网发布此文仅出于信息分享,并非赞同其观点或证实其描述,不承担侵权行为的连带责任。投资者据此操作,风险自担。版权归原作者所有,如涉版权或来源标注有误,请联系我们删除。本网原创内容未经书面授权,任何单位或个人不得转载和摘编。
猜您喜欢
-
帝国cms标签内容页获取时间的方法
帝国cms标签内容页获取时间的方法:<meta property="article:published_time" content="<?=date('c',查看全文>>- 建站经验
海南科技网
-
帝国cms内容页调用所在的专题信息带链接
[e:loop={'select ztid from phome_enewsztinfo where classid='.$navinfor[classid].' and id='.$na查看全文>>- 建站经验
海南科技网
-
帝国WAP内容页如何调用与PC一样的内容newstext
<?=DoWapRepNewstext($r[newstext])?>用了这个字段 会把P标签都给清除<?=$r[newstext]?>试了这个还是查看全文>>- 建站经验
海南科技网
- 浅谈帝国cms的分页采集正则及过滤技巧
- 帝国cms标签内容页获取时间的方法
- 帝国cms内容页调用所在的专题信息带链接
- 帝国WAP内容页如何调用与PC一样的内容newstext
- 帝国cms内容页如何调用指定相关栏目下的文章?
- 帝国cms如何给后台左侧终极栏目添加发布文章快速按钮?
- 帝国cms 列表静态和动态分页样式在哪里修改?
- 灵动标签调用栏目最新10条信息自动获取帝国cms表前缀的方法
- 帝国缩略图随机和自动生成并使用id加序号命名防止重复的方法
- 帝国cms获取当前栏目、父栏目ID、名称、别名、链接调用方法