dudo博客

更多更新及问题解答请看http://bbs.pjhome.net/thread-33040-1-1.html

补充一下原理:

其实原理很简单,就是原有评论的基础上添加一个新的UBB标签,这个UBB标签中的内容就代表是站长给本本条评论的回复,在显现的时候会把它解释成一段特别是的HTML标签<dl>lt;dl<dl>gt;<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、固定站长的名称,站长的昵称在数据库是有的,不过我偷懒了,直接写到程序里了;

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

先看看效果图


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

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

第三步:在header.asp的第58行处添加对reply.js的引用

<script type="text/javascript" src="common/reply.js">&;lt/script>

第四步:在class/cls_article.asp的第181行处(或查找

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 (" | ""删除该评论""") end if


在其后紧接着加入下面代码(注意”:”不能丢)

:if stat_Admin then response.write(" 回复留言") end if

第五步在common/ubbcode.asp中195行处(或查找’———–字体格式—————-)在其前面添加

re.Pattern="\[reply]([^\r]*?)\[\/reply\]"
strContent=re.Replace(strContent,"
dudo的回复:
$1
")

注意:要记得把dudo改成你自己哦,或者从数据库中读取,PJBlog应该有这个常量的,忘了

第6步:修改你正在使用的皮肤文件中的layout.css 在文件的结束处加入类似下面的样式

  .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;}

需要上传的两个文件:

点击下载此文件

5月3日更新

1、在使用了上面的方法修改之后,我们会发现在侧边栏的 Recent Comments(最新评论)中有时会出现UBB代码,如果出现我们隐藏的UBB代码的话,就会被人恶意使用冒充管理员回复,其次,出现UBB代码也影响美观,因此我们要把Recent Comments中的UBB代码过滤掉。具体修改方法可以查看这篇文章
2、在上面的文章中我们还要做一个简单的修改:把DelUbb方法中添加这样一句话

re.Pattern = "\[reply\](\s\S)\[\/reply]"
    strContent= re.Replace(strContent,"$1")

3、在 Recent Comments中标注管理员已经回复的评论:我们只需要在common\cache.asp里输出时判断是否存在[reply]标签就可以了,如果存在[reply]即加上[op];



共有(10)条评论

test 发表于 2008-4-11 at 17:44 #1楼

测试一下
请大家多多对这个修改方法提意见和改进方法哦[reply=dudo,2009-04-25 09:30 PM]回复一个作为测试,[smile][smile][/reply]

[回复]


focusheart 发表于 2008-4-11 at 21:32 #2楼

Arrr… I see…
I saw some blogs use this! for example, blogcn.com~[reply=dudo,2009-04-25 09:30 PM]Exactlyy~~[/reply]

[回复]


focusheart 发表于 2008-4-11 at 21:34 #3楼

pjblog is based on ASP!!!

btw: your domain name is good! dudou!

[回复]


awee 发表于 2008-4-12 at 14:57 #4楼

急。在侧边栏里会出现[reply]的字样。。还有这种回复以后不可以修改,不可以删除。请问怎么修改?
[reply=dudo,2009-04-25 09:30 PM]的确会出现[reply]的情况,这里可能需要修改源程序了,不过这个我没有留意到,我修改后尽快给你回复;
1、修改和删除在通过后台的留言和评论管理来实现的
2、同时,还建议你不要直接直接使用[reply]…[/reply],而是使用一个没有公开(只有你自己知道的)的UBB标签,否则别人直接使用[reply]…[/reply]就会显示站长回复了
3、通过后台的留言和评论管理中直接输入[reply]…[/reply]实现批量回复[/reply][reply=dudo,2009-04-25 09:30 PM]对于侧边栏中会出现[reply]的问题,可能直接将UBB标签过滤掉,而且个人觉得侧边栏本来就不应该出现UBB代码。具体操作方法请参考文章http://www.muzili.com/default.asp?id=7830,如果无法访问请参考Google中该文章的Cache[/reply]

[回复]


11 发表于 2008-4-12 at 21:54 #5楼

[reply]…[/reply][reply=dudo,2009-04-25 09:30 PM]呵呵,欢迎测试。[/reply]

[回复]


awee 发表于 2008-4-13 at 00:07 #6楼

谢谢dudo,已经弄好了[reply=dudo,2009-04-25 09:30 PM]呵呵,大家共同学习[smile][/reply]

[回复]


Expt 发表于 2008-4-24 at 10:13 #7楼

楼主的东西非常好!我也觉得修改数据库不是很好~ 另外对这种风格的回复方式非常喜欢!

但是有一个问题,当我回复成功后,要是不停的刷新提示信息的页面,commentReply.asp 再返回的话,会出现相同的一大片评论回复.不知道楼主能不能帮忙继续完善commentReply.asp这个文件.还有就是当登陆后直接访问commentReply.asp会提示错误信息.楼主能加个类似提示非法参数的功能吗?不晓得会不会存在安全隐患.[reply=dudo,2009-04-25 09:30 PM]你说的这两个问题的确存在。我在写这个程序的时候主要考虑用这个功能的一般都是网站的管理员,不会恶意重复刷新。
不过考虑到程度的易用性,应当再做这方面的改进。
我试试![/reply]

[回复]


℡火恋の神父 发表于 2008-6-06 at 13:58 #8楼

我的回复却显示为[reply]…[/reply][reply=dudo,2009-04-25 09:30 PM]在UBBCode.asp里没有添加代码吧?如果添加了应就不会出现这样的问题[/reply]

[回复]


玖玖猫 发表于 2008-7-04 at 10:46 #9楼

请问怎么样能使评论做成 游客可以发表评论 也可以回复他人评论,点回复评论框能自己升上来

[回复]


炎炎 发表于 2008-10-27 at 15:41 #10楼

新版好像找不到文件
如commentReply.asp

[回复]


随便说两句
名字:
Email:
网站:
内容:

无觅相关文章插件,快速提升流量