DEDECMS-5.7后臺(tái)批量復(fù)制欄目文檔(最新)

說(shuō)明:

因?yàn)榫W(wǎng)站多地區(qū)所需,需要用到文檔復(fù)制功能钾菊,就在網(wǎng)上搜尋了一些大神寫的復(fù)制欄目文檔的功能帅矗,但是Copy下來(lái)以后,發(fā)現(xiàn)功能以及代碼不是很完善煞烫,所以就完善了一番浑此,完善了起始ID、重復(fù)文檔跳過(guò)滞详,生成文章的顯示問(wèn)題等問(wèn)題凛俱,為了以后能用到此功能的童鞋,可以使用的更順暢料饥,本人只是初入PHP的一個(gè)小白蒲犬,代碼中還有不足的地方,請(qǐng)各位大神指教岸啡,我一定竭盡全力去更加完善原叮。

第一步:修改模板文件

修改文件dede/templets/content_batch_up.htm? ?其中dede是項(xiàng)目的后臺(tái)路徑,已修改的替換新路徑

1巡蘸、修改頭部腳本函數(shù)ShowHideMove()

function ShowHideMove() {

????????var selBox = document.getElementByIdx_x('moveradio');

????????var selBox2 = document.getElementByIdx_x('copyradio');//edited by adan;090508

????????var obj = document.getElementByIdx_x('moveField');

????????if(selBox.checked||selBox2.checked) obj.style.display = "block";//edited by adan;090508

????????else??obj.style.display = "none";

}

2奋隶、添加復(fù)制欄目按鈕

在模板文件中查找

<input name="action" type="radio" class="np" value="move" id="moveradio" onClick="ShowHideMove()" />移動(dòng)文檔

在上邊代碼后面添加

<input name="action" type="radio" class="np tarrow-fool" value="copy" id="copyradio" onClick="ShowHideMove()" />復(fù)制欄目文檔

第二步:修改操作文件

修改文件dede/content_batchup_action.php? ?其中dede是項(xiàng)目的后臺(tái)路徑,已修改的替換新路徑

1悦荒、在php文件中查找下邊代碼唯欣,然后替換成新的代碼

舊:

?if($typeid!=0)

?{

? ? ?$ids = GetSonIds($typeid);

? ? ?$gwhere .= " AND typeid IN($ids) ";

?}

新:

if($typeid!=0 && $action!='copy')

{

? ? $ids = GetSonIds($typeid);

? ? $gwhere .= " AND typeid IN($ids) ";

}else if($typeid!=0 && $action=='copy')

{

? ? $gwhere .= " AND typeid = '$typeid' ";

}

2、在php文件中查找下邊代碼搬味,細(xì)心的童鞋可以發(fā)現(xiàn)“//修正縮略圖錯(cuò)誤”這個(gè)操作出現(xiàn)了兩次境氢,應(yīng)該是開(kāi)發(fā)人員的惡搞吧,可以刪除掉該操作

//刪除空標(biāo)題內(nèi)容

else if($action=='delnulltitle')

{

? ? $dsql->SetQuery("SELECT id FROM #@__archives WHERE trim(title)='' ");

? ? $dsql->Execute('x');

? ? $tdd = 0;

? ? while($row = $dsql->GetObject('x'))

? ? {

? ? ? ? if(DelArc($row->id)) $tdd++;

? ? }

? ? ShowMsg("成功刪除 $tdd 條記錄身腻!","javascript:;");

? ? exit();

}

//修正縮略圖錯(cuò)誤

else if($action=='modddpic')

{

? ? $dsql->ExecuteNoneQuery("UPDATE #@__archives SET litpic='' WHERE trim(litpic)='litpic' ");

? ? ShowMsg("成功修正縮略圖錯(cuò)誤产还!","javascript:;");

? ? exit();

}

查找到以后在此代碼之后加入下列代碼:

else if($action=='copy')

