修改Typecho评论调用QQ头像

修改Typecho评论调用QQ头像

Laoyao
2020-08-06 / 1 评论 / 2,174 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年12月23日,已超过860天没有更新,若内容或图片失效,请留言反馈。

方法:

修改Typecho目录下的var/Typecho/common.php,在大约986行,关于获取Gravatar图像的代码找到以下代码:

public static function gravatarUrl($mail, $size, $rating, $default, $isSecure = false)
{
    if (defined('__TYPECHO_GRAVATAR_PREFIX__')) {
        $url = __TYPECHO_GRAVATAR_PREFIX__;
    } else {
        $url = $isSecure ? 'https://secure.gravatar.com' : 'http://www.gravatar.com';
        $url .= '/avatar/';
    }

    if (!empty($mail)) {
        $url .= md5(strtolower(trim($mail)));
    }

    $url .= '?s=' . $size;
    $url .= '&r=' . $rating;
    $url .= '&d=' . $default;

    return $url;
}

替换成:

public static function gravatarUrl($mail, $size, $rating, $default, $isSecure = false)
{
        $reg = "/^\d{5,11}@[qQ][Qq]\.(com)$/";
        if (preg_match($reg, $mail)) {
            $img    = explode("@", $mail);
            $url = "//q2.qlogo.cn/headimg_dl?dst_uin={$img[0]}&spec=100";
        } else {
            if (defined('__TYPECHO_GRAVATAR_PREFIX__')) {
                $url = __TYPECHO_GRAVATAR_PREFIX__;
            } else {
                $url = $isSecure ? 'https://secure.gravatar.com' : 'http://www.gravatar.com';
                $url .= '/avatar/';
            }
            if (!empty($mail)) {
                $url .= md5(strtolower(trim($mail)));
            }
            $url .= '?s=' . $size;
            $url .= '&r=' . $rating;
            $url .= '&d=' . $default;
        }
        return $url;
}

实现的效果:输入QQ邮箱,调用QQ头像;输入普通邮箱,调用Gravatar头像。

Gravatar头像

另外修改了几个系统文件,以后升级typecho(如果还要那么一天)可能还要重新改。

\var\Typecho\Common.php

Line1004行 修改


$url .= '&d=' . $default;为$url .= '&d=retro';

“d”参数代表default,用于Gravatar默认头像类型选择,有以下几个可选值,

[hide]留空显示gravatar官方图形

404直接返回404错误状态

mm神秘人(一个灰白头像)

identicon抽象几何图形

monsterid小怪物

wavatar用不同面孔和背景组合生成的头像

retro八位像素复古头像[/hide]

2

评论

博主关闭了当前页面的评论