Discuz! X3.* 若用户未传头像,浏览其本人的帖子时头像处显示“求真相”
分类 网站技术/村民张先生 发布于 2015-09-01 10:50
我们可以使用此方法促进用户设置头像。
目标效果:如果用户没有上传头像,当这个用户浏览他自己的话题/回帖时,其头像位置的默认占位头像显示为“求真相”图像,并带有指向修改头像页面的链接。
1、打开 source/function/function_core.php 文件,
查找:
return $returnsrc ? $file : '<img src="'.$file.'" onerror="this.onerror=null;this.src=\''.$ucenterurl.'/images/noavatar_'.$size.'.gif\'" />';
替换为:
if($uid == $_G['uid'] && $size == 'middle') { return $returnsrc ? $file : '<img src="'.$file.'" onerror="this.onerror=null;this.src=\''.$ucenterurl.'/images/noavatar_upload.gif\';document.getElementById(\'avatarlink\').href=\'home.php?mod=spacecp&ac=avatar\'" />'; } else { return $returnsrc ? $file : '<img src="'.$file.'" onerror="this.onerror=null;this.src=\''.$ucenterurl.'/images/noavatar_'.$size.'.gif\'" />'; }
说明:增加一个判断,当要读取的头像是浏览者本人的头像,并且尺寸为中等(帖子页面)时,输入自定义的代码。当头像不存在时,加载UCenter目录下 images/noavatar_upload.gif 图片(自行制作“求真相”图片上传到该位置),同时将 Id 为 avatarlink 的超链接替换为 home.php?mod=spacecp&ac=avatar (原本指向用户空间,在没有上传头像的情况下,替换指向到修改头像页面)。
2、打开当前模板目录下 forum/viewthread_node.htm 文件,
查找:
<div class="avatar"{if !($_G['setting']['threadguestlite'] && !$_G['uid'])} onmouseover="showauthor(this, 'userinfo$post[pid]')"{/If}><a href="home.php?mod=space&uid=$post[authorid]" class="avtm" target="_blank">$post[avatar]</a></div>
替换为:
<div class="avatar"{if !($_G['setting']['threadguestlite'] && !$_G['uid'])} onmouseover="showauthor(this, 'userinfo$post[pid]')"{/If}><a href="home.php?mod=space&uid=$post[authorid]"<!--{if $post[authorid] == $_G[uid]}--> id="avatarlink$post[pid]"<!--{/if}--> class="avtm" target="_blank">{eval echo str_replace('avatarlink','avatarlink'.$post[pid],$post[avatar]);}</a></div>
说明:如果帖子作者是浏览者本人时,我们给头像链接加上一个 id ,以便在无头像时,能够随onerror自动替换指向。我们需要对获取到的头像数据进行一定替换,第一步中生成的头像数据中id全部是 avatarlink ,如果一个页面上该用户有多次回帖,则可能出现错乱和无法全部替换指向,因此要把 avatarlink 加上帖子编号。
3、打开当前模板目录下 forum/viewthread_fastpost.htm 文件,
查找:
<!--{echo avatar($_G['uid'])}-->
替换为:
<a href="forum.php?mod=guide&view=my&type=reply" target="_blank" id="avatarlink"><!--{echo avatar($_G['uid'])}--></a>
说明:给快捷发帖框左侧的头像加上链接。有头像时指向“我的帖子-回帖”页面,无头像时自动被替换为修改头像的链接。
4、上传覆盖,更新缓存。
欢迎谈谈你的看法(无须登录) *正文中请勿包含"http://"否则将被拦截