emlog使用qq头像作为评论头像并缓存到本地

emlog使用qq头像作为评论头像并缓存到本地

EMLOGking2017-12-106:47:16886A+A-

本次教程由蓝优网整理发布:

先判断该条评论是否填写了邮箱,未填写则使用默认;若填写了,再判断其中是否含有“@qq.com”;然后去除“@qq.com”并判断余下的部分是否为qq号,是则获取相应的头像并缓存下来,否则使用Gravatar头像。


本代码依托于emer大神些的“get_template_name()”和“myGravatar()”函数。
以默认模板为例,打开module.php,找到functionblog_comments($comments),在其之前添加函数:

<?php//Custom:获取模板目录名称functionget_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:头像缓存到本地functionmyGravatar($email,$s=40,$d='monsterid',$g='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=TEMPLATE_URL.'images/avatar.jpg';}if(!is_file($e)||(time()-filemtime($e))>$t){//当头像不存在或者超过15天才更新$g=sprintf("http://secure.gravatar.com",(hexdec($f{0})%2)).'/avatar/'.$f.'?s='.$s.'&d='.$d.'&r='.$g;copy($g,$e);$a=$g;}if(filesize($e)<500){copy($d,$e);}return$a;}?><?php//blog-tool:获取qq头像并缓存到本地functioneflyGravatar($email,$s=40){if(empty($email)){$eflyGravatar=TEMPLATE_URL.'images/avatar.jpg';}elseif(strpos($email,'@qq.com')){$qq=str_replace("@qq.com","",$email);if(is_numeric($qq)&&strlen($qq)>4&&strlen($qq)<13){$f=md5($qq);$a=TEMPLATE_URL.'avatar/'.$f.'.jpg';$e=EMLOG_ROOT.'/content/templates/'.get_template_name().'/avatar/'.$f.'.jpg';$t=1296000;if(empty($d)){$d=TEMPLATE_URL.'images/avatar.jpg';}if(!is_file($e)||(time()-filemtime($e))>$t){$g=sprintf("http://q.qlogo.cn").'/headimg_dl?dst_uin='.$qq.'&spec='.$s;copy($g,$e);$a=$g;}if(filesize($e)<500){copy($d,$e);}$eflyGravatar=$a;}else{$eflyGravatar=myGravatar($email);}}else{$eflyGravatar=myGravatar($email);}return$eflyGravatar;}?>
然后将原来的<?phpechogetGravatar($comment['mail']);?>改为<?phpechoeflyGravatar($comment['mail']);?>
相应的,子评论函数“functionblog_comments_children($comments,$children)”中也做上述改动。
然后在你当前模板文件夹下新建一个"avatar"空文件夹用于放置缓存下来的头像,在当前模板文件夹下的images文件夹中放一个“avatar.jpg”文件用作未填写邮箱时的默认头像。
注:其中的“eflyGravatar”函数为本功能核心函数,且其依托于其上面的两个函数。当然,直接使用

<?phpechomyGravatar($comment['mail']);?>这个函数也行,也能将头像缓存到本地,但是用不了qq头像的哦!

点击这里复制本文地址以上内容由蒙文软件大全整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

支持Ctrl+Enter提交

蒙文软件大全© All Rights Reserved.  蒙文软件大全 Copyright ©2018 蒙ICP备13001995号-4
PoweredbyZ-BlogPHPThemesby蒙古文软件
联系我们|关于注册|留言建议|管理|

本站会员尊享VIP特权,现在就加入我们吧!登录注册×
»
会员登录
新用户注册
×
会员注册
获取邀请码
已有账号登录
×