老张小站

  1. 欢迎光临

    感谢访问老张的博客!

  • 1
4,170

Discuz! X3.* 若用户未传头像,浏览其本人的帖子时头像处显示“求真相”

分类 网站技术/村民张先生 发布于 2015-09-01 10:50
0

我们可以使用此方法促进用户设置头像。

目标效果:如果用户没有上传头像,当这个用户浏览他自己的话题/回帖时,其头像位置的默认占位头像显示为“求真相”图像,并带有指向修改头像页面的链接。

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、上传覆盖,更新缓存。

欢迎转载分享,转载请注明 来源:大张小站 https://www.zhang.cq.cn/20151560.html
若您喜欢这篇文章,欢迎订阅老张小站以获得最新内容。 / 欢迎交流探讨,请发电子邮件至 mail[at]vdazhang.com 。


欢迎谈谈你的看法(无须登录) *正文中请勿包含"http://"否则将被拦截