Discuz开发 discuz X1.5 取得论坛的头像

[复制链接]
php网站开发 发表于 2013-5-3 19:52:54 [Discuz开发] 显示全部楼层 |阅读模式 上一主题 下一主题

马上注册,一起探讨正确快速的建站方法

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
discuz X1.5  取得论坛的头像的程序分析

  /**
   * 头像方法
   * @param string $uid 用户ID
   * @param string $size 头像显示尺寸
   * @param string $ucenterurl 删除条目数
   * @param boolean $returnsrc 是否删除表缓存
* @param boolean $real 是否删除表缓存
* @param boolean $static 是否删除表缓存
   */

// \source\function\function_core.php    340行  
function avatar($uid, $size = 'middle', $returnsrc = FALSE, $real = FALSE, $static = FALSE, $ucenterurl = '')
{

global $_G;
// \source\class\class_core.php
/*
class discuz_core {

// 134行处
//全局变量 $_G  初始化定义
global $_G;
$_G = array(

//论坛全局定义

//UCHome全局定义

//portal 全局定义

//系统参数
//相对主目录的相对地址及文件名

//基本脚本名,每个功能脚本首页前都会定义

);

}

*/

// function setglobal
($key , $value, $group = null)   \source\function\function_core.php    70行    增加设置全局变量

static $staticavatar;
if($staticavatar === null) {
$staticavatar = $_G['setting']['avatarmethod'];
}
$ucenterurl = empty($ucenterurl) ? $_G['setting']['ucenterurl'] : $ucenterurl;
$size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle';
$uid = abs(intval($uid));
if(!$staticavatar && !$static)
{
// 设置使用 动态取头像
// http://bbs.eic.org.cn/uc_server/avatar.php?uid=1&size=middle
return $returnsrc ? $ucenterurl.'/avatar.php?uid='.$uid.'&size='.$size : '<img src="'.$ucenterurl.'/avatar.php?uid='.$uid.'&size='.$size.($real ? '&type=real' : '').'" />';
}
else
{
// 设置使用  静态头像地址 通过$uid做一些规则
$uid = sprintf("%09d", $uid); // 格式化为9位的数字
$dir1 = substr($uid, 0, 3);
$dir2 = substr($uid, 3, 2);
$dir3 = substr($uid, 5, 2);
$file = $ucenterurl.'/data/avatar/'.$dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2).($real ? '_real' : '').'_avatar_'.$size.'.jpg';
// http://bbs.eic.org.cn/uc_server/ ... 1_avatar_middle.jpg
return $returnsrc ? $file : '<img src="'.$file.'" onerror="this.onerror=null;this.src=\''.$ucenterurl.'/images/noavatar_'.$size.'.gif\'" />';
}
}







如何设置 $_G的呢?


// \source\function\function_core.php    70行  
//设置全局变量
function setglobal($key , $value, $group = null) {
global $_G;
$k = explode('/', $group === null ? $key : $group.'/'.$key);
switch (count($k)) {
case 1: $_G[$k[0]] = $value; break;
case 2: $_G[$k[0]][$k[1]] = $value; break;
case 3: $_G[$k[0]][$k[1]][$k[2]] = $value; break;
case 4: $_G[$k[0]][$k[1]][$k[2]][$k[3]] = $value; break;
case 5: $_G[$k[0]][$k[1]][$k[2]][$k[3]][$k[4]] =$value; break;
}
return true;
}

function getglobal($key, $group = null) {
global $_G;
$k = explode('/', $group === null ? $key : $group.'/'.$key);
switch (count($k)) {
case 1: return isset($_G[$k[0]]) ? $_G[$k[0]] : null; break;
case 2: return isset($_G[$k[0]][$k[1]]) ? $_G[$k[0]][$k[1]] : null; break;
case 3: return isset($_G[$k[0]][$k[1]][$k[2]]) ? $_G[$k[0]][$k[1]][$k[2]] : null; break;
case 4: return isset($_G[$k[0]][$k[1]][$k[2]][$k[3]]) ? $_G[$k[0]][$k[1]][$k[2]][$k[3]] : null; break;
case 5: return isset($_G[$k[0]][$k[1]][$k[2]][$k[3]][$k[4]]) ? $_G[$k[0]][$k[1]][$k[2]][$k[3]][$k[4]] : null; break;
}
return null;
}




上一篇:Discuz!x基础使用教程:如何禁止用户
下一篇:修改帖子内容页中的分享到:QQ空间、微博等样式,看起来更加和谐

大神点评1

v4521 发表于 2014-4-6 16:06:52 [Discuz开发] 显示全部楼层
如何写文章,一直让人烦啊
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

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