由于GAE(Google App Engine)被墙,导致PJBlog过去发布在GAE的源码无法正常下载,我们已于2015年1月4日转移至论坛附件。如发现类似问题,敬请反馈。

[PJBlog^2019]用户聚居地 - ASP中文开源博客系统PJBlog

 找回密码
 立即加入PJHOME

QQ登录

只需一步,快速开始

扫一扫,访问微社区

PJHOME-PJBlog官方论坛 你的关注和支持,是PJBlog不断成长的动力 指南 - 建议 - 展示 - 风云互联 - 合作

PJBlog3 经典版本(推荐) 最终版本:PJBlog3 V3.2.9.518(2011/11/01) 安装 - 升级 - 转换 - 模板 - 插件 - 反馈

PJBlog5 云博客(不推荐) 公测版本:PJBlog5 V1 公测版(2015/01/01) 发布 - 交流 - 文档 - 主题 - 插件 - 云平台

查看: 13953|回复: 26

最新修订:轻轻松松给日志评论增加回复功能

[复制链接]
发表于 2008-4-11 17:40 | 显示全部楼层 |阅读模式
作者:http://www.dudo.org/
演示:http://www.dudo.org/article.asp?id=190

补充一下原理:
    其实原理很简单,就是原有评论的基础上添加一个新的UBB标签,这个UBB标签中的内容就代表是站长给本本条评论的回复,在显现的时候会把它解释成一段特别是的HTML标签<dl><dt>..</dt><dd>...</dd></dl>,并赋予特殊的格式,因此看起来就和真正的评论回复一样。


全部修改文件(包括去除首页边栏Recent Article中UBB标签),最后你还是修改一下你现用皮肤中Link的样式 :


强烈建议您在覆盖文件前做好备份(因为有些文件我可能已经修改过了)

补充:关于几个问题
1、防止用户直接输入[reply]...[/reply]
  答:这个问题一个很简单的解决办法就是使用不公开的UBB代码,如[personalreply]...[/personalreply]诸如此类。如果你觉得这种方法没有技术性,那就使用关键词过滤吧;
2、怎样修改和删除已经有的评论回复?
  答:这个很简单。只要在后台的“评论与留言管理”中,直接修改评论内容就可以了。具体方法:找到[reply]...[/reply]标签,修改或者删除之间的内容即可。
      同时,使用这种方法可以直接实现批量评论回复的效果。方法就是在评论中直接添加[reply]...[/reply]标签。
3、评论预览中会出现UBB代码,这样可能会被别人看到未公开的UBB标签
  答:的确是存在这样的问题。不过在这里不得不提一句就是PJBlog评论预览中允许出现UBB似乎会影响页面的美观,而且对用户来说这是没有任何意义的标签,应该过滤掉。
      目前来看,过滤掉评论预览中的UBB标签是最好的解决办法了,这个已经有人研究过了,具体可以参考http://www.muzili.com/default.asp?id=7830

昨天拜读了“戒聊”兄的帖子给日志评论增加回复功能for pjblog (4/8凌晨更新,修改越权提交的BUG,危险),学到了不少东西。不过对于我来说,可能那些步骤有点麻烦,升级起来稍微费劲点。
我个人的Blog对这方面的需求不是很紧迫,所以小弟想出了一个瞒天过海之术,这种方法没有太大的技术含量,仅仅是为了实现“类似”回复功能而已。
相对了于“戒聊”兄的方法,我这个方法大体有以下几个特点:
1、需要改动的地方很少,一共有6处,涉及原有代码改动的地方仅2处;
2、不需要修改数据库结构,不会给版本升级带来太大问题;
3、没有后台的改动,升级是不设计后台文件

不过最大的缺点就是
1、他并不是真正意义上的评论回复功能,仅仅是能过增加UBB代码使之“貌似”而已,这样做的目的是避免修改数据库,考虑以后的版本升级问题(建议PJ的下一个版本能加上这个功能吧)
2、后台批量回复的话需要自己添加UBB代码[reply][/reply]
3、不能显示回复的日期(当然你可以修改一下使他能够显示,也就是再加一个[date][/date]的UBB代码)
4、固定站长的名称,站长的昵称在数据库是有的,不过我偷懒了,直接写到程序里了;

总之我的修改原则是,不改变数据库结构,尽量少地修改源文件,都是为了下一代着想啊~~~

先看看效果图
居然传不上照片来,说我图片无效,K!用外部图片



那就先说步骤吧
第一步:上传reply.js到 /common/下

第二步:上传commentReply.asp到根目录下

第三步:在header.asp的第58行处添加对reply.js的引用
  1. <script type="text/javascript" src="common/reply.js"></script>
