网页特效代码_站长素材站移动版

DeDecms教程

主页 > CMS教程 > DeDecms教程 >

织梦dedecms管理后台的快速属性编辑添加tag标签编辑功能的完美实现方法

我们在织梦后台想要编辑一篇文章的属性,里面可供编辑的项目是有限的,例如我想快速编辑一篇文章的tag标签,只能先打开文章修改页面来修改很是麻烦,有了这个添加TAG标签的功能简单多了和添加关键词一样简单。先看下成功的样子:
织梦dedecms管理后台的快速属性编辑添加tag标签编辑功能的完美实现方法
织梦后台快速属性编辑添加tag标签编辑功能完美实现
 
要达到上图这种可以在后台直接添加或者修改tag标签要怎么做呢,具体看下面:
 
第一步:打开/dede/archives_do.php,大约第582行找到如下代码:
require_once(DEDEADMIN."/inc/inc_catalog_options.php");
在下面增加如下代码:
require_once(DEDEINC."/dedetag.class.php");
$tags = GetTags($aid);
第二步:还是archives_do.php这个文件在大约670行找到如下代码:
<tr height='32'>
 <td width="80" class='bline'>&nbsp;关键字:</td>
 <td class='bline'> <input name="keywords" type="text" id="keywords" value="<?php echo $arcRow['keywords']; ?>" style="width:70%" /> </td>
</tr>
在下面添加如下代码:
<tr height='32'>
 <td width="80" class='bline'>&nbsp;TAG标签:</td> <td class='bline'> <input name="tags" type="text" id="tags" value="<?php echo $tags; ?>" style="width:70%" /> </td>
</tr>
第三步:大概在742行找到如下代码:
if($typeid != $oldtypeid) { $addtable = trim($addtable); if(empty($addtable)) $addtable = '【数据表前缀】_addonarticle'; else $addtable = preg_replace("#[^a-z0-9__#@-]#i", "", $addtable); $dsql->ExecuteNoneQuery(" UPDATE `$addtable` SET typeid='$typeid' WHERE aid='$aid' "); }
在其下面添加如下代码:
if ($tags!='') {
$oldtag = GetTags($aid);
$oldtags = explode(',', $oldtag);
$tagss = explode(',', $tags);
foreach($tagss as $tag) {
$tag = trim($tag);
if (isset($tag[12]) || $tag != stripslashes($tag)) {
continue;
}
if (!in_array($tag, $oldtags)) {
InsertOneTag($tag, $aid);
}
}
foreach($oldtags as $tag) {
if (!in_array($tag, $tagss)) {
$dsql->ExecuteNoneQuery("DELETE FROM `【数据表前缀】_taglist` WHERE aid='$aid' AND tag LIKE '$tag' ");
$dsql->ExecuteNoneQuery("UPDATE `【数据表前缀】_tagindex` SET total=total-1 WHERE tag LIKE '$tag' ");
} else {
$dsql->ExecuteNoneQuery("UPDATE `【数据表前缀】_taglist` SET `arcrank` = '$arcrank', `typeid` = '$typeid', aid='$aid' WHERE tag LIKE '$tag' ");
}
}
}
 
第四步:打开/dede/js/list.js,找到第72行(注意不是最后一行),把最后的300px修改为330px即可。如下图这样:
 
到此功能已经实现了,看下我的效果:
织梦dedecms管理后台的快速属性编辑添加tag标签编辑功能的完美实现方法
 
PS如果你跟我一样如果tag为空就啥也不显示,如果不为空就显示本文关键词或文本tag然后后面加上tag,如下图:
没有tag的情况下  ↓
织梦dedecms管理后台的快速属性编辑添加tag标签编辑功能的完美实现方法
在有tag的情况下  ↓
织梦dedecms管理后台的快速属性编辑添加tag标签编辑功能的完美实现方法
 
那么可以用我下面的这段代码,写得比较傻瓜但是很容易懂。
{dede:tag row='1' sort='new' getall='0'} [field:tag runphp='yes'/] if(@me=='') { @me = '' ;} else {@me = "本文关键字:"; } [/field:tag] {/dede:tag} {dede:tag row='10' sort='new' getall='0'} [field:tag runphp='yes'/] if(@me=='') { @me = '' ;} else {@me = "@me "; } [/field:tag] {/dede:tag}
代码中循环了两次第一次的是目的是判断tag是否为空如果为空就不输出内容,如果不为空就输出指定的文字(注:“row必须要=1,否则tag有多少你指定的文字就会循环输出多少次”);第二次的目的是判断tag是否为空如果为空就不输出内容,如果不为空就输出最大10个tag。其实还有一个简单的代码就是给tag增加autoindex,用自增判断第一个就输出文字,其他不输出就行。
 
实际使用中我发现有个问题就是后台删不掉写好的tag,删除了又有了我们可以删除以后加一个空格就解决了。
既然研究tag了就得搞到底虽然本文修改tag标签很快但也得一篇一篇文章的修改,能不能批量添加呢?比发后台所有文章全选给它们全部加一个或多个tag标签?需要这种功能的可以看这篇文章:
 
织梦TAG静态化加后台批量添加修改tags标签功能的完美实现
转自:https://www.foresthouse.cn/archives/5779.html
(责任编辑:admin)

    468x60