还是老规矩: 1. 与具体系统无关, 以便可以方便地移植到其它系统上 2. 在保证功能的基础上尽量不影响服务器性能. 3.尽量少改动模板或源码 4. 用户拿到
插件后尽量不需要改动, 争取做到上传就能用
演示地址: http://blog.wyshen.com/post/197.shtml
用法:
- 下载附件中的压缩文件, 解压到Z-Blog的Plugin文件夹下
- 修改Template文件夹下的模板single.html的</body>标签前插入以下脚本:
<Script language="javascript" type="text/javascript"src="<#ZC_BLOG_HOST#>
LUGIN/Rating/Rating.js"></script> - 修改Template文件夹下的模板b_article-single.html, 在适当位置(我是在TrackBack地址下方)插件以下标签:
<div id="RatingPre"></div>(Zx.MYS说明:最好再在b_article-guestbook.html body里任意位置加一句<div id="RatingPre" style="display:none;"></div>,否则访问留言板会报错。) - 在CSS样式表中加入以下样式:
/*文章投票(打分)开始*/
#Rating {
text-align:left;
border:1px #B0BDC6 solid;
padding:10px;
margin: 0 0 10px 0;
overflow: auto;
_height: 1%;
}
#Star {
background-image: url(../PLUGIN/Rating/star.gif);
height: 30px;
width: 150px;
float: left;
}
#Star-Cur {
background-image: url(../PLUGIN/Rating/star.gif);
background-position: 0px -60px;
width: 0px;
position: absolute;
z-index: 11;
height: 30px;
}
#Star1 {
position: absolute;
z-index: 20;
height: 30px;
width: 30px;
}
#Star2 {
position: absolute;
z-index: 19;
height: 30px;
width: 60px;
}
#Star3 {
position: absolute;
z-index: 18;
height: 30px;
width: 90px;
}
#Star4 {
position: absolute;
z-index: 17;
height: 30px;
width: 120px;
}
#Star5 {
position: absolute;
z-index: 16;
height: 30px;
width: 150px;
}
#Star1:hover, #Star2:hover, #Star3:hover, #Star4:hover, #Star5:hover {
background-image: url(../PLUGIN/Rating/star.gif);
background-position: -30px;
}
#Score {
line-height: 30px;
text-align: center;
float: left;
width: 250px;
}
#Rating-show{ /*文章得分及投票次数*/
}
Rating-now{ /*正在投票,请稍候*/
color: #FF0000;
}
#Rating-Tanks { /*投票成功,感谢您的投票*/
color:Green;
font-weight: bold;
}
#Rating-already{ /*已投过票*/
color:red;
font-weight: bold;
}
#Rating-err{ /*遇到错误*/
color:red;
font-weight: bold;
}
/*文章投票(打分)结束*/
说明:
- 以上样式表中红色部分(星级图片的地址)可能需要手工改一下(本想把这个地址也写成自动的, 但如果写进脚本的话以后再改成别的样式会比较麻烦, 考虑之后决定还是写进了样式表)
- "
LUGIN/Rating/"这个文件夹要有写权限 - 考虑到大多数人的Blog都是显示多,评分很少, 所以用了文件缓存, 只有评分时才需要读写数据库, 其它时候不需要从数据库读取数据.
- 投票的脚本Rating.js最好是加到</body>标签之前, 不要加到页面的头部. 如果网速慢或客户端浏览器是多线程的, 把脚本放到页头的话, 可能会造成显示不正常, 但放在页面尾部则不会有问题.
- 因为最近心情一直不好, 所以偷了点懒, 省了点功能, 具体就不说了 (^_^)
http://blog.wyshen.com/post/197.shtml
Bug修正:
V1.1 2007年5月23日
改正了一个缓存生成不正确的错误
【感谢
Yczhang hakkawawa angelwing等朋友发现本Bug】
V1.2 2007年5月24日
Bug修正, 解决了当文章ID为100的整数倍时投票显示不正确的问题.
【感谢 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, 有必要的话再增加这个功能吧.
[
本帖最后由 Zx.MYS 于 2007-9-20 18:00 编辑 ]