{

? ? if(empty($typeid))

? ? {

? ? ? ? ShowMsg('該操作必須指定欄目!','javascript:;');

? ? ? ? exit();

? ? }

? ? $typeold = $dsql->GetOne("Select * From `#@__arctype` where id='$typeid'; ");

? ? $typenew = $dsql->GetOne("Select * From `#@__arctype` where id='$newtypeid'; ");

? ? if(!is_array($typenew))

? ? {

? ? ? ? $dsql->Close();

? ? ? ? ShowMsg("無(wú)法檢測(cè)復(fù)制到的新欄目的信息嘀趟,不能完成操作脐区!","javascript:;");

? ? ? ? exit();

? ? }

? ? if($typenew['ispart']!=0)

? ? {

? ? ? ? $dsql->Close();

? ? ? ? ShowMsg("你不能把數(shù)據(jù)復(fù)制到非最終列表的欄目!","javascript:;");

? ? ? ? exit();

? ? }

? ? if($typenew['channeltype']!=$typeold['channeltype'])

? ? {

? ? ? ? $dsql->Close();

? ? ? ? ShowMsg("不能把數(shù)據(jù)復(fù)制到內(nèi)容類型不同的欄目她按!","javascript:;");

? ? ? ? exit();

? ? }

? ? $gwhere .= " And channel='".$typenew['channeltype']."' And title like '%$keyword%'";

? ? $ch = $dsql->GetOne("Select addtable From `#@__channeltype` where id={$typenew['channeltype']} ");

? ? $addtable = $ch['addtable'];

? ? // 2020-4-8 update

? ? $dsql->SetQuery("Select * From `#@__archives` $gwhere");

? ? // 2020-4-8 update

? ? // $dsql->SetQuery("Select * From `#@__archives` where typeid='$typeid'");

? ? $dsql->Execute('c');

? ? $tdd = 0;

? ? while($row = $dsql->GetObject('c'))

? ? {

? ? ? ? $senddate = time();

? ? ? ? $sortrank = AddDay($senddate,0);//第二個(gè)參數(shù)是排序值牛隅,參考article_add.php

? ? ? ? $ID = $row->id;

? ? ? ? $typeid = $newtypeid;//$newtypeid

? ? ? ? $sortrank = $row->sortrank;

? ? ? ? $flag = $row->flag;

? ? ? ? $ismake = $row->ismake;

? ? ? ? $channelid = $row->channel;

? ? ? ? $arcrank = $row->arcrank;

? ? ? ? $click = $row->click;

? ? ? ? $money = $row->money;

? ? ? ? $title = addslashes($row->title);//需要添加addslashes()轉(zhuǎn)換; adan;090508

? ? ? ? $shorttitle = $row->shorttitle;

? ? ? ? $color = $row->color;

? ? ? ? $writer = $row->writer;

? ? ? ? $source = $row->source;

? ? ? ? $litpic = $row->litpic;

? ? ? ? $pubdate = $row->pubdate;

? ? ? ? $adminid = $cuserLogin->getUserID();

? ? ? ? $notpost = $row->notpost;

? ? ? ? $description = addslashes($row->description);//需要添加addslashes()轉(zhuǎn)換酌泰; adan;090508

? ? ? ? $keywords = $row->keywords;

? ? ? ? require_once(DEDEADMIN."/inc/inc_archives_functions.php");

? ? ? ? //重復(fù)文檔跳過(guò)

? ? ? ? $repetition = $dsql->GetOne("Select id From `#@__archives` where title='$title' and typeid = '$typeid' ");

? ? ? ? if($repetition && $repetition['id'] > 0){

? ? ? ? ? ? continue;

? ? ? ? }

? ? ? ? //生成文檔ID

? ? ? ? $arcID = GetIndexKey($arcrank,$typeid,$sortrank,$channelid,$senddate,$adminid);

? ? ? ? if(empty($arcID))

? ? ? ? {

? ? ? ? ? ? ShowMsg("無(wú)法獲得主鍵媒佣,因此無(wú)法進(jìn)行后續(xù)操作!","-1");

? ? ? ? ? ? exit();

? ? ? ? }

? ? ? ? //加入數(shù)據(jù)表#@__archives的SQL語(yǔ)句

? ? ? ? //----------------------------------

? ? ? ? $inQuery = "INSERT INTO `#@__archives`(id,typeid,typeid2,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,

? ? ? ? color,writer,source,litpic,pubdate,senddate,mid,lastpost,scores,goodpost,badpost,notpost,description,keywords,filename)

? ? ? ? VALUES ('$arcID','$typeid','','$sortrank','$flag','$ismake','$channelid','$arcrank','0','$money',

? ? ? ? '$title','$shorttitle','$color','$writer','$source','$litpic','$pubdate','$senddate',

? ? ? ? '$adminid','0','0','0','0','0','$description','$keywords','');";

? ? ? ? if(!$dsql->ExecuteNoneQuery($inQuery))

? ? ? ? {

? ? ? ? ? ? $gerr = $dsql->GetError();

? ? ? ? ? ? $dsql->ExecuteNoneQuery("Delete From `#@__arctiny` where id='$arcID'");

? ? ? ? ? ? ShowMsg("把數(shù)據(jù)保存到數(shù)據(jù)庫(kù)主表 `#@__archives` 時(shí)出錯(cuò)陵刹,請(qǐng)把相關(guān)信息提交給DedeCms官方默伍。".str_replace('"','',$gerr),"javascript:;");

? ? ? ? ? ? exit();

? ? ? ? }

? ? ? ? //保存到附加表

? ? ? ? $cts = $dsql->GetOne("Select addtable From `#@__channeltype` where id='$channelid' ");

? ? ? ? $addtable = trim($cts['addtable']);

? ? ? ? if(empty($addtable))

? ? ? ? {

? ? ? ? ? ? $dsql->ExecuteNoneQuery("Delete From `#@__archives` where id='$arcID'");

? ? ? ? ? ? $dsql->ExecuteNoneQuery("Delete From `#@__arctiny` where id='$arcID'");

? ? ? ? ? ? ShowMsg("沒(méi)找到當(dāng)前模型[{$channelid}]的主表信息,無(wú)法完成操作!也糊。","javascript:;");

? ? ? ? ? ? exit();

? ? ? ? }

? ? ? ? $useip = GetIP();

? ? ? ? $redirecturl = $addRow['redirecturl'];

? ? ? ? $templet = $addRow['templet'];

? ? ? ? $addRow = $dsql->GetOne("Select * from `{$addtable}` where aid='$ID'");

? ? ? ? $body = addslashes($addRow["body"]);

? ? ? ? $query = "INSERT INTO `{$addtable}`(aid,typeid,redirecturl,templet,userip,body) Values('$arcID','$typeid','$redirecturl','$templet','$useip','$body')";

? ? ? ? if(!$dsql->ExecuteNoneQuery($query))

? ? ? ? {

? ? ? ? ? ? $gerr = $dsql->GetError();

? ? ? ? ? ? $dsql->ExecuteNoneQuery("Delete From `#@__archives` where id='$arcID'");

? ? ? ? ? ? $dsql->ExecuteNoneQuery("Delete From `#@__arctiny` where id='$arcID'");

? ? ? ? ? ? ShowMsg("把數(shù)據(jù)保存到數(shù)據(jù)庫(kù)附加表 `{$addtable}` 時(shí)出錯(cuò)炼蹦,請(qǐng)把相關(guān)信息提交給DedeCms官方。".str_replace('"','',$gerr),"javascript:;");

? ? ? ? ? ? exit();

? ? ? ? }

? ? ? ? else $tdd++;

? ? }

