Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

主题显示略缩的作者头像 For Discuz 5.5 V1.0

[复制链接]
freeher 发表于 2007-4-6 20:18:21 | 显示全部楼层 |阅读模式
2007-04-26

1.已经有朋友写出来了关于装评分后的冲突问题,请看
https://discuz.dismall.com/thread-601831-1-1.html

2.关于头像位置问题
主要就是CSS的修改, 看看别人网站改好的代码,就知道怎么下手了.
我这里没有写出来,一是因为我懒,二是懂得一些HTML和CSS对做网站很重要,算是我逼你们学点东西吧.

3.关于公告头像的问题
公告的头像调用可能在最新的版本里面会发布

4.关于生成缩略图大小的问题.
修改ImageCore.inc.php的参数,具体的方法我在 5.0版的里面就写了.其实Imagecore.inc.php里面的东西看一下就懂.

5.关于这个插件是否会影响速度
我不骗你,加了东西,理所当然会影响速度.
影响多少我不知道, 访问一下回帖里面的URL不就知道快还是慢了. DZ再快,总快不过纯文本的HTML吧.

6.有没有继续更新插件的想法.
不要以为 1.0 后面就应该有 1.5 2.0
我忙,我还是个懒汉,而且我的PHP水平很菜.别等我动手写了,这个东西不难,自已动手DIY,你会做得比你自己想像的还要好.

7.为什么发给我的PM或QQ消息我都没回复.
因为我曾经回过好多次,重复做同样的事情,很让人为难.

================================================================================




写在发布前



主题显示略缩的作者头像 For  Discuz 5.5  只是修改了 For DZ5.0 的几行代码。
如果您发现这些代码有不足之处,还请提点。
如果您愿意自己动手,也许能做得更好。

参考网站 http://www.v2ex.com  http://www.sunschina.com

HACK 特点
1.主题帖作者缩略头像会在 forumdisplay.php [帖子列表] 显示
2.缩略头像因为是采用GD库生成的头像,所以体积小,不影响网页加载
3.这样做会使你的页面很酷,对于提高论坛用户的积极性有一定的效果


演示论坛:   http://www.52guixi.com/bbs/

一些建议:
1.您最好能有一款好一点的文本编辑器,记事本看代码人很容易晕[我用的是Editplus]
2.您最好能安装本地调试环境,这比上传一次再刷新方便多了[我以前用微米天空的套件,现在用的是WAMPS,两个都不错]
3.如果您想更好的使用Discuz, 我建意您去下载三本CHM手册 分别是 HTML手册  CSS手册 和 PHP手册 , 如果有必要 MYSQL 手册也去下载一本.



安装中要修改或者增加的文件

/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 [新增,用于对以前上传的头像进行批量略缩,运行一次必须删除]


==========================修改方法========================================
分别在
bbs/images/avatars/
bbs/customavatars/
两个目录内各建一个 /s 目录,用来存放缩略文件,权限为 777



请先将附件下载并上传,且将文件权限改为777,附件内一共包括三个文件



ImageCore.func.php --->bbs/include/ImageCore.func.php
img_s.php ----->bbs/  
noavatar.gif----->bbs/images/avatars/s/noavatar.gif

然后再按下面的方法修改




1. 打开 /bbs/memcp.php
  1. require_once './include/common.inc.php';
复制代码

后面添加
  1. require DISCUZ_ROOT.'./include/ImageCore.func.php';
复制代码


找到
  1.                         $avatar = 'customavatars/'.$discuz_uid.'.'.$avatarext;
  2.                         $avatartarget = DISCUZ_ROOT.'./'.$avatar;
  3.                         if(!@copy($_FILES['customavatar']['tmp_name'], $avatartarget)) {
  4.                                 @move_uploaded_file($_FILES['customavatar']['tmp_name'], $avatartarget);
  5.                         }
复制代码

后面添加
  1. if(file_exists($avatartarget)) {
  2.                         $avatarx = 'customavatars/s/'.$discuz_uid.'.'.$avatarext;
  3.                         @copy ($avatar,$avatarx);                                       
  4.                         @vxResize($avatarx,$avatarx);}
复制代码


找到
  1. if(preg_match("/^(images\/avatars\/.+?)|(customavatars\/.+?)$/i", $urlavatar) || (ini_get('allow_url_fopen') && (substr(PHP_OS, 0, 3) != 'WIN' || PHP_VERSION >= 5))){
  2.                                 $avatarimagesize = @getimagesize($urlavatar);
  3.                         }
  4.                         $avatar = $urlavatar;
复制代码


后面添加
  1. $avatarx = 'images/avatars/s/noavatar.gif';
复制代码


