修改Typecho程序解决Gravatar被墙

✤ Dec 07, 2014 ✤

我素来不是辣么暴力的一个人。当Gravatar刚被墙的时候,我只是简单的在主题文件中对Gravatar地址进行了修改。这原本是一件十分简单又美好的事情,我也没有破坏te程序。但紧接着,我后面蛋疼的开始调整新皮、换主题,于是简单而美好的方法让我最终饱受其痛苦,我总是在最后才想起要修改Gravatar地址。

于是,在简洁主义的带领下,我直接对te程序进行了修改( ˘ ³˘)♥,嗯,下面把方法记录于下。


typecho(0.9)
打开 /var/Widget/Abstract/Comments.php
然后搜索$url = $host . '/avatar/'
大概在413行左右的位置,修改如下

//$url = $host . '/avatar/';
$url = 'https://secure.gravatar.com/avatar/';

然后保存离开就OK啦,( •́ .̫ •̀ )

这本该也是一个简单又美好的事情,但是我今天又闲的DT的升级了typecho程序,升级到了typecho1.0(141010)。当我开打comments.php文件,想要再次习惯性的修改那行代码,然后见证奇迹的时候,尼玛发现,我去,那行代码呢,去哪了~然后在熟悉的位置上,我看到了,$url = Typecho_Common::gravatarUrl($this->mail, $size, $rating, $default, $this->request->isSecure()); ,我揍、莫要欺负我读书少,尼玛你把gravatarUrl方法收集到哪里去了!!!

(●´∀`●)不过,哼,鱼唇的中原人啊,像寡人这么天资聪慧、肿么可能找不到,想到这,我用我智慧满满的CPU猜了下文件的位置,哦呵呵呵哈哈哈哈哈哈……


typecho(1.0)
打开 /var/Typecho/Common.php
然后搜索 gravatarUrl
大概在937行左右的位置,找到了gravatarUrl方法,修改如下

//$url = $isSecure ? 'https://secure.gravatar.com' : 'http://www.gravatar.com';
$url = $isSecure ? 'https://secure.gravatar.com' : 'https://secure.gravatar.com';

然后保存离开就可以啦~(๑乛◡乛๑)

最后,原谅我,实在是懒得改了,才用这么暴力的方法解决问题~


typecho(1.2)

在网站源目录/var/Typecho/Common.php文件第826-839行(836行)之间的代码

if (defined('__TYPECHO_GRAVATAR_PREFIX__')) {
    $url = __TYPECHO_GRAVATAR_PREFIX__;
} else {
    #$url = $isSecure ? 'https://secure.gravatar.com' : 'http://www.gravatar.com';
    $url = $isSecure ? 'https://sdn.geekzu.org' : 'https://gravatar.proxy.ustclug.org';
    $url .= '/avatar/';
    }

修改https://secure.gravatar.com为国内第三方镜像源地址,修改/avatar/为镜像源的文件夹,如此操作后台即可正常显示Gravatar头像。


许多教程是改这里,从语句上来看,只要定义了__TYPECHO_GRAVATAR_PREFIX__常量,即可直接跳过,所以只要在根目录的 config.inc.php 加入一句

define('__TYPECHO_GRAVATAR_PREFIX__', 'https://cravatar.cn/avatar/');

可以用的几个CDN地址

https://cravatar.cn/avatar/            [官方国内]    推荐
https://gravatar.loli.net/avatar/      [LOLI云]     推荐

p.s. 最近有点想看看php的书换换口味,有没有好的入门级的php书可推荐的~