? ? if($tdd>0)

? ? {

? ? ? ? $jumpurl = "makehtml_archives_action.php?typeid=$newtypeid&pagesize=20";

? ? ? ? ShowMsg("成功復(fù)制了 $tdd 條記錄狸剃,準(zhǔn)備重新生成HTML...",$jumpurl);

? ? }

? ? else ShowMsg("完成操作掐隐,沒(méi)復(fù)制任何數(shù)據(jù)...","javascript:;");

? ? exit();

}

這就是此次的完善,感覺(jué)還可以的點(diǎn)個(gè)贊再走吧钞馁,分享也不是不可以哦虑省,收藏就更好了!


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末僧凰,一起剝皮案震驚了整個(gè)濱河市探颈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌允悦,老刑警劉巖膝擂,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異隙弛,居然都是意外死亡架馋,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門全闷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)叉寂,“玉大人,你說(shuō)我怎么就攤上這事总珠∑流ⅲ” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵局服,是天一觀的道長(zhǎng)钓瞭。 經(jīng)常有香客問(wèn)我,道長(zhǎng)淫奔,這世上最難降的妖魔是什么山涡? 我笑而不...
    開(kāi)封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮唆迁,結(jié)果婚禮上鸭丛,老公的妹妹穿的比我還像新娘。我一直安慰自己唐责,他們只是感情好鳞溉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著鼠哥,像睡著了一般熟菲。 火紅的嫁衣襯著肌膚如雪看政。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天抄罕,我揣著相機(jī)與錄音帽衙,去河邊找鬼。 笑死贞绵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的恍飘。 我是一名探鬼主播榨崩,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼章母!你這毒婦竟也來(lái)了母蛛?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤乳怎,失蹤者是張志新(化名)和其女友劉穎彩郊,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蚪缀,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡秫逝,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了询枚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片违帆。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖金蜀,靈堂內(nèi)的尸體忽然破棺而出刷后,到底是詐尸還是另有隱情,我是刑警寧澤渊抄,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布尝胆,位于F島的核電站,受9級(jí)特大地震影響护桦,放射性物質(zhì)發(fā)生泄漏含衔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一嘶炭、第九天 我趴在偏房一處隱蔽的房頂上張望抱慌。 院中可真熱鬧,春花似錦眨猎、人聲如沸抑进。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)寺渗。三九已至匿情,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間信殊,已是汗流浹背炬称。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留涡拘,地道東北人玲躯。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像鳄乏,于是被迫代替她去往敵國(guó)和親跷车。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容