最近因为博客二次改建工程需要羽中再次操起php三把刀,成功将两个实用功能加进typecho:读者墙和Gravatar头像缓存。这款插件被荣誉命名为阿凡达们,谁让这词的意思就是网络头像呢~;)

猛击图片下载
(10.3KB, 2010-03-02)

avatars_plugin.jpg

读者墙相信大家都比较熟悉,就是在博客模版通常是侧边栏位置中显示一个以评论者头像组成的榜单,按月内评论数进行排列。这是一个非常好的鼓励评论参与的方式,尤其是在博客圈子内,头像入榜不仅是对评论者参与的肯定,头像链接评论者博客也是很好的回馈,由读者Gravatar头像组成的方阵鲜艳美观,彰显博客的人气和魅力!

readers_wall.jpg

Avatars插件读者墙功能参考了万戈的Wordpress免插件版侧边栏读者墙,结合typecho数据库类方法进行移植。
激活插件后只需在模版中合适的位置插入<?php Avatars_Plugin::output(); ?>即可显示读者墙。默认按尺寸40评级X显示10张头像,直接调用Gravatar地址,可自定义缺省头像地址(附送阿凡达蓝脑袋~)。

avatars_settings.jpg

未指定两项自定义参数时,默认循环输出的标签是<li class="mostactive"><img...,大家可以参考我的样式在style.css文件中添加

.mostactive {
float:left;
margin:2px;
}
.mostactive img {
background:#191919;
border:1px solid #0C0C0C;
padding:2px;
}
来控制和调整读者墙的样式效果以适合自己的模版。当然也可以根据需要指定输出参数,如<?php Avatars_Plugin::output('div','readers'); ?>这样循环输出的标签就是<div class="readers"><img...
读者墙会实时显示过去30天内的评论者排行,鼠标移至头像上可提示评论者名称和其本月评论数,效果见本博内容页侧边栏。

Avatars插件的另一个功能就是集成了经典的Gravatar头像缓存程序 Generic Gravatar Cache(以下简称GGC)。该程序可以在初次访问时一次性下载所需Gravatar头像至缓存文件夹,再次接到访问请求时直接调用本地头像,从而达到加速显示防范出现Gravatar服务器访问问题的效果。
尽管目前Gravatar服务在国内访问速度不错,未出现被墙的情况,但防患措施还是必要的,何况对于读者墙这类的集中调用头像的功能,开启缓存提速是个不错的选择。

avatars_cache.jpg

GGC使用独立的头像配置文件,请用Editplus或Dreamweaver等编辑器打开profile/avatar.php文件设定尺寸、评级和缺省这三项,开启后缓存头像会自动生成在cache/avatar/目录下。
GGC的强大在于其可以针对不同的头像显示要求启用多个缓存配置,如:在profile/目录下新建readers.php作为读者墙的配置,在“为读者墙使用独立缓存配置”一项填入readers保存,这样读者墙头像的缓存就会自动生成在cache/readers/目录下。avatar.php则可以作为评论区头像的配置,在cache/avatar/目录下生成评论区头像缓存 (评论区调用方法见插件内说明)。
GGC还可以实现定期刷新缓存,自建缺省头像缓存等功能,更多的使用方法可以参考Shawn这篇如何缓存 Gravatar 至本地服务器和GGC的英文官方文档


【安装方法】


将解压后的Avatars文件夹上传到主机typecho文件夹里的usr文件夹里的plugins文件夹那里。。到插件页面点激活OK~


【常见问题】


为什么我的读者墙头像是竖排显示的?
为默认输出标签li设置横排样式,一般写上float:left即可,如果有错位可以用clear:both修正;或者把输出标签参数改为span,div这种横排标签。

为什么开启缓存后我的读者墙头像不见了?
GGC需要mod_rewrite支持, Windows主机下可能无法使用缓存功能;Linux主机使用子目录地址安装的博客如http://test.com/test/请修改插件目录下的.htaccess文件,在/usr/plugins/Avatars /index.php前添加子目录,如/test/usr/plugins/Avatars/index.php即可。

新版评论模版中找不到<?php $comments->gravatar(32, 'X', '', 'avatar'); ?>怎么使用头像缓存?
Typecho 0.8版本开始优化了评论模版结构,不再直接包含头像函数,方法是在评论模版中添加一段自定义函数:以默认主题为例,打开模版的comments.php文件,在第10行的<?php $comments->listComments(); ?>上方插入一段:

<?php
function threadedComments($comments, $before, $after) {
//这里把0.7评论模版中第一段大括号中的内容照搬来,其中头像函数那句换成缓存地址即可
}
?>
如插件中的说明旧版本需要替换两段,而0.8后的版本就只需这样添加一段了。


【更新记录】


1.1.0版本
优化查询语句,实时显示30天内评论者排行;
链接可设置nofollow属性;
解决SQLite数据库支持问题;
修正设置界面样式。

1.0.0版本
实现读者墙基本功能,显示当月评论者排行;
集成Generic Gravatar Cache实现全站头像缓存支持。

欢迎typecho用户在这里留言提出你的使用问题或改进建议:)