事先声明一下,Bo-blog其实自带了 Gravatar 头像的功能,不过被限制的位置,只能在评论框里边,不能随意在模版中调用。而模板中又没有 Gravatar 的变量参数之类的。Bo-Blog 不开发已经很多年,貌似现在正在磨的 2.5 今年也没戏了,前一阵子让 Kiyu 帮忙仿了个板子,就是我现在使用的模板啦,这个模板的头像是用 CSS 自定义背景来实现的,我就问 Kiyu 怎么把头像弄成 Gravatar 的啊? Kiyu 说,基本上,这个,很难。据说连鬼火都无能为力。。。。于是,我开始比较烦。

想当年,一个 Hacker Game 我都琢磨了几十个小时,还怕这点东西。

先去论坛问了问,结果无人回答,在我意料之中,BO-BLOG 的 BBS 已经荒废的不成样子了,搜索到以前有人问相同的问题,那帖子都长草了。还有人收费来回答这个问题,被我忽略了。

去 Gravatar 官方网站去寻找答案,知道了 Gravatar 头像的基本格式,知道了如何在 PHP 中调用 Gravatar,有了这点基础就好办了。

直接在模板中写入Gravatar中调用代码,结果,我死活找不到 Email 的变量,又去论坛问,结果,鸟无音信。

没办法,还是看看 Bo-blog 如何调用 Gravatar 头像的吧,看看能不能修改一下。用工具搜索到 Gravatar 在 Bo-blog 中的调用文件原来不是在模版中,而是在一个叫做 boblog_class_run.php 的文件里的。看了半天,没看懂,放弃了。。。。。

今天我突然灵机一闪,终于让我想到了如何随意的使用 Gravatar 了,其实是取巧了!

废话我也不多说了,看方法先,用 Editplus 之类的编辑器打开 boblog_class_run.php

1、大家都知道 bo-blog 中有个 email 的变量,在模板中的显示方式就是一个图标,然后显示游客的 email,这个变量一般我们都用不上,在这里,我将 email 图标的变量改为游客的 gravatar 头像变量。

找到 307 行

if ($eachreply['repemail']) $replieremail="\"Email\"";

改为

if ($eachreply['repemail']) $replieremail=get_gravatar($eachreply['repemail']);

找到 409 行

if ($eachreply['repemail']) $replieremail="\"Email\"";

改为

if ($eachreply['repemail']) $replieremail=get_gravatar($eachreply['repemail']);

2、而这个 email 图标变量在模板 elements.php 中的调用方式就是 {replieremail} ,由于我们将这个变量改成了 Gravatar 的头像变量,我们就得到了访客的头像地址了,让它用图片的方式显示,咱们来加工一下

将这个代码放在你喜欢放的地方,就可以了,后边的 &size=60 是控制头像大小的,默认是 80

基本上你已经可以想把头像仍哪就仍哪了,其实这是经过多次加工后的最简单方法,一开始我只是找到了 email 的变量,就是 mailto 后便的那个变量,让后又在模板中重新写了一个 Gravatar 头像的调用代码,虽然也可以用,但是老麻烦了。后来不知道怎么一瞥,就瞥到了 Bo-blog 的调用头像的方式。结果就被我无耻的拿来用了。

写下自己修改代码的经历,我这个人不懂 php,不懂编程,不精通 HTML,只会在原来的基础上稍稍改动,这次经验让我受益不少。记录一下。