Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

默认头像能不能搞个性别区分哦?

[复制链接]
ylkj 发表于 2011-4-16 12:03:42 | 显示全部楼层 |阅读模式
默认头像能不能搞个性别区分哦?
bluecoc 发表于 2011-4-16 12:23:18 | 显示全部楼层
这个不错~
回复

使用道具 举报

tnary 发表于 2011-4-16 12:58:05 | 显示全部楼层
第一步
你需要先准备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行

  1. function avatar($uid, $size = 'middle', $returnsrc = FALSE, $real = FALSE, $static = FALSE, $ucenterurl = '') {
  2.         global $_G;
  3.         static $staticavatar;
  4.         if($staticavatar === null) {
  5.                 $staticavatar = $_G['setting']['avatarmethod'];
  6.         }

  7.         $ucenterurl = empty($ucenterurl) ? $_G['setting']['ucenterurl'] : $ucenterurl;
  8.         $size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle';
  9.         $uid = abs(intval($uid));
  10.         if(!$staticavatar && !$static) {
  11.                 return $returnsrc ? $ucenterurl.'/avatar.php?uid='.$uid.'&size='.$size : '<img src="'.$ucenterurl.'/avatar.php?uid='.$uid.'&size='.$size.($real ? '&type=real' : '').'" />';
  12.         } else {
  13.                 $uid = sprintf("%09d", $uid);
  14.                 $dir1 = substr($uid, 0, 3);
  15.                 $dir2 = substr($uid, 3, 2);
  16.                 $dir3 = substr($uid, 5, 2);
  17.                 $file = $ucenterurl.'/data/avatar/'.$dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2).($real ? '_real' : '').'_avatar_'.$size.'.jpg';
  18.                 return $returnsrc ? $file : '<img src="'.$file.'" onerror="this.onerror=null;this.src=\''.$ucenterurl.'/images/noavatar_'.$size.'.gif\'" />';
  19.         }
  20. }
复制代码
替换为

  1. function avatar($uid, $size = 'middle', $returnsrc = FALSE, $real = FALSE, $static = FALSE, $ucenterurl = '') {
  2.         global $_G;
  3.         static $staticavatar;
  4.         if($staticavatar === null) {
  5.                 $staticavatar = $_G['setting']['avatarmethod'];
  6.         }
  7.         $ucenterurl = empty($ucenterurl) ? $_G['setting']['ucenterurl'] : $ucenterurl;
  8.         $size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle';
  9.         $uid = abs(intval($uid));
  10.         $gender = getusergender($uid); /* Add by Fieah(www.12345.la) */
  11.         if(!$staticavatar && !$static) {
  12.                 return $returnsrc ? $ucenterurl.'/avatar.php?uid='.$uid.'&size='.$size : '<img src="'.$ucenterurl.'/avatar.php?uid='.$uid.'&size='.$size.($real ? '&type=real' : '').($gender ? '&gender='.$gender : '').'" />';
  13.         } else {
  14.                 $uid = sprintf("%09d", $uid);
  15.                 $dir1 = substr($uid, 0, 3);
  16.                 $dir2 = substr($uid, 3, 2);
  17.                 $dir3 = substr($uid, 5, 2);
  18.                 $gender = $gender ? '_'.$gender : '';
  19.                 $file = $ucenterurl.'/data/avatar/'.$dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2).($real ? '_real' : '').'_avatar_'.$size.'.jpg';
  20.                 return $returnsrc ? $file : '<img src="'.$file.'" onerror="this.onerror=null;this.src=\''.$ucenterurl.'/images/noavatar_'.$size.''.$gender.'.gif\'" />';
  21.         }
  22. }

  23. /* Created by Fieah(www.12345.la) */
  24. function getusergender($uid) {
  25.         global $_G;
  26.         $data = DB::fetch_first("SELECT gender FROM ".DB::table('common_member_profile')." WHERE uid='$uid'");
  27.         switch($data['gender']) {
  28.                 case 0: $return = ''; break;
  29.                 case 1: $return = 'boy'; break;
  30.                 case 2: $return = 'girl'; break;
  31.         }
  32.         return $return;
  33. }
复制代码

保存覆盖 完成!



Note:
1. 这个方案已经是最优化了 但还是会有点负担 所以请仔细斟酌后再使用
2. 完成后 请到 后台 > 站长 > UCenter设置 > 头像调用方式 设置为使用静态地址调用头像
    这样能一定程度上减少负担和头像载入速度。
    如果你坚持使用动态调用 那么请下载本帖附件 覆盖到你的UCenter目录下即可
3. 如果你喜欢这帖子 请点击右下的转播到微博undefined

使用愉快!~



附件请到原帖地址下载:
http://www.12345.la/viewthread.php?tid=16334&highlight=%D0%D4%B1%F0

内容转自12345LA肥肥。

回复

使用道具 举报

色宅 发表于 2011-4-16 21:19:06 | 显示全部楼层
支持。。。。。。。。。。。。。
回复

使用道具 举报

蛇镜眼是不蛇某 发表于 2011-4-16 22:56:30 | 显示全部楼层
围观藤椅
回复

使用道具 举报

人民生活网 发表于 2011-4-16 23:14:22 | 显示全部楼层
这个不错~
回复

使用道具 举报

洋洋崽崽 发表于 2011-4-17 02:12:34 | 显示全部楼层
这个建议已有人提过了,官方好像也已回复说收集了。不知会在哪个版本主实现
回复

使用道具 举报

 楼主| ylkj 发表于 2011-5-9 23:41:34 | 显示全部楼层
3楼的发的代码是实现了默认头像性别,但是每次显示头像要判断性别,代价太大了,还是不加这个功能。
回复

使用道具 举报

wupeng 发表于 2011-5-10 00:10:25 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-2-24 19:17 , Processed in 0.022681 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表