第一步
你需要先准备6张图片作为默认的男女头像 分别命名为
男生头像(noavatar_big_boy.gif, noavatar_middle_boy.gif, noavatar_small_boy.gif)
女生头像(noavatar_big_girl.gif, noavatar_middle_girl.gif, noavatar_small_girl.gif)
尺寸分别为 大(250 x 250) 中(120 x 120) 小(48 x 48)
然后上传到你的UCenter目录下的images下。
第二步
使用你的编辑器打开
source/function/function_core.php
找到 大约在335行
- function avatar($uid, $size = 'middle', $returnsrc = FALSE, $real = FALSE, $static = FALSE, $ucenterurl = '') {
- global $_G;
- static $staticavatar;
- if($staticavatar === null) {
- $staticavatar = $_G['setting']['avatarmethod'];
- }
- $ucenterurl = empty($ucenterurl) ? $_G['setting']['ucenterurl'] : $ucenterurl;
- $size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle';
- $uid = abs(intval($uid));
- if(!$staticavatar && !$static) {
- return $returnsrc ? $ucenterurl.'/avatar.php?uid='.$uid.'&size='.$size : '<img src="'.$ucenterurl.'/avatar.php?uid='.$uid.'&size='.$size.($real ? '&type=real' : '').'" />';
- } else {
- $uid = sprintf("%09d", $uid);
- $dir1 = substr($uid, 0, 3);
- $dir2 = substr($uid, 3, 2);
- $dir3 = substr($uid, 5, 2);
- $file = $ucenterurl.'/data/avatar/'.$dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2).($real ? '_real' : '').'_avatar_'.$size.'.jpg';
- return $returnsrc ? $file : '<img src="'.$file.'" onerror="this.onerror=null;this.src=\''.$ucenterurl.'/images/noavatar_'.$size.'.gif\'" />';
- }
- }
复制代码 替换为
- function avatar($uid, $size = 'middle', $returnsrc = FALSE, $real = FALSE, $static = FALSE, $ucenterurl = '') {
- global $_G;
- static $staticavatar;
- if($staticavatar === null) {
- $staticavatar = $_G['setting']['avatarmethod'];
- }
- $ucenterurl = empty($ucenterurl) ? $_G['setting']['ucenterurl'] : $ucenterurl;
- $size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle';
- $uid = abs(intval($uid));
- $gender = getusergender($uid); /* Add by Fieah(www.12345.la) */
- if(!$staticavatar && !$static) {
- return $returnsrc ? $ucenterurl.'/avatar.php?uid='.$uid.'&size='.$size : '<img src="'.$ucenterurl.'/avatar.php?uid='.$uid.'&size='.$size.($real ? '&type=real' : '').($gender ? '&gender='.$gender : '').'" />';
- } else {
- $uid = sprintf("%09d", $uid);
- $dir1 = substr($uid, 0, 3);
- $dir2 = substr($uid, 3, 2);
- $dir3 = substr($uid, 5, 2);
- $gender = $gender ? '_'.$gender : '';
- $file = $ucenterurl.'/data/avatar/'.$dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2).($real ? '_real' : '').'_avatar_'.$size.'.jpg';
- return $returnsrc ? $file : '<img src="'.$file.'" onerror="this.onerror=null;this.src=\''.$ucenterurl.'/images/noavatar_'.$size.''.$gender.'.gif\'" />';
- }
- }
- /* Created by Fieah(www.12345.la) */
- function getusergender($uid) {
- global $_G;
- $data = DB::fetch_first("SELECT gender FROM ".DB::table('common_member_profile')." WHERE uid='$uid'");
- switch($data['gender']) {
- case 0: $return = ''; break;
- case 1: $return = 'boy'; break;
- case 2: $return = 'girl'; break;
- }
- return $return;
- }
复制代码
保存覆盖 完成!
Note:
1. 这个方案已经是最优化了 但还是会有点负担 所以请仔细斟酌后再使用
2. 完成后 请到 后台 > 站长 > UCenter设置 > 头像调用方式 设置为使用静态地址调用头像
这样能一定程度上减少负担和头像载入速度。
如果你坚持使用动态调用 那么请下载本帖附件 覆盖到你的UCenter目录下即可
3. 如果你喜欢这帖子 请点击右下的转播到微博undefined
使用愉快!~
附件请到原帖地址下载:
http://www.12345.la/viewthread.php?tid=16334&highlight=%D0%D4%B1%F0
内容转自12345LA肥肥。
|