效果見下圖:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLxUTMwITNxQzNwAjM49CXzADOu9WbpN3LcRXZu9lbkN3Yfd2bsJ2Xw9CXzV2Zh1WavwFdl5mLuR2cj5yZvxmYtA3Lc9CX6MHc0RHaiojIsJye.gif)
1。修改檔案和要用到的檔案
/bbs/memcp.php
/bbs/forumdisplay.php
/bbs/templates/default/forumdisplay.htm
/bbs/templates/default/css.htm [定義縮略頭像樣式]
/bbs/include/ImageCore.func.php [新增]
/bbs/img_s.php [新增,用于對以前上傳的頭像進行批量略縮,運作一次必須删除]
2。修改方法
2.1 打開/memcp.php
2.1.1 找到require_once './include/common.inc.php'; 下面添加
require DISCUZ_ROOT.'./include/ImageCore.func.php';
2.1.2 找到$avatar = 'customavatars/'.$discuz_uid.'.'.$avatarext;
$avatartarget = DISCUZ_ROOT.'./'.$avatar;
if([email protected]($_FILES['customavatar']['tmp_name'], $avatartarget)) {
@move_uploaded_file($_FILES['customavatar']['tmp_name'], $avatartarget);
}
下面添加
if(file_exists($avatartarget)) {
$avatarx = 'customavatars/s/'.$discuz_uid.'.'.$avatarext;
@copy ($avatar,$avatarx);
@vxResize($avatarx,$avatarx);}
2.1.3 找到
$avatarimagesize = @getimagesize($urlavatar);
$avatar = $urlavatar;
更改為
if(!preg_match("/^(images//avatars//.+?)$/i", $urlavatar)) {
$avatarimagesize = @getimagesize($urlavatar);
$avatar = $urlavatar;
}else{
$avatar=$systemavatar;
$avatarx = (str_replace("images/avatars/", "images/avatars/s/",$systemavatar));
@copy ($avatar,$avatarx);
@vxResize($avatarx,$avatarx);
}
2.1.4 找到
$avatarimagesize = @getimagesize($systemavatar);
$avatar = $systemavatar;
下邊加
$avatarx = (str_replace("images/avatars/", "images/avatars/s/",$systemavatar));
@copy ($avatar,$avatarx);
@vxResize($avatarx,$avatarx);
2.2 打開 /forumdisplay.php
2.2.1找到
Select t.* FROM {$tablepre}threads t $dotadd2
替換成
Select $dotadd1 t.*, mf.avatar FROM {$tablepre}threads t $dotadd2
LEFT JOIN {$tablepre}memberfields mf ON(mf.uid = t.authorid)
一共兩處。兩個地方是緊挨着的。
2.2.2找到
} else {
$thread['highlight'] = '';
}
後面加上
if(!$thread['avatar']){
$thread['avatarx'] = 'images/avatars/s/noavatar.gif';
}
2.2.3 找到
$thread['lastposterenc'] = rawurlencode($thread['lastposter']);
後邊加
if(preg_match("/^(customavatars//.+?)$/i", $thread['avatar'])) {
$thread['avatarx'] = str_replace("customavatars/", "customavatars/s/", $thread['avatar']);
}elseif (preg_match("/^(images//avatars//.+?)$/i",$thread['avatar'])) {
$thread['avatarx'] = str_replace("images/avatars/", "images/avatars/s/", $thread['avatar']);
} else { $thread['avatarx'] = 'images/avatars/s/noavatar.gif';}
3.1 打開 /templates/default/forumdisplay.htm
3.1.1找到
</td><td class="f_author">
後面加上
<!--{if $thread['authorid'] && $thread['author']}-->
<div style="float:left"><img src="$thread[avatarx]" οnerrοr="src='images/avatars/s/noavatar.gif'" width="22" height="22" class="portrait" /></div>
<!--{else}-->
<div style="float:left"><img src="customavatars/s/noavatar.gif" width="22" height="22" class="portrait" /></div>
<!--{/if}-->
4 在/templates/default/css.htm 最後面加上
.portrait {
border:2px solid #ccc;
padding:2px;
margin:2px;
background-color:#fff;
vertical-align:middle;
}
5. 将下面的附件下載下傳,将兩個檔案上傳到相應的咱徑 。[附件解決因為系統不同出現的路徑問題現在已更新]
ImageCore.func.php --->/include/ImageCore.func.php
img_s.php ----->/
兩個檔案上傳完畢後,IE會出現 overflow 是因為你還沒有運作 img_s.php,是以找不到圖檔, 先運它一次,再更新緩存即可。
如果是 *nix 系統,記得将 img_s.php 屬性改為777 win主機不用改屬性
點選下載下傳此檔案