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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[插件] 子论坛显示所有用户组(含游客) For 4.x

[复制链接]
hklcf 发表于 2005-12-15 11:20:25 | 显示全部楼层 |阅读模式
适用版本:Discuz! 4.0
HACK作者:HKLCF
最后更新:2005.12.15
修改文件:admin/misc.inc.php、forumdisplay.php
修改模版:forumdisplay
安装难易:易
技术支持:discuz.dismall.com
功能简述:4.0原始版本只能定制部分用户组(系统组、特殊组,且不包含游客)的子论坛在线列表显示,此hack可让你自定义所有可显示的用户组,甚至不同级别的普通会员也可以以不同的图标在子论坛在线列表中显示

修改步骤
1. 打开 admin/misc.inc.php 找(安装过在线列表显示所有用户组(含游客) For Discuz! 4.0不用做步骤1)
  1. $query = $db->query("SELECT groupid, grouptitle FROM {$tablepre}usergroups WHERE groupid<>'7' AND type<>'member'");
复制代码

改为
  1. $query = $db->query("SELECT groupid, grouptitle FROM {$tablepre}usergroups ORDER BY type");
复制代码


2. 打开 forumdisplay.php 找
  1. $whosonline = array();
  2.                 $forumname = strip_tags($forum['name']);
  3.                 $query = $db->query("SELECT uid, groupid, username, invisible, lastactivity, action FROM {$tablepre}sessions WHERE uid>'0' AND fid='$fid' AND invisible='0'");
  4.                 if($db->num_rows($query)) {
  5.                         $whosonlinestatus = 1;
  6.                         while($online = $db->fetch_array($query)) {
  7.                                 $online['icon'] = isset($_DCACHE['onlinelist'][$online['groupid']]) ? $_DCACHE['onlinelist'][$online['groupid']] : $_DCACHE['onlinelist'][0];
  8.                                 $online['action'] = $actioncode[$online['action']];
  9.                                 $online['lastactivity'] = gmdate($timeformat, $online['lastactivity'] + ($timeoffset * 3600));
  10.                                 $whosonline[] = $online;     
  11.                         }
  12.                 }
  13.                 unset($online);
  14.         }
  15. } else {
  16.         $whosonlinestatus = 0;
  17. }
复制代码

更改为
  1.                 $whosonline = array();
  2.                 $onlyuseronline = isset($_DCACHE['onlinelist'][7]) ? '' :"AND uid>'0'";
  3.                 $forumname = strip_tags($forum['name']);
  4.                 $query = $db->query("SELECT uid, groupid, username, invisible, lastactivity, action FROM {$tablepre}sessions WHERE fid='$fid' $onlyuseronline");
  5.                 if($db->num_rows($query)) {
  6.                         $whosonlinestatus = 1;
  7.                         while($online = $db->fetch_array($query)) {
  8.                                 if ($online[uid]){
  9.                                         $online['icon'] = isset($_DCACHE['onlinelist'][$online['groupid']]) ? $_DCACHE['onlinelist'][$online['groupid']] : $_DCACHE['onlinelist'][0];
  10.                                 }elseif(!$onlyuseronline){
  11.                                         $online['icon'] = $_DCACHE['onlinelist'][7];
  12.                                         $online['username'] = 'Guest';
  13.                                 }else{
  14.                                         continue;
  15.                                 }

  16.                                 $online['action'] = $actioncode[$online['action']];
  17.                                 $online['lastactivity'] = gmdate($timeformat, $online['lastactivity'] + ($timeoffset * 3600));
  18.                                 if ($online['invisible']) {
  19.                                         $online['icon'] = 'online_invisible.gif';
  20.                                 }
  21.                                 if (!$online['invisible'] || $adminid == 1) {
  22.                                         $whosonline[] = $online;
  23.                                 }
  24.                         }
  25.                 }
  26.                 unset($online);
  27.         }
  28. } else {
  29.         $whosonlinestatus = 0;
  30. }
复制代码


3. 打开 forumdisplay 模板找(最后有空格的)
  1. <a href="viewpro.php?uid=$online[uid]"
复制代码

改为

  1. <!--{if $online[uid]}-->
  2.                                                 <a href="viewpro.php?uid=$online[uid]"
  3.                                         <!--{else}-->
  4.                                                 <a href="###"
  5.                                         <!--{/if}-->
复制代码


注:必须在后台的 “在线列表定制” 中设置了游客的图片,游客才会显示

~完成~

[ 本帖最后由 hklcf 于 2005-12-15 11:25 编辑 ]

本帖子中包含更多资源

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

x
karl907 发表于 2005-12-15 11:31:30 | 显示全部楼层
没人顶??
回复

使用道具 举报

 楼主| hklcf 发表于 2005-12-15 11:32:48 | 显示全部楼层
原帖由 karl907 于 2005-12-15 11:31 发表
没人顶??

没人顶

幸好你来了
回复

使用道具 举报

karl907 发表于 2005-12-15 11:43:23 | 显示全部楼层
对阿!!我继续好了!!
回复

使用道具 举报

haohao036 发表于 2005-12-15 12:53:21 | 显示全部楼层
安装好了。。。ok


楼主请把Guest改成中文
回复

使用道具 举报

yf2519 发表于 2005-12-15 13:07:45 | 显示全部楼层
没演示呀
回复

使用道具 举报

Kirii 发表于 2005-12-15 13:21:53 | 显示全部楼层
不行噢~在线列表定制只有10个,而且全都满了,不能再增加了,怎么办?
回复

使用道具 举报

 楼主| hklcf 发表于 2005-12-15 16:38:48 | 显示全部楼层
顶多一下~~
回复

使用道具 举报

 楼主| hklcf 发表于 2005-12-15 16:40:47 | 显示全部楼层
原帖由 Kirii 于 2005-12-15 13:21 发表
不行噢~在线列表定制只有10个,而且全都满了,不能再增加了,怎么办?

做步骤1
回复

使用道具 举报

 楼主| hklcf 发表于 2005-12-16 15:14:07 | 显示全部楼层
顶一下
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 01:45 , Processed in 0.040440 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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