Discuz 会员头像调用方法之discuz_uc_avatar函数
现在Discuz越来越走向开放化,只要会网站技术都可以对DZ的程序进行修改,还可以开发插件和模板等,UCenter用户中心是很重要的,它是很多应用的中心,其中会员头像就是通过UC调用的,大家可以发现头像图片的路径会因好多情况不同,可是怎么调用会员的头像呢?
下面这个函数就是为了调用会员头像设计的:
- 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(emptyempty($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(" d", $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.'" '.UC_API.'/images/noavatar_'.$size.'.gif\'" />';
- }
- } else {
- $file = $GLOBALS['boardurl'].IMGDIR.'/syspm.gif';
- return $returnsrc ? $file : '<img src="'.$file.'" />';
- }
- }
以上代码有二个要注意的地方:
1、$returnsrc 参数 当为TRUE时函数返回头像路径,为FALSE时返回带img标签的路径,看不同的需要,一般为TRUE时通用些.
2、UC_API这个是一个常量,需要引用一个配置文件,引用方法如下:
require_once DISCUZ_ROOT.'./config/config_ucenter.php';
部分调用函数的例子:
- $tmparr=explode(",",$diymemberlist);
- foreach($tmparr as $key => $tmp){
- $uid = DB::result_first("select uid from ".DB::table('common_member')." where username='".$tmp."'");
- if($uid!="")$tempstr .='<li><a href="http://www.cnit618.com/home.php?mod=space&uid='.$uid.'" target="_blank" title="'.$result['username'].'"><img src="'.discuz_uc_avatar($uid,'small').'"/><br><span>'.$tmp.'</span></a></li>';
- }