[并没管住] 双管齐下:Typecho 调用 QQ 头像

Author Avatar
MonsterX 2018年12月22日发布 | 02月16日最后更新
  • 在其它设备中阅读本文章

近来看到很多站点的评论都可以在用户输入 QQ 邮箱时自动获取其 QQ 头像来替代默认的 Gravatar 头像,这样方便了很多没有时间自定义 Gravatar 头像的人,我觉得很有意义。在逛 Typecho 官方社区的机缘巧合下看到博客 @侥の blog 给出了这样的代码,巧的是这篇博文也是转载的,我说怎么回事文章下面疑似版权模块的地方链接给的却不是自己页面的网址,原帖在 @宸轩云 Typecho 评论调用 QQ 头像 。现收藏于此。

操作:

Typecho 目录下 var/Typecho/common.php ,932 行,关于获取 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 头像

后续:

看到网友建议,直接修改 Typecho 源码并不是一个很好的方法,这里还有另外两种方法

  • 添加主题函数实现
  • 将评论区“邮箱”项定义为“QQ”,后台处理使提交数据为“ $QQ @qq.com”并获取 QQ 头像

 

 

目前期末突击,过阵子填坑。谢谢持续关注。 放假就要来填坑惹...
但是我好菜啊,看了各路巨佬的文章还是只能给点思路的样子,代码整不出来…烦…待更… 在尝试…2019.2.1 已被降低优先级 ,可能最近一段时间都不会更新了,说声抱歉。)

 

 

法②:添加主题函数

本来还在在想找 Handsome 主题里现成的函数... 哎... 这么一 Ctrl + CCtrl + V 两把梭就完事儿了的。结果找了十年,也没发现这个函数究竟在哪。。。怪我太菜了,又没有视力。。。
好吧,现成的找不到的话那就自己梭呗,反正上面原理全都写出来了的。 尝试在主题 function.php 结尾添加上面代码 你还是太年轻啊,这么简单的话还要改 Typecho 代码干嘛。。。咳咳,此处就需要一点能力了。如果是默认主题的话需要自定义评论模块,相当麻烦。所以有了下面这个方法,可以类推到自己的主题上。

假装法③:代码扣一扣,邮箱变 QQ

这个方法是 2018 年 12 月左右逛 Typecho 官方社区时在秀博客主题的分区发现的,发现这个站长很爽快地直接将填写邮箱的地方用 QQ 替换了,但是,众所周知,Typecho 后台对评论区提交的数据处理时肯定会按照这个框框提交的内容检测留言者邮箱,然后记录在数据库中的。所以我想知道站长对这个 input 框进行了怎样的处理呢?于是我看到了站内的两篇文章 《Typecho 自带评论功能 Gravatar 头像改 QQ 头像》《Typecho 自带评论改 QQ 头像 第二波》 在博主的指导下我写了这篇更加易懂(笑出声... 我的意思是直接上梭子改代码就好了)的教程 如果本文效果实在太烂您可以点击链接再参考一下原帖。下面请看操作:

待更新...

本文链接:https://monsterx.cn/it/Gravatar-to-QQ.html
本站文章除特殊说明外全部由 MonsterX 原创发布,未经允许禁止以任何形式转载。
如果您发现以上内容含有任何引起不适/侵犯权利/违反法律的内容,请立即 联系站长 进行处理。

选择表情


    Lesun
    Lesun  2019-04-03, 12:13

    虽然尝试了很多次想加这个代码,但是一直不成功,还是技术不够 8.png

      MonsterX
      MonsterX  2019-04-04, 09:20

      那我+1哈哈哈哈哈

    心
    心  2019-01-04, 15:04

    来看看是不是能获取QQ头像啊

    小怪兽
    小怪兽  2019-01-04, 14:44

    来看看是不是能获取QQ头像啊