复制代码
第四步:在class/cls_article.asp的第181行处(或查找
  1. if stat_Admin then response.write (" | "&commArr(8,Pcount)) end if%><%if stat_Admin=true or (stat_CommentDel=true and memName=blog_CommAuthor) then response.write (" | <a href=""blogcomm.asp?action=del&commID="&blog_CommID&""" onclick=""if (!window.confirm('是否删除该评论?')) {return false}""><img src=""images/del1.gif"" alt=""删除该评论"" border=""0""/></a>") end if
复制代码

在其后紧接着加入下面代码(注意":"不能丢)
  1. :if stat_Admin then response.write("<a href=""javascript:void(0)"" onclick=""javascript:addReply(this,"&blog_CommID&")""> 回复评论</a>") end if
复制代码
第五步在common/ubbcode.asp中195行处(或查找'-----------字体格式----------------)在其前面添加
  1. re.Pattern="\[reply]([^\r]*?)\[\/reply\]"
  2. strContent=re.Replace(strContent,"<dl class=""commentReply""><dt>dudo的回复:</dt><dd>$1</dd></dl>")
复制代码
注意:要记得把dudo改成你自己哦,或者从数据库中读取,PJBlog应该有这个常量的,忘了

第6步:修改你正在使用的皮肤文件中的layout.css  在文件的结束处加入类似下面的样式
  1.   .reply_comment_textbox{height:50px;width:70%;border:1px solid #bbb;overflow:visible;margin:0 5px;}
  2.   .commentReply {border-left:5px solid #3d6db5;}
  3.   .commentReply dt {margin-left:3px;color:#3d6db5;border-bottom:1px dashed #3d6db5;padding-left:20px;font-weight:bold;line-height:1.5;background:#fff url(../../images/quote.gif) no-repeat left center;}
  4.   .commentReply dd {padding-top:3px;}
复制代码
需要上传的两个文件:


[ 本帖最后由 dudo 于 2008-4-12 22:20 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即加入PJHOME

x

评分

参与人数 2PJ币 +40 收起 理由
jogocun + 20 ajax效果的评论回复,便捷易用!
戒聊 + 20 优秀主题

查看全部评分

欢迎来到PJHOME社区,PJ有你更精彩!!
 楼主| 发表于 2008-4-11 17:41 | 显示全部楼层
不过,如果有人在回复里直接输入[reply][/reply]  怎么办呢?

:(

其实对于这个问题有很多解决办法~

不过最简单的一个就是设定一个别人很难猜测的UBB来,呵呵

[ 本帖最后由 dudo 于 2008-4-11 20:14 编辑 ]
欢迎来到PJHOME社区,PJ有你更精彩!!
回复 支持 反对

使用道具 举报

发表于 2008-4-11 18:07 | 显示全部楼层
ajax的哦?不错滴~~~~
欢迎来到PJHOME社区,PJ有你更精彩!!
回复 支持 反对

使用道具 举报

发表于 2008-4-11 19:13 | 显示全部楼层
没时间琢磨这个了  ...
欢迎来到PJHOME社区,PJ有你更精彩!!
回复 支持 反对

使用道具 举报

发表于 2008-4-11 19:44 | 显示全部楼层

回复 1# 的帖子

不错的方法。。学习一下
欢迎来到PJHOME社区,PJ有你更精彩!!
回复 支持 反对

使用道具 举报

发表于 2008-4-11 23:05 | 显示全部楼层
是不错!
欢迎来到PJHOME社区,PJ有你更精彩!!
回复 支持 反对

使用道具 举报

发表于 2008-4-11 23:28 | 显示全部楼层
把回复留言改成回复评论吧

[ 本帖最后由 loekman 于 2008-4-12 00:09 编辑 ]
欢迎来到PJHOME社区,PJ有你更精彩!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-12 09:06 | 显示全部楼层
OK 已经修改
欢迎来到PJHOME社区,PJ有你更精彩!!
回复 支持 反对

使用道具 举报

发表于 2008-4-12 14:57 | 显示全部楼层
急。在侧边栏里会出现[reply]的字样。。还有这种回复以后不可以修改,不可以删除。请问怎么修改?

[ 本帖最后由 awee 于 2008-4-12 14:58 编辑 ]
欢迎来到PJHOME社区,PJ有你更精彩!!
回复 支持 反对

使用道具 举报

发表于 2008-4-12 20:02 | 显示全部楼层
楼主能不能把你修改好的文件一次发出来?我照你的方法弄了,不能回复哦~!奇怪了~!可能是我没有装DW吧,看代码都不整齐~!希望楼主能帮帮忙~!谢谢~!
欢迎来到PJHOME社区,PJ有你更精彩!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入PJHOME

本版积分规则

关闭

PJHOME小黑板报上一条 /1 下一条

小黑屋|手机版|纯文字版|BBS.PJHOME.NET ( 粤ICP备12036560号-1 )

GMT+8, 2019-11-17 15:28 , Processed in 0.199934 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表