实现Emlog评论Gravatar头像缓存功能

实现Emlog评论Gravatar头像缓存功能

ZJ
ZJ
2019-12-17 / 0 评论 / 262 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2019年12月17日,已超过1590天没有更新,若内容或图片失效,请留言反馈。

安装目录下面建立avatar文件夹,设置其权限为可写 (777)。

修改 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;
}

更改为以下代码:

//获取Gravatar头像
function getGravatar($email, $s=40, $d='monsterid', $r='g') { 
     $f = md5($email); 
     $a = BLOG_URL.'avatar/'.$f.'.jpg'; 
     $e = EMLOG_ROOT.'/avatar/'.$f.'.jpg'; 
     $t = 1296000; //15天,单位:秒 
     if (empty($d))  $d = BLOG_URL.'avatar/default.jpg'; 
     if (!is_file($e) || (time() - filemtime($e)) > $t ) {
              //当头像不存在或者超过15天才更新
              $g = sprintf("http://cn.gravatar.com",(hexdec($f{0})%2)).'/avatar/'.$f.'?s=40&d='.$d.'&r='.$r; 
               copy($g,$e); $a=$g; //新头像copy时, 取gravatar显示 
              } 
             if (filesize($e) < 500) copy($d,$e); 
            return $a; 
 }

对于没有设置头像的邮箱,默认显示的头像如下:
$d='mm'    -  神秘人  (灰色头像)
$d='monsterid'  -  小怪物  (自动生成)
$d='identicon' -  抽象图形 (自动生成)
$d='wavatar'  -  W-avatar (自动生成)
$d='非空格符'   -  Gravatar  (大写 “G”)
注意:$d 数据中的四个关键字只能是小写,不然会被视为其它的非空格符;另外,$d 的数据中也不能出现空格符,否则该函数将不能正常调用。

本文共 173 个字数,平均阅读时长 ≈ 1分钟
0

评论 (0)

取消