青青子衿, 悠悠我心, 但为君故, 沉吟至今
« Z-Blog大访问量异常的解决方法纽约小飞机撞楼事故的Google Earth地标文件 »

Z-Blog的RSS优化插件Better Feed

  我开发的这个Z-Blog的Better Feed插件的主要功能是扩展现有Z-Blog生成的Feed的内容。

  开发这个插件的起因很偶然,因为前几天我在网上看到Wordpress的Better Feed插件,非常羡慕这个功能(Wordpress的好用插件可真多啊),于是手开始发痒,也做一个类似的插件,应用到我目前使用的Z-Blog系统上。

  目前主要做的功能是在Feed上增加“相关文章”功能。由于我的Feed是使用全文RSS输出,因此损失了不少Web流量,不过,如果在Feed的功能上进行一些扩展和优化,不但可以有利于读者更全面了解文章内容,还可以弥补损失的流量,做到了双赢。

  首先的功能是根据文章的内容,在Feed底部增加一个“相关文章”的功能,这样有兴趣的读者可以很方便地阅读相关内容的文章。

  其次的功能是在Feed底部增加“发表评论”的链接,这样,如果读者看到这篇文章,并且想要发表自己的意见的时候,可以点这个链接进去留言。(为了方便FeedBurner统计点击数,这个链接我暂时没加,有兴趣的可以自己添加一下)

  再次,做为预留功能,我还可以在Feed里面增加广告功能,显示和内容相关的匹配文字广告。

  因此我相信,实现了这些功能之后,做为全文RSS输出的不少缺点就都解决了,这样,很多人就更愿意使用全文RSS输出,方便读者,也不会对自己造成太大冲击。  

  具体的修改方法是,对于Z-Blog 1.6,打开c_system_event.asp文件,找到Function ExportRSS()函数,如果是全文RSS,就将objArticle.HtmlContent替换为objArticle.HtmlContent+getRelateList(objArticle.ID,objArticle.Tag),如果是摘要输出,则替换objArticle.HtmlIntro。最后,在c_system_event.asp文件尾部加入以下代码即可。

'*********************************************************
' 目的:相关文章的生成,用于优化Feed
'*********************************************************
Function getRelateList(intID,strTag)

If (intID=0) Then Exit Function
If strTag<>"" Then

 Dim strCC_Count,strCC_ID,strCC_Name,strCC_Url,strCC_PostTime,strCC_Title
 Dim strCC
 Dim i
 Dim j
 Dim objRS
 Dim strSQL
 Dim strOutput

 strOutput=""
 Set objRS=Server.CreateObject("ADODB.Recordset")

 strSQL="SELECT top 10  [log_ID],[log_Tag],[log_CateID],[log_Title],[log_Intro],[log_Level],[log_AuthorID],[log_PostTime],[log_Url] FROM [blog_Article] WHERE ([log_Level]>2) AND [log_ID]<>"& intID &" "

 Dim aryTAGs
 If InStr(strTag,"}{") > 0 Then
  aryTAGs = Split(strTag,"}{")
 Else
  ReDim aryTAGs(0)
  aryTAGs(0) = strTag
 End If
 strSQL = strSQL & " AND ("
 For j = 0 To UBound(aryTAGs)
  If Not (IsNull(aryTAGs(j)) Or IsEmpty(aryTAGs(j)) Or aryTAGs(j) = "" Or Len(aryTAGs(j)) < 1) Then
   aryTAGs(j) = Replace(Replace(aryTAGs(j),"}",""),"{","")
   If IsNumeric(aryTAGs(j)) Then
    If j > 0 Then strSQL = strSQL & " OR "
    strSQL = strSQL & "([log_Tag] Like '%{"&aryTAGs(j)&"}%')"
   End If
  End If
 Next
 strSQL = strSQL & ")"
 strSQL = strSQL + " ORDER BY [log_PostTime] DESC "

 Set objRS=Server.CreateObject("ADODB.Recordset")
 objRS.CursorType = adOpenKeyset
 objRS.LockType = adLockReadOnly
 objRS.ActiveConnection=objConn
 objRS.Source=strSQL
 objRS.Open()
 If (not objRS.bof) And (not objRS.eof) Then

   For i=1 To 5 '相关文章数目,可自行设定

    strCC_Count=strCC_Count+1
    strCC_ID=objRS("log_ID")
    strCC_Url=objRS("log_Url")
    strCC_PostTime=objRS("log_PostTime")
    strCC_Title=objRS("log_Title")

    Application.Lock
    strCC=Application(ZC_BLOG_CLSID & "TEMPLATE_ARTICLE_Mutuality")
    Application.UnLock

    If IsNull(strCC_Url) Or IsEmpty(strCC_Url) Or strCC_Url="" Then
    strCC_Url=strCC_ID
    end if

    strCC=Replace(strCC,"<#article/mutuality/id#>",strCC_ID)
    strCC=Replace(strCC,"<#article/mutuality/url#>",ZC_BLOG_HOST & ZC_STATIC_DIRECTORY & "/" & CStr(strCC_Url))
    strCC=Replace(strCC,"<#article/mutuality/posttime#>",strCC_PostTime)
    strCC=Replace(strCC,"<#article/mutuality/name#>",strCC_Title)

    strOutput=strOutput & strCC

  objRS.MoveNext
  If objRS.eof Then Exit For
   Next

 End if

 objRS.Close()
 Set objRS=Nothing

