在《消除ZBlog评论列表中的“[REVERT”》一文中曾经修改过Z-Blog的评论列表的显示内容,以去掉评论列表中的“REVERT”标志。当时是在c_system_base.asp文件中的Set objArticle=New TArticle上面新增一行If InStr(Ucase(s),"[R")>0 Then s=split(s,"[R")(0),现在想想,这样只是在列表内容已经形成的情况下再做截取(已经按设定的最大输出字符数生成),为什么不在完整的记录上时就先作截取修改,再按最大输出评论字符数生成输出呢,还能保留最末尾的“...”,而且还能对回复和引用的内容进行想要的改造。当然这一切只是为了好看,并不是有关性能与收录。
因此我再次修改了这一段内容,把上面所说的增加的代码从Set objArticle=New TArticle移到If (Len(s)>ZC_RECENT_COMMENT_WORD_MAX) And (ZC_RECENT_COMMENT_WORD_MAX>(Len(ZC_MSG305)+1)) Then s=Left(s,ZC_RECENT_COMMENT_WORD_MAX-(Len(ZC_MSG305)+1))&ZC_MSG305的上面,即s=Replace(s,vbCrlf,"")这一行的下面,当刚刚取出完整的评论内容(s变量)时就做截取与修改,然后再按指定的字符数输出。
同时为了改造回复与引用的标志,我多加了几行,因此完整的修改内容是:
先在Dim s下加一行Dim r,然后在s=Replace(s,vbCrlf,"")后添加
' 在www.stormcn.cn中去掉评论列表的QUOTE和改造REVERT
r=s
If InStr(Ucase(s),"[/QUOTE]")>0 Then s=split(s,"[/QUOTE]")(1)
If InStr(Ucase(s),"REVERT=")>0 Then s=split(s,"REVERT=")(0) & split(s,"REVERT=")(1)
If InStr(Ucase(s)," 于 ")>0 Then s=split(s," 于 ")(0)
if InStr(Ucase(r),"回复]")>0 Then s=s & "回复]" & split(r,"回复]")(1)
If InStr(Ucase(s),"[/REVERT]")>0 Then s=split(s,"[/REVERT]")(0)
这样如果有引用,则自动抛弃引用部分,而取引用后面的内容;如果有回复,则只保留“REVERT=XXX 于 xxxx年x月x日 回复”中的“XXX回复”,并截掉最后的“/REVERT”(我想一般情况下,按最大输出字符,是到不了最后这部分“/REVERT”,即使评论内容再简洁,不过为了完整表达还是写上去吧,希望加这些不至于影响运算速度)。效果自己去试了看吧,在右边侧栏“最新评论及回复”。
2011年8月10日更新,取消新增变量r(不用再增加dim r,只在s=Replace(s,vbCrlf,"")后添加以下代码:
' 在www.stormcn.cn中去掉评论列表的QUOTE和改造REVERT
If InStr(Ucase(s),"/QUOTE]")>0 Then s=split(s,"[QUOTE=")(0) & split(s,"/QUOTE]")(1)
If InStr(Ucase(s),"REVERT=")>0 Then
If InStr(Ucase(s),"/QUOTE]")>0 Then s=split(s,"[QUOTE=")(0) & split(s,"/QUOTE]")(1)
s=split(s,"REVERT=")(0) & split(s,"REVERT=")(1)
s=split(s," 于 ")(0) & " 回复:" & split(s,"回复]")(1)
s=split(s,"[/REVERT]")(0) & "]"
End If
评论回复形式改为“[XXX 回复:……]”
>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/1020.html