去评论
dz插件网

Discuz 会员头像调用方法之discuz_uc_avatar函数(返回纯路径)

哥斯拉
2023/05/30 20:18:26
下面这个函数就是为了调用会员头像设计的:
function discuz_uc_avatar($uid, $size = '', $returnsrc = TRUE) {
if($uid > 0) {
   $size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle';
   $uid = abs(intval($uid));
   if(empty($GLOBALS['avatarmethod'])) {
    return $returnsrc ? UC_API.'/avatar.php?uid='.$uid.'&size='.$size : '<img src="'.UC_API.'/avatar.php?uid='.$uid.'&size='.$size.'" />';
   } else {
    $uid = sprintf("%09d", $uid);
    $dir1 = substr($uid, 0, 3);
    $dir2 = substr($uid, 3, 2);
    $dir3 = substr($uid, 5, 2);
    $file = UC_API.'/data/avatar/'.$dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2).'_avatar_'.$size.'.jpg';
    return $returnsrc ? $file : '<img src="'.$file.'" οnerrοr="this.οnerrοr=null;this.src=\''.UC_API.'/images/noavatar_'.$size.'.gif\'" />';
   }
} else {
   $file = $GLOBALS['boardurl'].IMGDIR.'/syspm.gif';
   return $returnsrc ? $file : '';
}
}

以上代码有二个要注意的地方:
1、$returnsrc 参数 当为TRUE时函数返回头像路径,为FALSE时返回带img标签的路径,看不同的需要,一般为TRUE时通用些
2、UC_API这个是一个常量,需要引用一个配置文件,引用方法如下:
require_once DISCUZ_ROOT.'./config/config_ucenter.php';