请在Chrome、Firefox等现代浏览器浏览本站。网站域名:森林之家(www.foresthouse.cn)爱学习、爱分享、爱绿软、爱恐怖、爱音乐、爱唠叨、爱折腾、爱生活!

织梦后台快速属性编辑添加tag标签编辑功能完美实现

织梦教程 forest 3889℃ 已收录 0评论

我们在织梦后台想要编辑一篇文章的属性,里面可供编辑的项目是有限的,例如我想快速编辑一篇文章的tag标签,只能先打开文章修改页面来修改很是麻烦,有了这个添加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即可。如下图这样:

到此功能已经实现了,看下我的效果:

PS如果你跟我一样如果tag为空就啥也不显示,如果不为空就显示本文关键词或文本tag然后后面加上tag,如下图:

没有tag的情况下

没有tag
在有tag的情况下

有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标签功能的完美实现

本站文章如未注明,均为原创丨本网站采用BY-NC-SA协议进行授权,转载请注明转自:https://www.foresthouse.cn/archives/5779.html
喜欢 (3)or分享 (0)
发表我的评论(注:在您评论完以后不会立即显示,请不要重复刷新以免进入黑名单。)
取消评论
表情 代码 贴图 加粗 链接 私信 删除线 签到

Hi,请填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址