修正Z-Blog的busfly文章列表插件第二处bug

2009-7-28 2:27:32 | 浏览:
评论数:5

本站在之前的文章中提出了busfly的文章列表插件的一个文章标题字数限制函数的Bug,并进行了修正。近日又发现了一处bug,这个bug出现在最新文章列表部分,我们将在下面的内容中指出bug,并给出修正方法。

在\PLUGIN\busfly_randomsort\目录下的include.asp文件中,函数 busfly_randomsort_BlogReBuild_randomsortnew 中有这么一行代码:

Set busfly_randomsort_objRS1=objConn.Execute("select top " & CStr(busfly_randomsort_NUM_STRNEW) & " [log_ID] from blog_Article WHERE ([log_ID]>0) AND ([log_Level]>2) order by log_ID desc")

 请注意上述代码的红色部分 - 最新文章列表是按照 log_ID 进行降序排列的,大多数情况下这种排序方法不会有问题,不过有一种情况下就会出问题了:例如我们今天写了一篇草稿文章(假如log_ID 为2),但没有在今天就发布。另外,还写了一篇普通文章(log_ID 为3)并且今天就发布了。那么我们明天将草稿文章进行修改整理之后发布,并把时间设置为明天的时间(Z-Blog有这个功能)。如果按照上面的代码,显然在最新文章列表中log_ID 为3的文章将出现在log_ID 为2文章之前,而实际上应该出现在log_ID为2的文章之后。

解决办法:按照发布时间log_PostTime降序进行排序:

Set busfly_randomsort_objRS1=objConn.Execute("select top " & CStr(busfly_randomsort_NUM_STRNEW) & " [log_ID] from blog_Article WHERE ([log_ID]>0) AND ([log_Level]>2) order by [log_PostTime] DESC")

在您决定对include.asp中的相关代码进行修改之前,请注意首先对include.asp进行备份,以免在发现有其他错误时候无法进行恢复。

PS:如果您认为这不算是个Bug,那我只能遗憾地说 -  您不适合做程序员。

  • quote 5.sdffe
  • 我想用Z-BLOG搭建一英语网站,有一栏目是“每日一词”,这栏目我想在每个布面都有出现,请问要如何调用?
  • 2011-5-8 13:42:55 回复该留言
  • quote 3.小农夫
  • 今天第一次来到贵博,实在是心底佩服博主的文采,以后我会常来的。希望有时间也来我的博客指点一下,如何才能写出质量好的文章。
    344 于 2009-11-2 17:38:38 回复
    欢迎常来交流! Grimace
  • 2009-10-31 19:27:34 回复该留言
  • quote 2.sadsad
  • 博客很好,模板很大气,内容也很新,以后会经常到你的空间来看看的,常支持
  • 2009-8-27 9:57:42 回复该留言
  • quote 1.uni800
  • 请问log_ID能整理吗

    我删除了一篇文章 接着新建文章 id号比上一篇文章ID号大两个

    请问能不能将这些缺号的ID整理一下
    344 于 2009-9-8 17:50:55 回复
    没必要整理 ,整理之后还容易造成错误链接(如果不全部重建的话)
  • 2009-8-22 14:43:32 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。