今天将“Z-Blog随机文章和文章排行插件”新增加了一个功能,就是结合“Z-Blog文章投票插件”的数据库,产生了一个新的随机排行:用户推荐文章排行。
这个排行的算法比较简单,根据“Z-Blog文章投票插件”中用户投票的结果,当用户投票总数超过10次的时候,文章即可加入用户排行,排行按照用户投票的分数由高向低显示,我目前使用这个文章排行替换原来的随机文章的内容,因为这个排行对于新用户来说,还是有一定的价值的。
这个文章排行的列表是完全由用户自己决定的,如果用户觉得哪篇文章不好看却排在前面,可以用投票的方式将文章“选”下去,如果你发现更好的文章,也可以将文章“投”上来,不过如果投票用户特别多的话,那么选下去或者选上来就比较困难了。文章显示的先后顺序按照我先前写的Z-Blog热文排行的算法,根据文章浏览次数,评论次数,引用次数以及文章的日期来排序。
下面是这个插件的相关代码,将这些代码加入到“Z-Blog随机文章和文章排行插件”中去,然后再增加一行“txtout = Replace(txtout, "<!--用户推荐-->", strtoprate)”,然后修改模板增加“<!--用户推荐-->”即可。显示效果参见我文章下面的“文章排行”栏目。
'用户推荐排行 connstr2="DBQ=c:\inetpub\wwwroot\PLUGIN\Rating\Rating.mdb;DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" set conn2=server.createobject("ADODB.CONNECTION") conn2.open connstr2 strSql = "select top 10 id from Score WHERE (Rnumber>=10) ORDER BY Score desc" rs.Open strSql, conn2, 1, 1 strtopid = " " While Not rs.EOF strtopid = strtopid & "log_ID=" & cstr(rs("id")) & " or " rs.movenext Wend rs.Close set conn2 = Nothing strtopid = left (strtopid,len(strtopid)-4) '去掉尾部 strSql = "select top 10 log_ID,log_Title from blog_Article WHERE " & strtopid & " ORDER BY log_CommNums*100 + log_TrackBackNums*200 + sqr(log_ViewNums)*10 - (date()-Log_PostTime)*(date()-Log_PostTime) DESC " '热文排行算法 rs.Open strSql, conn, 1, 1 strtoprate = " " While Not rs.EOF strtoprate = strtoprate & "
顶一下 ▲() 踩一下 ▼()