主题列表后显示作者略缩头像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(!@copy($_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主机不用改属性

点击下载此文件

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值