1、修改admin/addclass.php文件,大約在1153行,<input type="submit" name="Submit" value="提交">
的前面增加:<?php if($docopy) { ?><input type="checkbox" name="copyzlm" value="1" checked>復(fù)制子欄目 <? }?>
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","");
}
//操作權(quán)限
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//中級(jí)欄目
{
//取得上一級(jí)父欄目
$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."<br>classname=".$add[classname]);//操作日志
// printerror("AddClassSuccess","AddClass.php?enews=AddClass&from=$add[from]");
}
else{
printerror("DbError","");
}
}
//增加終級(jí)欄目
else
{
//文件前綴
$add[filename_qz]=RepFilenameQz($add[filename_qz]);
if(empty($add[bclassid]))//主類別為終級(jí)欄目時(shí)
{
$sonclass="";
$featherclass="";
}
else//子欄目
{
//取得上一級(jí)父欄目
$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."<br>classname=".$add[classname]);//操作日志
// printerror("AddLastClassSuccess","AddClass.php?enews=AddClass&from=$add[from]");
}
else{
printerror("DbError","history.go(-1)");
}
}
}
上面代碼,只有函數(shù)cAddClass是我寫的,下面的函數(shù)cAddClass是對(duì)wf原來(lái)的函數(shù)AddClass稍作修改拷貝過(guò)來(lái)的,放到userfun.php文件中目的是不對(duì)classfun.php文件作改動(dòng)。
好了,復(fù)制欄目試試看
版權(quán)聲明: 本站資源均來(lái)自互聯(lián)網(wǎng)或會(huì)員發(fā)布,如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除!謝謝!
轉(zhuǎn)載請(qǐng)注明: 帝國(guó)cms復(fù)制欄目時(shí)同時(shí)復(fù)制子欄目