登录 注册 VIP特权 提交收录
Search Engine Optimization,不撸代码不修BUG

域名出售:ioee.cn(爱),联系QQ:49613651
应广大客户要求,本站价格上调,别问为什么,没理由~!

主页 » 教程 » 正文

typecho模板实现QQ邮箱识别,并生成头像地址

typecho调用QQ头像,但是不修改任何核心文件。
关于这个功能其实很早就想过,比如在会员中心新增QQ的字段而已,但是我发现这样会不可避免的修改typecho的内核,那就和网上给出的修改内核实现的QQ头像方案相同了,这是绝对不行的。我博客所有的功能都没有改typecho原本程序的任何方法和接口,用来方便内核升级,那么现在调用QQ头像这个功能,肯定也是不能这样做的,所以我想到的方案也简单,那就是对用户的邮箱进行识别,提取出QQ号,但是对非QQ头像的,则显示Gravatar头像库头像。

教程开始:

1.首先,我准备好了两个接口,一个是QQ头像的,一个是Gravatar国内源,它们的调用方式如下。

QQ头像  http://q1.qlogo.cn/g?b=qq&nk=QQ号&s=100
Gravatar头像   http://cdn.v2ex.com/gravatar/md5加密后的邮箱?s=100

以上就是两个头像接口的信息,值得注意的是Gravatar后面的s分辨率参数可以随意定义,而QQ不行,QQ只有几个有限的分辨率,比如100,200,640,其它的数字会报400错误,所以QQ的s参数更像是一种清晰度,宽高还是通过css定义比较好。

2.实现的主要方法,我在模板function.php里面定义,这等于完全舍弃系统的邮箱输出方法。

/** 对邮箱类型判定,并调用QQ头像的实现 */
function isqq($email){
    if($email){
        if(strpos($email,"@qq.com") !==false){
            $email=str_replace('@qq.com','',$email);
            echo "//q1.qlogo.cn/g?b=qq&nk=".$email."&";
        }else{
            $email= md5($email);
            echo "//cdn.v2ex.com/gravatar/".$email."?";
        }
    }else{
    echo "//cdn.v2ex.com/gravatar/null?";
    }
}

上述代码就是通过isqq方法获取邮箱,并且判断是否为qq邮箱,是则截取qq的部分去和qq的接口组合,不是则md5加密该邮箱和gravatar头像库组合,而s的参数则是用户可以自己在模板里面控制的,所以这里省略。

3.调用方式,也就是头像链接在不同模板中的调用方式。

文章列表及内容页作者头像
<?php isqq($this->author->mail); ?>s=100

评论列表用户头像

<?php isqq($comments->mail); ?>s=100

当前登录用户头像

<?php isqq($this->user->mail); ?>s=100

4.后台的调用方式简要说明和实现方法。

具体的方式很简单,在一个全局文件,比如admin/header.php,定义一个头像的字段,直接在这个字段对头像进行处理,代码如下。

<script>
var UserPic="<?php $email =$user->mail; if($email){if(strpos($email,'@qq.com') !==false){$email=str_replace('@qq.com','',$email);echo '//q1.qlogo.cn/g?b=qq&nk='.$email.'&';}else{$email= md5($email);echo '//cdn.v2ex.com/gravatar/'.$email.'?';}}else{echo '//cdn.v2ex.com/gravatar/null?';} ?>";
</script>

得到了字段UserPic就简单了,可以在用户个人设置,或者判断页面是否为个人设置页面之后,找到个人设置页面那个头像的img标签的class,在js里面这样写。

var avatar=getElementsClass("profile-avatar")[0];
avatar.setAttribute("src",UserPic+"s=640");
avatar.style.width="220px";

这样,就可以将原本的图片强制变为处理后的图片,而且宽度和原来的一样是220px。


您的大名:
万水千山总是情,给个打赏行不行。 打赏

标签: typechoQQ邮箱识别头像
! 如链接失效请在下方留言。本站所发布的全部内容源于互联网搬运,仅限于小范围内传播学习和文献参考,请在下载后24小时内删除,如果有侵权之处请第一时间联系我们删除。敬请谅解! E-mail:49613651@qq.com
原创文章,作者:一宇A1xt,如若转载,请注明出处:http://www.a1xt.com/archives/91.html

相关推荐

Typecho简单清爽主题LOVE+

LOVE+主题是SEOGO和@许建华共同推出的,这款主题为LOVE主题的收费升级版,价格29块(没见过这么便宜的typecho主题吧)...

杀死单身狗 | Typecho秀恩爱专用主题 LOVE

主题介绍相爱100件事 这个网站前后经历了熊宝的asp版及木鱼的php版,也因版本原因关闭过一段时间。自本博客使用typecho之后,...

Typecho开启报错提示,方便调试错误

不管出现何种报错,直接在根目录config.inc.php中添加一句define('__TYPECHO_DEBUG__', true);

MbEditor一款Typecho模板编辑器插件

介绍能够让typecho模板编辑界面支持行号,代码高亮,匹配括号,还支持多种皮肤选择为什么要做它?我比较喜欢在typecho的后台直接...

StickyPlus-Typecho文章置顶插件增强版

基于willin kan的版本文章置顶插件拓展功能,因为群友需要在分类页面置顶文章,所以就试着弄了这个功能介绍支持分别在首页页面设置置...

UploadPlugin一款Typecho上传zip包安装删除插件/主题插件

启用后可在菜单“控制台”-“上传”面板内自动安装插件/主题压缩包,或直接删除禁用的插件/主题文件夹,省去FTP等操作。插件要求php支...

Posthelper标签图片批量插入Typecho插件

功能介绍支持一键插入附件中的所有图片支持一键插入所有非图片附件后台编辑文章时增加标签选择列表支持检测文章内容自动插入标签解决全屏状态下...

Titleshow高级版Typecho部分内容加密插件

Titleshow高级版这个高级版能够让文章的加密功能只加密部分文章内容,也是根据网友要求低价定制的,所以插件并不会免费放出,,故改为...


猜你喜欢

Typecho开启报错提示,方便调试错误

typecho调用QQ头像,但是不修改任何核心文件。关于这个功能其实很早就想过,比如在会员中心新增QQ的字段而已,但是我发现这样会不可...


上一篇
下一篇

发表评论