用户头像由变量 $_G['member']['avatarstatus'] 检测是否存在,用户上传头像后未对 pre_common_member 表的 avatarstatus 字段置1,造成了已上传头像的用户无法发帖、任务、插件无法识别到头像的主要原因。
打开文件 home.php 查找:
下行加入以下代码(检测到3个大中小头像同时存在后,将 avatarstatus 字段置1):
- if($_G['mod'] == 'spacecp' && $_GET['ac'] == 'avatar' && $_G['uid'] && !$_G['member']['avatarstatus']){
- $avatar_root = str_replace('\\','/',DISCUZ_ROOT.'uc_server/data/avatar/');
- function get_avatar($uid, $size = 'middle', $type = '') {
- $size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle';
- $uid = abs(intval($uid));
- $uid = sprintf("%09d", $uid);
- $dir1 = substr($uid, 0, 3);
- $dir2 = substr($uid, 3, 2);
- $dir3 = substr($uid, 5, 2);
- $typeadd = $type == 'real' ? '_real' : '';
- return $dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2).$typeadd."_avatar_$size.jpg";
- }
- if(
- file_exists($avatar_root.get_avatar($_G['uid'],'big')) &&
- file_exists($avatar_root.get_avatar($_G['uid'],'middle')) &&
- file_exists($avatar_root.get_avatar($_G['uid'],'small'))
- ){
- C::t('common_member')->update($_G['uid'],array('avatarstatus' => 1));
- }
- }
复制代码
|