IT技术网www.itjs.cn

当前位置:首页 > 网站建设 > DedeCMS > Dedecms 5.7批量添加tag标签的方法,亲测可用

Dedecms 5.7批量添加tag标签的方法,亲测可用

发布时间:2016-03-01 10:55 来源:IT技术网

Dedecms 5.7批量添加tag标签的方法,亲测可用,测试平台Dedecms 5.7 GBK版本,本文介绍如何实现dedecms后台手工为文章或产品内容批量添加添加tag标签,该功能将极大方便站长对大量内容的标签维护工作,节约时间。

织梦Dedecms 5.7批量添加tag标签操作共需要修改三个文件 都在后台目录下(默认为/dede/)分别是:

 /dede/templates/content_list.htm ,/dede/js/list.js, /dede/archives_do.php

第一步:添加“批量增加tags” 按钮,打开 content_list.htm文件 找到

<a href="javascript:;" onClick="cAtts('attsDel',event,this)" class="coolbg">&nbsp;删除属性&nbsp;</a> 这行,在下面添加

<a href="javascript:;" onClick="addTags('tagsAdd',event,this)" class="coolbg">&nbsp;增加TAG&nbsp;</a>

第二步:修改 js文件

打开list.js找到 function cAtts(jname, e, obj) 这个函数,并在这个函数后面 增加一个函数
function addTags(jname, e, obj)
{
var qstr=getCheckboxItem();
if(qstr=='')
{
 alert('必须选择一个或多个文档!');
return;
}
LoadQuickp(e, 'archives_do.php?dopost=tagsDlg&qstr='+qstr+'&dojob='+jname+'&rnd='+Math.random(), 'tagsDlg', '450px', '160px');
ChangeFullp('show');
}

第三步:修改archives_do.php文件

1、在 //获得批量属性处理的AJAX窗体 这个模块下面(注意,这里是指整个模块结束)增加下面的代码用于显示批量增加tags的对话框

/*--------------------------
//获得批量tag处理的AJAX窗体
function tagsDlg(){ }
---------------------------*/

 else if($dopost=='tagsDlg')
{
if( !empty($aid) && empty($qstr) )
{
$qstr = $aid;
}
$dojobname = '批量增加tag';
AjaxHead();
//输出AJAX可移动窗体
$pname = 'tagsDlg';
echo "<p class='title' onmousemove=\"DropMoveHand('{$pname}', 225);\" onmousedown=\"DropStartHand();\" onmouseup=\"DropStopHand();\">\r\n";
echo " <p class='titLeft'>{$dojobname}</p>\r\n";
echo " <p class='titRight'><
img src='images/ico-close.gif' style='cursor:pointer;' onclick='HideObj(\"{$pname}\");ChangeFullp(\"hide\");' alt='关闭' title='关闭' /></p>\r\n";
echo "</p>\r\n";
echo "<form name='quickeditform' action='archives_do.
php' method='post'>\r\n";
echo "<input type='hidden' name='dopost' value='{$dojob}' />\r\n";
echo "<input 
type='hidden' name='qstr' value='{$qstr}' />\r\n";
echo "<table width='100%' style='margin-top:6px;z-index:9000;'>\r\n";
?>
<tr height='28'>
<td width="100" class='bline'>&nbsp;Tags:</td>
<td >
  <textarea name="tags" id="tags" rows="5" cols="10" 
style="width:310px;"></textarea> 


</td>
</tr>
<tr height='32'>
<td width="80" class='bline'>&nbsp;文档ID:</td>
<td class='bline'>
<input type='text' name='tmpids' value="<?
php echo $qstr; ?>" style='width:310px;overflow:hidden;' />
</td>
</tr>
<tr height='32'>
<td colspan='2' align='center' style='padding-top:12px'>
<input name="imageField" 
type="image" src="images/button_ok.gif" width="60" height="22" class="np" border="0" style="cursor:pointer" />
&nbsp;&nbsp;
<
img src="images/button_back.gif" width="60" height="22" border="0" onclick='HideObj("<?php echo $pname; ?>");ChangeFullp("hide");' style="cursor:pointer" />
</td>
</td>
</tr>
</table>
</form>
<?
php
//AJAX窗体结束
}

2、然后在
/*--------------------------
//批量删除属性
function attsDel(){ }
---------------------------*/
的模块后面加上下面的代码(注意,这里是指整个模块结束):

/*--------------------------
//批量增加tag
function addTags(){ }
---------------------------*/
else if($dopost=='tagsAdd')
{
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();
}
$arcids = ereg_replace('[^0-9,]','',ereg_replace('`', ',', $qstr));

//分解keywords
if($tags!='' && !ereg(',',$tags))
{
 $keyarr = explode(' ', $tags);
}
else
{
 $keyarr = explode(',', $tags);
}
//遍历关键字
foreach($keyarr as $keyword)
{
 $key
word = trim($keyword);
 if($keyword != '' && strlen($keyword)<13 )
 {
  $keyword = addslashes($keyword);
  $row = $dsql->getone("select id from `dede_tagindex` where tag like '$keyword'");
  if(is_array($row))
  {
   $tid = $row['id'];
   $query = "update `dede_tagindex` set `total`=`total`+1 where id='$tid' ";
 
  //
遍历文章ID
   $idarr = explode(',', $arcids);
   foreach($idarr as $tagid)
   {
   InsertTags($key
word, $tagid);
   }
  }
 }
}

ShowMsg("成功对选中文档增加指定的tags!",$ENV_GOBACK_URL);
exit();
}

最后上传,覆盖,然后完成。

提醒:
注意修改前备份原文件,Dedecms作为优秀的开源cms,有巨大潜力挖掘,希望大家好好利用。