月光博客 » 网络日志 » 网站评分插件升级

网站评分插件升级

这两天把原先系统的投票评分插件也一一升级了,升级的过程还算顺利,最终文章和评论都可以评分了,这样,稍后我就可以制作“评分最高的文章”和“评分最高的评论”两个侧栏了,这两个插件升级的过程还算有点复杂,这里记录一下。

原有的文章评分插件,采用的是5分评分,感觉体验不好,用户要思考到底是打从1分还是打5分,考虑太多,这次直接替换为“顶一下”、“踩一下”两种,相当于只用打1分或5分,简单多了。

当然,原有的评分数据不能丢,我这里也做了一个转换,原有评分插件记录了分数值和投票次数两个参数,通过一个公式可以将其转化为顶踩次数。

假设评分数值为R,投票总数为A,顶数值为Y,踩数值为N,已知R和A,计算Y和N,假设原先投票的人都投了1分或5分,则Y=(R-1)*A/4,N=A-Y,就近似计算出了“顶一下”、“踩一下”的数值。

为了不出现小数,新的评分使用百分制,评分数值为R=Y*100/(Y+N+1),评分的机理是,默认系统先投一票反对,然后投赞成数值为100,投反对数值为0,计算平均值,第一个人投赞成票时,按照上面的公式计算出来的数值是50分,而不是100分,这样可以很简单地避免1、2个投票投出高分的票。当投票人数非常多的时候,系统第一次投的票对分值的影响就很小了。

评论投票是在原有的评论投票插件基础上进行修改,使其适应新系统,此外再增加文章投票功能,使得两个投票系统公用一个代码,让系统也简化了许多。

有了文章投票和评论投票,之后就可以按照投票的分值排序,得出用户投票得分最高的文章和评论。

目前,博客的评论已经按照用户投票的方式进行排序,具体排序规则很简单,直接按照(支持数-反对数)排序,因此如果有反对数很多的评论,新发布的评论将会在留言中下部出现,而不是底部。

网站评分插件升级

顶一下 ▲()   踩一下 ▼()

相关文章

发表留言