PJBlog3 发布版本 v2.8.3.127 里程碑

查看完整版本: 最新修订:轻轻松松给日志评论增加回复功能

dudo 2008-4-11 17:40

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

作者:[url]http://www.dudo.org/[/url]
演示:[url]http://www.dudo.org/article.asp?id=190[/url]

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

[color=Red][size=6]全部修改文件(包括去除首页边栏Recent Article中UBB标签),最后你还是修改一下你现用皮肤中Link的样式 :[/size][/color]
[attach]10744[/attach]

[color=Red][size=6]强烈建议您在覆盖文件前做好备份(因为有些文件我可能已经修改过了)[/size][/color]

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

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

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

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

先看看效果图
居然传不上照片来,说我图片无效,K!用外部图片
[img]http://www.dudo.org/attachments/month_0804/r2008411173047.jpg[/img]
[img]http://www.dudo.org/attachments/month_0804/j2008411173144.jpg[/img]

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

第二步:[b]上传commentReply.asp到根目录下[/b]

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

第6步:[b]修改你正在使用的皮肤文件中的layout.css  在文件的结束处加入类似下面的样式[/b][code]  .reply_comment_textbox{height:50px;width:70%;border:1px solid #bbb;overflow:visible;margin:0 5px;}
  .commentReply {border-left:5px solid #3d6db5;}
  .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;}
  .commentReply dd {padding-top:3px;}[/code]需要上传的两个文件:
[attach]10717[/attach]

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

dudo 2008-4-11 17:41

[quote]不过,如果有人在回复里直接输入[reply][/reply]  怎么办呢?

:( :( :( :([/quote]
其实对于这个问题有很多解决办法~

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

[[i] 本帖最后由 dudo 于 2008-4-11 20:14 编辑 [/i]]

Rison 2008-4-11 18:07

ajax的哦?不错滴~~~~

jingmei 2008-4-11 19:13

没时间琢磨这个了  ...

轻草飞扬 2008-4-11 19:44

回复 1# 的帖子

不错的方法。。学习一下

veisin 2008-4-11 23:05

是不错!

loekman 2008-4-11 23:28

把回复留言改成回复评论吧

[[i] 本帖最后由 loekman 于 2008-4-12 00:09 编辑 [/i]]

dudo 2008-4-12 09:06

OK 已经修改

awee 2008-4-12 14:57

急。在侧边栏里会出现[reply]的字样。。还有这种回复以后不可以修改,不可以删除。请问怎么修改?

[[i] 本帖最后由 awee 于 2008-4-12 14:58 编辑 [/i]]

李萧然 2008-4-12 20:02

楼主能不能把你修改好的文件一次发出来?我照你的方法弄了,不能回复哦~!奇怪了~!可能是我没有装DW吧,看代码都不整齐~!希望楼主能帮帮忙~!谢谢~!

zwlwyq 2008-4-12 20:31

后台不是可以回复的吗

haitt 2008-4-12 21:07

学习下。。。谢谢。

dudo 2008-4-12 21:50

[quote]原帖由 [i]awee[/i] 于 2008-4-12 14:57 发表 [url=http://bbs.pjhome.net/redirect.php?goto=findpost&pid=238735&ptid=33040][img]http://bbs.pjhome.net/images/common/back.gif[/img][/url]
急。在侧边栏里会出现[reply]的字样。。还有这种回复以后不可以修改,不可以删除。请问怎么修改? [/quote]
我已经在我的博客中回复了你的问题,但是你没有留下你的电子邮件,所以也没法直接通知你。
希望你能看到。

现在可以直接查看主帖修改部分

52077 2008-4-12 23:38

不知道WBC的AJAX评论试不试用
我试试

52077 2008-4-12 23:54

不错不错!!AJAX评论能用~~
在我那版我就加精加分了!

bushiba 2008-4-24 11:20

加油加油~ 期待你的新版本呢~嘎嘎

dudo 2008-4-24 11:37

好吧,一会再写一个新版本的

白垩纪 2008-4-25 01:07

我顶 !!

虽然我不用,但我顶楼主 。

我的blog就是写东西,如果 留言本能做的好 一点,评论功能加强一点

PJ 就是最适合我的了 。

我最近新看了一个 blog程序,大家可以去借鉴一下

[url]www.playes.net[/url]

里面的一些代码,一些功能我个人觉得还是很不错的了

dudo 2008-4-25 11:47

其实我很想加上一个站长回复之后把信息发到用户的邮箱里,这样会带来很多回头访客。但是如果要实现这一点的话就会更改数据库的结构了。

jogocun 2008-4-28 10:05

[quote]原帖由 [i]zwlwyq[/i] 于 2008-4-12 20:31 发表 [url=http://bbs.pjhome.net/redirect.php?goto=findpost&pid=238860&ptid=33040][img]http://bbs.pjhome.net/images/common/back.gif[/img][/url]
后台不是可以回复的吗 [/quote]

呵呵,懒一下,我就是在后台回复评论,在评论下编辑UBB代码当作回复,也不错的,然后点击
保存,一口气保存所有的回复了。
页: [1] 2
查看完整版本: 最新修订:轻轻松松给日志评论增加回复功能