May18Z-Blog插件:文章投票(打分)
May
18
2007-5-18 10:50:16
| 分类:[我的作品] | 引用:0 | 评论:20 | 浏览:
本来这个插件应该是上个周末就应该写出来的, 但最近一直忙着跑调动的事, 每天只有睡觉前一两个小时时间写代码, 所以进度非常缓慢, 到昨天晚上才写完.
还是老规矩: 1. 与具体系统无关, 以便可以方便地移植到其它系统上 2. 在保证功能的基础上尽量不影响服务器性能. 3.尽量少改动模板或源码 4. 用户拿到插件后尽量不需要改动, 争取做到上传就能用
用法:
- 下载附件中的压缩文件, 解压到Z-Blog的Plugin文件夹下
- 修改Template文件夹下的模板single.html的</body>标签前插入以下脚本:
<Script language="javascript" type="text/javascript" src="<#ZC_BLOG_HOST#>PLUGIN/Rating/Rating.js"></script> - 修改Template文件夹下的模板b_article-single.html, 在适当位置(我是在TrackBack地址下方)插件以下标签:
<div id="RatingPre"></div> - 在CSS样式表中加入以下样式:
说明:
- 以上样式表中红色部分(星级图片的地址)可能需要手工改一下(本想把这个地址也写成自动的, 但如果写进脚本的话以后再改成别的样式会比较麻烦, 考虑之后决定还是写进了样式表)
- "PLUGIN/Rating/"这个文件夹要有写权限
- 考虑到大多数人的Blog都是显示多,评分很少, 所以用了文件缓存, 只有评分时才需要读写数据库, 其它时候不需要从数据库读取数据.
- 因为最近心情一直不好, 所以偷了点懒, 省了点功能, 具体就不说了 (^_^)
版本变更:
V1.1 2007年5月23日
由于编码时的疏忽, 造成了投票统计的不准确, 现已更正.
新用户直接下载安装即可, 已经在使用本插件的用户只需要用新下载的压缩包中的Rating.asp替换掉Blog中正在使用的即可. 老用户上传后随便在一篇文章中投一票, 插件就可以把投票统计的缓存刷新了.
【感谢Yczhang hakkawawa angelwing等朋友发现本Bug】
V1.2 2007年5月24日
Bug修正, 解决了当文章ID为100的整数倍时投票显示不正确的问题.
正在使用插件的用户请把压缩包中的Rating.asp Rating.js两个文件上传到插件目录, 上传后随意在一篇文章中投一票就可以刷新投票缓存.
【感谢 ly 发现本Bug】
V1.3 2007年5月28日
改进了Blog ID的获取方式, 使用了别名的文章也可以正常投票了.
【感谢 angelwing 提出修改建议】
V1.4 2007年6月1日
改进: 锁定文章自动停用评分功能, 不显示当前分数, 也不允许评分.
【感谢 Angelwing 提出本建议】
升级方法:
正在使用插件的用户请把压缩包中的Rating.asp Rating.js两个文件上传到插件目录, 上传后随意在一篇文章中投一票就可以刷新投票缓存.
关于投票脚本的防范:
月光博客的读者实在是多, 月光刚推出本插件的修改版, 就有人写了本插件的投票脚本. 虽然可以在服务器端做检测的话可以防止这种恶意投票, 但这就需要加大服务器端系统资源的占用量了. 再者说来, 我相信写投票脚本的朋友其实是没有恶意的, 只是觉得好玩而已. 所以也就不必刻意地去防范.
这里给出一个简单的修改, 可以防止通用的投票脚本:
打开Rating.js这个文件, 把Rating(指替换为任意字母组合+(就可以了, 如:abcdde(.
这种办法只是防止在别人网站上投票的脚本拿到你的网站上直接用而已, 如果想彻底防的话需要改Rating.asp, 有必要的话再增加这个功能吧.
插件下载: Rating.rar
. 虽然可以在服务器端做检测的话可以防止这种恶意投票, 但这就需要加大服务器端系统资源的占用量了. 再者说来, 我相信写投票脚本的朋友其实是没有恶意的, 只是觉得好玩而已. 所以也就不必刻意地去防范.