天天看點

主題清單後顯示作者略縮頭像For Discuz!5.5

效果見下圖:

主題清單後顯示作者略縮頭像For Discuz!5.5

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主機不用改屬性

點選下載下傳此檔案