找到
  1. } elseif(($allowavatar == 1 || $allowavatar == 2 || $allowavatar == 3) && $urlavatar) {
  2.                         if(!preg_match("/^(images\/avatars\/.+?)$/i", $urlavatar)) {
  3.                                 showmessage('profile_avatar_invalid');
  4.                         }
  5.                         $avatarimagesize = @getimagesize($urlavatar);
  6.                         $avatar = $urlavatar;
复制代码


后面添加
  1. $avatarx = (str_replace("images/avatars/", "images/avatars/s/", $urlavatarr));
  2.                         @copy ($avatar,$avatarx);
  3.             @vxResize($avatarx,$avatarx);
复制代码




2.找开/bbs/forumdisplay.php  

找到下面的代码,共有三处
  1. query("SELECT t.* FROM {$tablepre}threads t
复制代码

全部替换为
  1. query("SELECT t.* , mf.avatar FROM {$tablepre}threads t
  2.                 LEFT JOIN {$tablepre}memberfields mf ON(mf.uid = t.authorid)
复制代码



找到
  1. $thread['lastposterenc'] = rawurlencode($thread['lastposter']);
复制代码


下面添加
  1.         if(preg_match("/^(customavatars\/.+?)$/i", $thread['avatar'])) {
  2.                         $thread['avatarx'] = str_replace("customavatars/", "customavatars/s/", $thread['avatar']);
  3.                 }elseif (preg_match("/^(images\/avatars\/.+?)$/i",$thread['avatar'])) {
  4.                 $thread['avatarx'] = str_replace("images/avatars/", "images/avatars/s/", $thread['avatar']);
  5.         } else { $thread['avatarx'] = 'images/avatars/s/noavatar.gif';}
复制代码



找到
  1.         } else {
  2.                 $thread['highlight'] = '';
  3.         }
复制代码


下面添加
  1. if(!$thread['avatar']){
  2.          $thread['avatarx'] = 'images/avatars/s/noavatar.gif';
  3.         }
复制代码



3. 打开 /bbs/templates/default/forumdisplay.htm

找到
  1. </td><td class="f_author">
复制代码


后面添加
  1. <!--{if $thread['authorid'] && $thread['author']}-->  
  2.                 <div class="avatarx" style="width:22;height=22"><img src="$thread['avatarx']" onerror="src='images/avatars/s/noavatar.gif'"  width="16" height="16" /></div>
  3.                                 <!--{else}-->
  4.                                         <div class="avatarx" style="width:22;height=22"><img src="images/avatars/s/noavatar.gif"  width="16" height="16" /></div>                 <!--{/if}-->
复制代码



4 在的 /bbs/templates/default/css.htm 最后面加上

在最后面加上
  1. .avatarx {
  2. border: 1px solid #ccc;
  3. background-color: :#fff;
  4. padding: 2px;
  5. float:left;}
复制代码


确定修改完毕后 在浏览器里输入 http://youbbs.com/bbs/img_s.php  如果头像数量过多,请等待。
最后记得,一定要删除 img_s.php

[ 本帖最后由 freeher 于 2007-4-26 20:46 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

6

查看全部评分

yhy8064 发表于 2007-4-6 20:29:40 | 显示全部楼层
沙发支持!!!!
哈哈,第一次抢到沙发~!

[ 本帖最后由 yhy8064 于 2007-4-7 07:41 编辑 ]
回复

使用道具 举报

babyq 发表于 2007-4-6 20:31:20 | 显示全部楼层
回复

使用道具 举报

babyq 发表于 2007-4-6 20:31:41 | 显示全部楼层
回复

使用道具 举报

babyq 发表于 2007-4-6 20:31:59 | 显示全部楼层
前排
回复

使用道具 举报

拒买日本货 发表于 2007-4-6 20:53:22 | 显示全部楼层
以前DZ5.0版本的那个插件会出现

当帖子评为精华或加分后...上下主题的作者头像对不准确的情况

强烈希望解决这问题

建议作者头像最靠右边..这样就避免了主题之间作者头像对不齐的情况了


楼主说说...........
回复

使用道具 举报

dytianyuan 发表于 2007-4-6 21:03:26 | 显示全部楼层
这个准不错,谢谢分享!
回复

使用道具 举报

 楼主| freeher 发表于 2007-4-6 21:18:36 | 显示全部楼层
原帖由 拒买日本货 于 2007-4-6 20:53 发表
以前DZ5.0版本的那个插件会出现

当帖子评为精华或加分后...上下主题的作者头像对不准确的情况

强烈希望解决这问题

建议作者头像最靠右边..这样就避免了主题之间作者头像对不齐的情况了


...


CSS 的东西我正在重写

我以前自己写的CSS并不会出现你所说的情况

这次会顺带把CSS一起放出来

评分

1

查看全部评分

回复

使用道具 举报

cn256 发表于 2007-4-6 21:29:30 | 显示全部楼层
已经用上,谢谢分享。



演示http://city.student163.com/forumdisplay.php?fid=3

[ 本帖最后由 cn256 于 2007-4-6 21:56 编辑 ]
回复

使用道具 举报

ndren 发表于 2007-4-6 21:44:47 | 显示全部楼层
请问这些缩略头像系统会自动生成还是需要我们每次都要运行那个文件进行生成?

非常感谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-15 15:39 , Processed in 0.035193 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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