让emlog的留言板和评论使用本地头像,加速访问,提升美观! 技术文章

本来屌丝们就伤不起,空间还是用的米国的,访问速度本来就快不到哪去,在上gravatar有时候速度非常慢啊,而且设置了头像后还老是显示失败!于是就想了下为我的emlog开个头像缓存,在百度上面找了下发现小松和jun早就发过了,但是和现在的版本还是有一定的差别,我整理了一下就发出来了!


1.打开模板文件夹里面的module.php文件,在里面加上下面这段代码:

<?php
//blog:评论头像
function blog_comments_avatar($email,$size='50',$default='',$alt='avatar'){
if(!$email){
//如果没填写email,直接显示默认头像,填写了email再缓存
$imgurl=BLOG_URL.'avatar/default.jpg';
echo"<img title='{$alt}' alt='{$alt}' src='{$imgurl}' class='avatar avatar-32 photo' height='{$size}' width='{$size}' />";
}else{
$f=md5(strtolower($email));
$w=BLOG_URL;
$a=$w.'avatar/'.$f.'.jpg';
$e=EMLOG_ROOT.'/avatar/'.$f.'.jpg';
//缓存时间,单位是秒,这里是14天
$t=1209600;
if(empty($default)) $default=$w.'avatar/default.jpg';
//超过14天,重新获取头像并缓存
if(!is_file($e)||(time()-filemtime($e))>$t){
$r='X';
$g=sprintf("http://%d.gravatar.com",(hexdec($f{0})%2)).'/avatar/'.$f.'?s=64$d='.$default.'&r='.$r;
@copy($g,$e);$a=$g;
}
if(@filesize($e)<500) @copy($default,$e);
echo"<img title='{$alt}' alt='{$alt}' src='{$a}' class='avatar avatar-32 photo' height='{$size}' width='{$size}' />";
}
}
?>

然后在//blog:博客子评论列  下面找到类似

<img src="<?php echo getGravatar($comment['mail']); ?>" />
这句语句的代码

替换成

<?php blog_comments_avatar($comment['mail'],$size='50',$default='',$alt='') ?>

再将模板中 //widget:最新评论 的话请找到类似下面的语句:

<img src="<?php echo getGravatar($value['mail']); ?>" height="50" width="32"/>
替换成
<?php blog_comments_avatar($value['mail'],$size='50',$default='',$alt='') ?>
代码里面的 $size='50 为头像的高度和宽度可以自己设置,$alt=''为鼠标放在头像上面显示的字,可以自己设置,最后在网站的根目录创建一个名为 avatar 的文件夹并设置权限为可写,然后再上传一张规格大小($size='50 )为你所设置的图片大小,必须是jpg格式的,注意:     不同的模板是有点差异,但是都是大同小异,不懂的可以联系我!改动之前记得备份一下module.php  以防万一!

标签: emlog头像

admin 发布于  2014-8-20 00:00