今天在来分享一个给 Dedecms 已发布的文章批量添加 tag 标签的方法,之前发布了不少文章,后来发现之前的这些文章当时发布时都没有添加 tag 标签,然而现在需要都添加上 tag 标签,然而这个在默认的织梦后台是没办法批量实现的,只能一篇篇文章去修改。
在织梦 CMS 原来的文章列表管理页面增加了一个批量添加 Tags 的按钮用于给选择的文章批量添加 tag。下面我们贴上代码,打开 dede/templets/content_List.htm,找到下面代码:
<a href="JavaScript:;" onClick="cAtts('attsDel',event,this)" class="coolbg"> 删除属性 </a>
在他后面添加代码
<a class="coolbg" onclick="EditArcs('TagsEdit',event,this)" href="JavaScript:;"> 修改Tags标签 </a>
打开 dede/Js/List.Js,在文件最后边添加这些代码:
/*批量修改文档*/function EditArcs(jname,e,obj){var qstr=getCheckBoxItem();if(qstr==''){alert('必需选择一个或多个文档!');return;}LoadQuickdiv(e, 'archives_do.PHP?dopost=batchEditArchives&qstr='+qstr+'&dojob='+jname+'&rnd='+Math.random(), 'TagsEditDlg', '450px', '160px');ChangeFulldiv('show');}
打开 dede/archives_do.PHP,这个文件的最后四行是:
<?PHP//AJAX窗体结束}?>把它改成<?PHP//AJAX 窗体结束}/* * -------------------------------------------- * function batchEditArchives(){} * 批量修改文档 * -------------------------------------------- * */else if ($dopost == 'batchEditArchives'){if( !empty($aID) && empty($qstr) ){$qstr = $aID;}$dojobname = '修改TAG标签';AJAXhead();//输出AJAX可移动窗体$divname = 'TagsEditDlg';echo "<div class='Title' onmousemove="DropMoveHand('{$divname}', 225);" onmousedown="DropStartHand();" onmouseup="DropStopHand();">rn";echo " <div class='Titleft'>{$dojobname}</div>rn";echo " <div class='titRight'><img src='images/ico-close.gif' cursor:pointer;' onclick='HIDeObj("{$divname}");ChangeFulldiv("hIDe");' alt='封锁' Title='封锁' /></div>rn";echo "</div>rn";echo "<form name='TagsEditDlgform' action='archives_do.PHP' method='post'>rn";echo "<input type='hIDden' name='dopost' value='{$dojob}' />rn";echo "<input type='hIDden' name='qstr' value='{$qstr}' />rn";echo "<table wIDth='100%' style='margin-top:6px;z-index:9000;'>rn";?><tr height='28'><td wIDth="80" class='bline'> 标 签:</td><td class='bline'><input type='text' name='Tags' ID="Tags" value='' />(','号分隔,单个标签小于12字节)</td></tr><tr height='32'><td wIDth="80" class='bline'> 文档ID:</td><td class='bline'><input type='text' name='tmpIDs' value="<?PHP echo $qstr; ?>" wIDth:310px;overflow:hidden;' /></td></tr><tr height='32'><td colspan='2' align='center' padding-top:12px'><input name="imageFIEld" type="image" src="images/button_ok.gif" wIDth="60" height="22" class="np" border="0" cursor:pointer" /> <img src="images/button_back.gif" wIDth="60" height="22" border="0" onclick='HIDeObj("<?PHP echo $divname; ?>");ChangeFulldiv("hIDe");' cursor:pointer" /></td></td></tr></table></form><?PHP//AJAX 窗体结束}//修改标签结束/* * ------------------------------ * 修改标签详细 *** 作 * function TagsEdit(){} * ------------------------------ * * */elseif ($dopost == 'TagsEdit'){//CheckPurvIEw('a_Commend,sys_ArcBatch');if( !empty($aID) && empty($qstr) ){$qstr = $aID;}if($qstr==''){ShowMsg("参数无效!", $ENV_GOBACK_URL);exit();} if(empty($Tags)){ShowMsg("必需输入Tags标签!", $ENV_GOBACK_URL);exit();}$Tags = str_replace(',', ',', $Tags);$Tagss = explode(',',$Tags);if(empty($Tagss)){ShowMsg("必需输入Tags标签!", $ENV_GOBACK_URL);exit();} $arcIDs = ereg_replace('[^0-9,]','',ereg_replace('`', ',', $qstr));$arcIDs_arr = explode(',', $arcIDs);if (empty($arcIDs_arr)) {ShowMsg("参数无效!", $ENV_GOBACK_URL);exit();} foreach($arcIDs_arr as $ID){/* * 处理修改后的Tag */$oldtag = GetTags($ID);$oldTags = explode(',',$oldtag);foreach($Tagss as $tag){$tag = trim($tag);if(isset($tag[255]) || $tag!=stripslashes($tag)){continue;}if(!in_array($tag,$oldTags)){InsertOneTag($tag,$ID);}}foreach($oldTags as $tag){if(!in_array($tag,$Tagss)){$dsql->ExecuteNonequery("Delete From `Js_tagList` where aID='$ID' And tag like '$tag' ");$dsql->ExecuteNonequery("Update `Js_tagindex` set total=total-1 where tag like '$tag' ");}else{$dsql->ExecuteNonequery("Update `Js_tagList` set `arcrank` = '$arcrank', `typeID` = '$typeID' where tag like '$tag' ");}}}ShowMsg("成功修改选中文档的Tags标签!", $ENV_GOBACK_URL);exit(); }
把这些文件全部保存,已发布文章批量添加 Tags 改造完成。
总结以上是内存溢出为你收集整理的批量给织梦DedeCMS已发布的文章添加Tag标签全部内容,希望文章能够帮你解决批量给织梦DedeCMS已发布的文章添加Tag标签所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)