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

2021-03-20 654 0条评论



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;

}

文章版权及转载声明

本文作者:符文浩 网址:http://blog.fuwenhao.com/post/400.html 发布于 2021-03-20
文章转载或复制请以超链接形式并注明出处。

发表评论

快捷回复:

评论列表 (暂无评论,654人围观)参与讨论

还没有评论,来说两句吧...

取消
微信二维码
微信二维码
支付宝二维码