2005年9月1日星期四

ZBLOG 1.4 SP1的静态补丁和插件发布

  今天花了些时间将ZBLOG升级到1.4 SP1,静态化补丁也同时升级到SP1,并支持插件方式的运行。

  静态化补丁代码部分的变化还是只修改了c_system_event.asp和c_system_lib.asp两个文件,同时提供的PLUGIN功能新增加两个文件。因此一共是四个文件。

  使用和安装这个补丁很简单,先下载Z-Blog 1.4 SP1正式版,然后下载Z-Blog 1.4 SP1月光静态版补丁,注意此补丁只能在这个版本上使用,不要在其他版本上使用。将补丁里的两个ASP文件覆盖到原版目录下,catbuild目录放到PLUGIN目录下即可。

  一般用户使用下面3个操作就可以安装好静态化补丁:

  1、下载原版Z-Blog 1.4 SP1

  2、下载月光静态化补丁1.4 SP1。将其中2个文件覆盖原版文件。同时安装PLUGIN。

  3、重新进行文件重建操作。

  此时Z-BLOG的目录文件应该被静态化了。

  如果你的ZBLOG是自己修改过的版本,那么可以使用下面的操作手动进行静态化修改。其操作较为复杂,不建议使用。

c_system_event.asp 文件修改:

648行修改为:

strArchives=strArchives & "<li><a href="""& ZC_BLOG_HOST & ZC_STATIC_DIRECTORY & "/" & Year(dtmYM(i)) & "_" & Right("00"&Month(dtmYM(i)),2) &  "." & ZC_STATIC_TYPE & """>" & Year(dtmYM(i)) & " " & ZVA_Month(Month(dtmYM(i))) & " (" & objRS(0) & ")" +"</a></li>"


1643-1646行修改为:

 s=ZC_STATIC_DIRECTORY & "/" &y&"_"&Right("00"&(m-1),2) & "." & ZC_STATIC_TYPE
 t=ZC_STATIC_DIRECTORY & "/" &y&"_"&Right("00"&(m+1),2) & "." & ZC_STATIC_TYPE
 If m=1 Then s=ZC_STATIC_DIRECTORY & "/" &(y-1)&"_12" & "." & ZC_STATIC_TYPE
 If m=12 Then t=ZC_STATIC_DIRECTORY & "/" &(y+1)&"_01" & "." & ZC_STATIC_TYPE

1649行修改为:

 strCalendar=strCalendar & "<p class=""y""><a href="""&ZC_BLOG_HOST &s&""">&lt;&lt;</a>  <a href="""& ZC_BLOG_HOST &ZC_STATIC_DIRECTORY & "/"&y&"_"&right("00"&m,2)& "." & ZC_STATIC_TYPE&""">"&y&"·"&m&"</a>  <a href="""&ZC_BLOG_HOST &t&""">&gt;&gt;</a></p>"


之后属于增加的代码部分:

在1201行前增加一行:
 MakeCatReBuild

在1206行后增加以下代码:

'*********************************************************
' 目的:    All Category ReBuild
'*********************************************************
Function MakeCatReBuild()

 Dim objPage
 Dim objRS
 Dim ArtList
 Dim cate_id,cate_year,cate_month

 '生成分类目录文件开始
 Set objRS=objConn.Execute("SELECT cate_id FROM blog_Category ORDER BY cate_id ")
 While Not objRS.eof
  '取得目录ID
  cate_id=cstr(objRS("cate_id"))
  '生成一个分类目录文件
  Set ArtList=New TArticleList
  ArtList.LoadCache
  ArtList.template="CATALOG"
  If ArtList.ExportByCache(Request.QueryString("page"),cate_id,Request.QueryString("auth"),Request.QueryString("date"),Request.QueryString("tags"),ZC_DISPLAY_MODE_ALL) Then
   ArtList.Build
   ArtList.FileName="cat_" & cate_id
   ArtList.Save
  End If
  Set ArtList=Nothing
  objRS.MoveNext
 Wend
 objRS.Close
 Set objRS=Nothing
 '生成分类目录文件结束

 '生成日期目录文件开始
 Set objRS=objConn.Execute("SELECT year(log_posttime) as cate_year,month(log_posttime) as cate_month FROM blog_Article group by year(log_posttime),month(log_posttime) ")
 While Not objRS.eof
  '取得目录ID
  cate_year=cstr(objRS("cate_year"))
  cate_month=cstr(objRS("cate_month"))
  '生成一个日期目录文件
  Set ArtList=New TArticleList
  ArtList.LoadCache
  ArtList.template="CATALOG"
  If ArtList.ExportByCache(Request.QueryString("page"),Request.QueryString("cate"),Request.QueryString("auth"),cate_year & "-" & cate_month,Request.QueryString("tags"),ZC_DISPLAY_MODE_ALL) Then
   ArtList.Build
   ArtList.FileName=cate_year & "_" & right("00"&cate_month,2)
   ArtList.Save
  End If
  Set ArtList=Nothing
  objRS.MoveNext
 Wend
 objRS.Close
 Set objRS=Nothing
 '生成日期目录文件结束

 MakeCatReBuild=True

End Function
'*********************************************************

c_system_lib.asp修改:

110行修改为:
Url = ZC_BLOG_HOST & ZC_STATIC_DIRECTORY & "/" & "cat_" & ID & "." & ZC_STATIC_TYPE

1346行修改为:
s=ZC_BLOG_HOST & "catalog.asp?"& t &"page=1"

1365行修改为:
s=ZC_BLOG_HOST & "catalog.asp?"& t &"page="& i

1376行修改为:
s=ZC_BLOG_HOST & "catalog.asp?"& t &"page="& intAllPage

如果有不愿意手工修改的,就直接下载下面的文件覆盖就可以了。