首页 > CMS > 帝国Empire > 正文

帝国cms复制栏目时同时复制子栏目

2024-08-28 12:20:18
字体:
来源:转载
供稿:网友

1、修改admin/addclass.php文件,大约在1153行,


的前面增加:

<?php if($docopy) { ?>复制子栏目  <? }?> 


2、修改admin/emsclass.php文件,大约在52行,将“AddClass($_POST,$logininid,$loginin);”修改为“cAddClass($_POST,$logininid,$loginin);”
3、将以下代码拷贝到class/userfun.php中。

function cAddClass($add,$userid,$username){        global $empire,$dbtbpre;   if($add[copyzlm]=='1'){    cAddClass1($add,$userid,$username);        $r = $empire->fetch1( "select * from {$dbtbpre}enewsclass order by classid desc limit 1" );                        $bsql=$empire->query("select * from {$dbtbpre}enewsclass where bclassid='$add[classid]' and bclassid<>'0'");                        while($br=$empire->fetch($bsql)){                        $br[copyzlm]='1';                        $br[bclassid]=$r[classid];                        $br[pripath]=$r[classpath];                        $br[classpath]=strrchr($br[classpath],'/');                                              if($br[islast]==0){                        $brr=$br;                        cAddClass($brr,$userid,$username);//递归                        }else{                        cAddClass1($br,$userid,$username,'1');                        }        }              }else{     AddClass($add,$userid,$username);  }}//增加栏目function cAddClass1($add,$userid,$username,$zz=0){        global $empire,$dbtbpre;        //增加外部栏目        if($add[ecmsclasstype])        {                AddWbClass($add,$userid,$username);        }        $add[classpath]=trim($add[classpath]);        if(!$add[classname]||!$add[classpath]||!$add[modid])        {                printerror("EmptyClass","");        }        if($add[islast]&&(!$add[newstempid]||!$add[listtempid]))        {                printerror("LastMustChange","");        }        //操作权限        CheckLevel($userid,$username,$classid,"class");        if($zz==0){        $add=DoPostClassVar($add);        }        //目录已存在        if(strchr($add[classpath],".")||strchr($add[classpath],"/")||strchr($add[classpath],""))        {//                printerror("badpath","");        }        $classpath=$add[pripath].$add[classpath];        if(file_exists("../../".$classpath))        {                printerror("ReClasspath","");        }        //取得表名        $tabler=GetModTable($add[modid]);        $tabler[tid]=(int)$tabler[tid];        //增加大栏目        if(!$add[islast])        {                if(empty($add[bclassid]))//主栏目                {                        $sonclass="";                        $featherclass="";            }                else//中级栏目                {                        //取得上一级父栏目                        $r=$empire->fetch1("select featherclass,islast,wburl from {$dbtbpre}enewsclass where classid='$add[bclassid]'");                        if($r[islast])//是否终极栏目                        {                                printerror("BclassNotLast","");                        }                        if($r[wburl])                        {                                printerror("BclassNotWb","");                        }                        if(empty($r[featherclass]))                        {                                $r[featherclass]="|";                        }                        $featherclass=$r[featherclass].$add[bclassid]."|";                        $sonclass="";            }                //建立目录                CreateClassPath($classpath);                $sql=$empire->query("insert into {$dbtbpre}enewsclass(bclassid,classname,is_zt,sonclass,lencord,link_num,newstempid,onclick,listtempid,featherclass,islast,classpath,classtype,newspath,filename,filetype,openpl,openadd,newline,hotline,goodline,classurl,groupid,myorder,filename_qz,hotplline,modid,checked,docheckuser,checkuser,firstline,bname,islist,searchtempid,tid,tbname,maxnum,checkpl,down_num,online_num,listorderf,listorder,reorderf,reorder,intro,classimg,jstempid,addinfofen,listdt,showclass,showdt,checkqadd,qaddlist,qaddgroupid,qaddshowkey,adminqinfo,doctime,classpagekey,dtlisttempid,classtempid,nreclass,nreinfo,nrejs,nottobq,ipath,addreinfo,haddlist,sametitle,definfovoteid,wburl,qeditchecked,wapstyleid,repreinfo,pltempid,cgroupid) values($add[bclassid],'$add[classname]',0,'$sonclass',$add[lencord],$add[link_num],$add[newstempid],0,$add[listtempid],'$featherclass',$add[islast],'$classpath','$add[classtype]','$add[newspath]',$add[filename],'$add[filetype]',$add[openpl],$add[openadd],$add[newline],$add[hotline],$add[goodline],'$add[classurl]',$add[groupid],$add[myorder],'$add[filename_qz]',$add[hotplline],$add[modid],$add[checked],$add[docheckuser],'$add[checkuser]',$add[firstline],'$add[bname]',$add[islist],$add[searchtempid],$tabler[tid],'$tabler[tbname]',$add[maxnum],$add[checkpl],$add[down_num],$add[online_num],'$add[listorderf]','$add[listorder]','$add[reorderf]','$add[reorder]','$add[intro]','$add[classimg]',$add[jstempid],$add[addinfofen],$add[listdt],$add[showclass],$add[showdt],$add[checkqadd],$add[qaddlist],'$add[qaddgroupid]',$add[qaddshowkey],$add[adminqinfo],$add[doctime],'$add[classpagekey]','$add[dtlisttempid]','$add[classtempid]',$add[nreclass],$add[nreinfo],$add[nrejs],$add[nottobq],'$add[ipath]',$add[addreinfo],$add[haddlist],$add[sametitle],$add[definfovoteid],'',$add[qeditchecked],$add[wapstyleid],'$add[repreinfo]','$add[pltempid]','$add[cgroupid]');");                $lastid=$empire->lastid();                //副表                $empire->query("replace into {$dbtbpre}enewsclassadd(classid,classtext) values('$lastid','".addslashes($add[classtext])."');");                TogNotReClass(1);                GetClass();                if($add[islist]==0||$add[islist]==2)                {                        $classtemp=$add[islist]==2?GetClassText($lastid):GetClassTemp($add['classtempid']);                        NewsBq($lastid,$classtemp,0,1);                }                DelListEnews();//删除缓存文件                GetSearch($add[modid]);//更新缓存                if($sql){                        insert_dolog("classid=".$lastid."
classname=".$add[classname]);//操作日志//                        printerror("AddClassSuccess","AddClass.php?enews=AddClass&from=$add[from]");                }                else{                        printerror("DbError","");                }    }        //增加终级栏目        else        {                //文件前缀                $add[filename_qz]=RepFilenameQz($add[filename_qz]);                if(empty($add[bclassid]))//主类别为终级栏目时                {                        $sonclass="";                        $featherclass="";            }                else//子栏目                {                        //取得上一级父栏目                        $r=$empire->fetch1("select featherclass,islast,wburl from {$dbtbpre}enewsclass where classid='$add[bclassid]'");                        //是否终极类别                        if($r[islast])                        {                                printerror("BclassNotLast","");                        }                        if($r[wburl])                        {                                printerror("BclassNotWb","");                        }                        if(empty($r[featherclass])){                                $r[featherclass]="|";                        }                        $featherclass=$r[featherclass].$add[bclassid]."|";                        $sonclass="";                }                //建立栏目目录                CreateClassPath($classpath);                $sql=$empire->query("insert into {$dbtbpre}enewsclass(bclassid,classname,sonclass,is_zt,lencord,link_num,newstempid,onclick,listtempid,featherclass,islast,classpath,classtype,newspath,filename,filetype,openpl,openadd,newline,hotline,goodline,classurl,groupid,myorder,filename_qz,hotplline,modid,checked,docheckuser,checkuser,firstline,bname,islist,searchtempid,tid,tbname,maxnum,checkpl,down_num,online_num,listorderf,listorder,reorderf,reorder,intro,classimg,jstempid,addinfofen,listdt,showclass,showdt,checkqadd,qaddlist,qaddgroupid,qaddshowkey,adminqinfo,doctime,classpagekey,dtlisttempid,classtempid,nreclass,nreinfo,nrejs,nottobq,ipath,addreinfo,haddlist,sametitle,definfovoteid,wburl,qeditchecked,wapstyleid,repreinfo,pltempid,cgroupid) values($add[bclassid],'$add[classname]','$sonclass',0,$add[lencord],$add[link_num],$add[newstempid],0,$add[listtempid],'$featherclass',$add[islast],'$classpath','$add[classtype]','$add[newspath]',$add[filename],'$add[filetype]',$add[openpl],$add[openadd],$add[newline],$add[hotline],$add[goodline],'$add[classurl]',$add[groupid],$add[myorder],'$add[filename_qz]',$add[hotplline],$add[modid],$add[checked],$add[docheckuser],'$add[checkuser]',$add[firstline],'$add[bname]',$add[islist],$add[searchtempid],$tabler[tid],'$tabler[tbname]',$add[maxnum],$add[checkpl],$add[down_num],$add[online_num],'$add[listorderf]','$add[listorder]','$add[reorderf]','$add[reorder]','$add[intro]','$add[classimg]',$add[jstempid],$add[addinfofen],$add[listdt],$add[showclass],$add[showdt],$add[checkqadd],$add[qaddlist],'$add[qaddgroupid]',$add[qaddshowkey],$add[adminqinfo],$add[doctime],'$add[classpagekey]','$add[dtlisttempid]','$add[classtempid]',$add[nreclass],$add[nreinfo],$add[nrejs],$add[nottobq],'$add[ipath]',$add[addreinfo],$add[haddlist],$add[sametitle],$add[definfovoteid],'',$add[qeditchecked],$add[wapstyleid],'$add[repreinfo]','$add[pltempid]','$add[cgroupid]');");                $lastid=$empire->lastid();                //副表                $empire->query("replace into {$dbtbpre}enewsclassadd(classid,classtext) values('$lastid','".addslashes($add[classtext])."');");                //修改父栏目的子栏目                if($add[bclassid])                {                        $b_r=$empire->fetch1("select sonclass,featherclass from {$dbtbpre}enewsclass where classid='$add[bclassid]'");                        if(empty($b_r[sonclass]))                        {                                $b_r[sonclass]="|";                        }                        $new_sonclass=$b_r[sonclass].$lastid."|";                        $update=$empire->query("update {$dbtbpre}enewsclass set sonclass='$new_sonclass' where classid='$add[bclassid]'");                        //更改父类别的父栏目的子栏目                        $where=ReturnClass($b_r[featherclass]);                        if(empty($where)){                                $where="classid=0";                        }                        $bsql=$empire->query("select sonclass,classid from {$dbtbpre}enewsclass where ".$where);                        while($br=$empire->fetch($bsql))                        {                                if(empty($br[sonclass]))                                {                                        $br[sonclass]="|";                                }                                $new_sonclass=$br[sonclass].$lastid."|";                                $update=$empire->query("update {$dbtbpre}enewsclass set sonclass='$new_sonclass' where classid='$br[classid]'");            }            }                DelListEnews();//删除缓存文件                TogNotReClass(1);                GetClass();                GetSearch($add[modid]);//更新缓存                if($sql){                        insert_dolog("classid=".$lastid."
classname=".$add[classname]);//操作日志//                        printerror("AddLastClassSuccess","AddClass.php?enews=AddClass&from=$add[from]");                }                else{                        printerror("DbError","history.go(-1)");                }    }}


上面代码,只有函数cAddClass是我写的,下面的函数cAddClass是对wf原来的函数AddClass稍作修改拷贝过来的,放到userfun.php文件中目的是不对classfun.php文件作改动。
好了,复制栏目试试看

1263633949.gif

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表