现在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(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(" 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>';
}