批量给织梦DedeCMS已发布的文章添加Tag标签

编程之家收集整理的这篇文章主要介绍了批量给织梦DedeCMS已发布的文章添加Tag标签编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

今天在来分享一个给 Dedecms 已发布的文章批量添加 tag 标签方法,之前发布了不少文章,后来发现之前的这些文章当时发布时都没有添加 tag 标签,然而现在需要都添加上 tag 标签,然而这个在默认的织梦后台是没办法批量实现的,只能一篇篇文章修改

在织梦 cms 原来的文章列表管理页面增加了一个批量添加 tags 的按钮用于给选择的文章批量添加 tag。下面我们贴上代码,打开 dede/templets/content_list.htm,找到下面代码

<a href="javascript:;" onClick="cAtts('attsDel',event,this)" class="coolbg">&nbsp;删除属性&nbsp;</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'>&nbsp;标 签:</td>
<td class='bline'>
<input type='text' name='tags' id="tags" value='' />(','号分隔,单个标签小于12字节)
</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; ?>" 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" />
&nbsp;&nbsp;
<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标签所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

相关文章

猜你在找的Dedecms相关文章

DedeCMS列表页/内容页如何调用顶级栏目ID的方法总结,使用dede顶级栏目id可以实现很多功能比如:在每个列表页调用不同的栏目图片(同一顶级栏目调用相同的图
我们用织梦做网站,有时候需要用php截取特定字符前面和后面的内容,可以用以下方法来实现。1、php截取特定字符后面的内容可以使用函数strripos,获取一
DedeCMS中是可以使用PHP的,常见的方法就是ifelse了,例如模板制作中,DedeCMS织梦判断当前字段是否有值有则显示无则不显示,实现的方法如下。示例一1
织梦DedeCMS列表页获取访客热搜排行榜文章的方法,方法比较简单只需要打开织梦/include/extend.func.php最后加上以下代码:170465897460ee63c2bbfe1_0000
很多人说,DeDecms是一款非常好用,非常棒的内容管理程序。但是如果DeDecms技术工程师针对用户体验和程序安全方面在用心点的话,相信使用的用户将更多。今
织梦在建站的时候也希望自己的文章能被评论,这样也可以给自己提出很多的意见,在首页也可以调用出评论,把织梦首页中的评论链接地址换成静态化的文件还要
用过wordpress的朋友都知道,wordpress有个功能就是调用标签的时候可以在每个标签的后面显示出当前标签所对应的文章数量。看上去很美观,而且每一个tag标签
经过测试貌似{dede:php}标签中不能直接使用其他普通标签例如:{dede:field.title/},{dede:global.cfg_webname/}但是我们可以通过其他方式来实现相应的功能