方法一:不更改程序内核
直接将下面的代码复制到模板文件module.php中
<?php //blog-tool:获取Gravatar头像 function myGravatar($email, $s = 40, $d = 'mm', $g = 'g') { $hash = md5($email); $avatar = "http://cn.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g"; return $avatar; } ?>
亦可以使用:$avatar = "http://secure.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g";
而后将module.php中所有的<?php echo getGravatar($comment['mail']); ?>替换为<?php echo myGravatar($comment['mail']); ?>即可。
方法二:将Gravatar的头像缓存到本地
将下面的代码复制到模板文件module.php中:
<?php //Custom:获取模板目录名称 function get_template_name(){ $template_name = str_replace(BLOG_URL,"",TEMPLATE_URL); $template_name = str_replace("content/templates/","",$template_name); $template_name = str_replace("/","",$template_name); return $template_name; } ?> <?php //blog-tool:头像缓存到本地 function myGravatar($email, $s = 40, $d = 'monsterid', $g = 'g'){ $f = md5($email); $a = TEMPLATE_URL.'avatar/'.$f.'.jpg'; $e = EMLOG_ROOT.'/content/templates/'.get_template_name().'/avatar/'.$f.'.jpg'; $t = 1296000;//15天,单位:秒 if (empty($d)){ $d = TEMPLATE_URL.'images/avatar.jpg'; } if(!is_file($e) || (time() - filemtime($e)) > $t ){//当头像不存在或者超过15天才更新 $g = sprintf("http://secure.gravatar.com",(hexdec($f{0})%2)).'/avatar/'.$f.'?s='.$s.'&d='.$d.'&r='.$g; copy($g,$e); $a = $g; } if(filesize($e) < 500){ copy($d,$e); } return $a; } ?>
然后在模板文件夹中新建名为avatar的文件夹,将module.php中的getGravatar替换为MyGravatar。 修改完成后刷新两次网页,查看头像路径为本地路径即设置成功。
方法三:修改位置在/include/lib/function.base.php,找到以下代码
/** * 获取Gravatar头像 * http://en.gravatar.com/site/implement/images/ * @param $email * @param $s size * @param $d default avatar * @param $g */ function getGravatar($email, $s = 40, $d = 'mm', $g = 'g') { $hash = md5($email); $avatar = "http://www.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g"; return $avatar; }
把其中的www.gravatar.com修改为gravatar.duoshuo.com或者cn.gravatar.com或者secure.gravatar.com均可,如果你想让匿名头像显示的其它样式,只需要把$d='mm'里的mm替换成monsterid就可以了。
有朋自远方来...评论一下呗O(∩_∩)O