当前位置:首页 » Emlog教程 » [Emlog教程]Gravatar头像被墙的解决方法

[Emlog教程]Gravatar头像被墙的解决方法

方法一:如何你不想改程序内核,建议你使用以下代码,直接将下面的代码复制到模板文件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;
}?>
将module.php中所有的getGravatar替换为myGravatar。
方法二:将多说的头像缓存到本地 将下面的代码复制到模板文件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:获取Gravatar头像并缓存到本地
function MyGravatar($email, $s=40, $d='monsterid', $r='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 = BLOG_URL.'avatar/default.jpg';
    if (!is_file($e) || (time() - filemtime($e)) > $t ) {
        //当头像不存在或者超过15天才更新
        $g = sprintf("http://gravatar.duoshuo.com",(hexdec($f{0})%2)).'/avatar/'.$f.'?s=48&d='.$d.'&r='.$r;
        copy($g,$e); $a=$g; //新头像copy时, 取gravatar显示
    }
    if (filesize($e) < 500) copy($d,$e);
    return $a;
}
?>
在模板文件夹新建名为avatar的文件夹,将module.php中的getGravatar替换为MyGravatar。 修改完成后刷新两次网页,查看头像路径为本地路径即设置成功。
如gravatar网站恢复正常,不需使用上述功能时,删除上述代码,将MyGravatar或者DuoshuoGravatar替换为原来的getGravatar即可。
本教程由 冷猫 发布于em论坛,舍力测试5.3.1正常使用

修改位置在/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;
}
其实有两种方法
1.把其中的红色字体修改为 多说的缓存   http://gravatar.duoshuo.com/avatar/$hash?s=$s&d=$d&r=$g
2.把其中的红色字体修改为 国内Gravatar头像   http://cn.gravatar.com/avatar/$hash?s=$s&d=$d&r=$g
亲测两种方法都是可行的,据说多说的缓存访问速度更快
End
关键词: emlog Gravatar
温馨提示:如果您对本文有疑问,请在本页留言即可!!!
觉得很赞 (0)付款方式
X
付款方式:
  • 微信
  • 支付宝
  • QQ红包

使用微信扫一扫
blogger
    发布日期:2014-11-18   所属类别:Emlog教程   浏览:9076次   评论:12次
    本文地址:https://www.shuyong.net/iemlog/521.html [ 百度已收录 ]
    声明:本页信息由网友自行发布或来源于网络,真实性、合法性由发布人负责,请仔细甄别!本站只为传递信息,我们不做任何双方证明,也不承担任何法律责任。文章内容若侵犯你的权益,请联系本站删除!

留言/评论:◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

填写好QQ号码,任点空白处自动获取

昵称

邮箱

网址

7楼、yoyo. [回复该留言]
2021-02-26 10:49
【网址屏蔽】ㄒ)
舍力(博主) [回复该留言]
2021-02-26 11:49
@yoyo.:这个就没办法了
舍力(博主) [回复该留言]
2021-02-26 12:18
@yoyo.:用QQ头像把,$avatar = "https://q1.qlogo.cn/g?b=qq&nk=$email&s=$s";
6楼、厦门维护网 [回复该留言]
2017-12-20 14:41
舍力,你好,原来我的网站有跟你互换过友情链接,现我的 厦门维护网 【网址屏蔽】 跟你互换一下友情链接!你的我已经添加好了!
舍力(博主) [回复该留言]
2017-12-21 08:52
@厦门维护网:已加
5楼、起点终站 [回复该留言]
2016-08-05 19:33
多说头像缓存貌似不能用了。。是不是api换了
4楼、极客卡盟 [回复该留言]
2016-05-09 01:52
还是没有弄懂,没有发现这些代码
舍力(博主) [回复该留言]
2016-05-10 10:06
@极客卡盟:请用默认模版测试。
3楼、兰州SEO [回复该留言]
2015-11-04 15:34
我又来支持啦,哈哈哈,感谢舍力大神的分享
2楼、冷夜 [回复该留言]
2015-11-02 19:08
感谢分享
1楼、知道91博客 [回复该留言]
2014-11-20 00:24
不知道Wordpress有没有这个问题呢
舍力(博主) [回复该留言]
2014-11-20 08:40
@知道91博客:全部被墙了

个人资料

舍力

博主:舍力

Emlog交流群

    用心做好每一件事!!!

博客统计

  • 文章数量:1132篇
  • 文章评论:3510条
  • 总访问量:9378834次
  • 微语数量:81条
  • 在线人数:1人
  • 本站运行:10年7月4天
  • 估计博主很忙,已经很久没更新了!
Q2 虚位以待
Copyright © 2024 舍力博客 版权所有   粤ICP备11021420号
基于宝塔面板,数据存储于阿里云ECS
Powered by emlog / &Author 舍力博客.