End If

strOutput=Replace(strOutput,vbCrlf,"")
getRelateList="<br/>----<br/><br/>相关文章:<ul>" + strOutput + "</ul>  "

End Function



  除非注明,月光博客文章均为原创,转载请以链接形式标明本文地址

  本文地址:http://www.williamlong.info/archives/658.html
  • 文章排行:
  • 2.飞月
  • !!我试了下!!应该在1.7下可以使用的~因为博主用的就是1.7的!而他实现了这个功能~~但是我试过后却发现只显示“相关文章”这几个字~却没有相关文章出来!不知道月光同学能解释下不?
  • 2007/12/27 20:48:57   支持(7)反对(4) 回复
  • 3.Zx.MYS
  • WilliamLong大哥~BETTERFEED在Z-BLOG 1.7正式版中似乎不太好用了!我这里的调试环境不是很好,能拜托大哥看下么?
  • 2007/2/6 20:08:04   支持(8)反对(8) 回复
  • 4.Zx.MYS
  • Er...在debugger同志的协助下改好了~~~~
  • 2007/2/7 16:13:01   支持(4)反对(4) 回复
  • 9.眼霜排行榜
  • 非常喜欢你的网站,
  • 2011/3/2 21:44:03   支持(6)反对(7) 回复
  • 10.debugger
  • 月光,可不可以说一下:“在Feed底部增加“发表评论”的链接”怎么加?谢谢
  • 2007/1/16 13:19:33   支持(7)反对(9) 回复
  • 11.linker
  • 由rss的默认美化看相关文章,读及此文,不知道是否适用1.7及即将到来的1.8,得上手试下了!
  • 2007/12/10 22:49:52   支持(4)反对(6) 回复
  • 13.网上买书柜
  • 湖湘特色 【木根笔筒《苦尽甘来》】产品采用天然形成的木根笔筒巧妙的跟“珐琅彩”工艺相结合,使产品更加高贵,适合现代人高档审美观,又方便携带符合旅游产品的开发,这种工艺也是传统的突破。
  • 2013/7/11 16:02:36   支持(2)反对(6) 回复
  • 15.Cool
  • 我用的也是1.7的,不知是否适用.
  • 2007/6/26 11:57:23   支持(0)反对(9) 回复

发表评论:

 请勿发送垃圾信息、广告、推广信息或链接,这样的信息将会被直接删除。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 关注新浪微博:关注新浪微博
  • 关注腾讯微博:关注腾讯微博
  • 关注认证空间:关注QQ空间
  • 通过电子邮件订阅
  • 通过QQ邮件订阅

站内搜索

热文排行


月度排行

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享. 转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议.
This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.