自己的论坛原来是使用2.5f sp1版的,现在刚升级4.0版,个别在2.5f sp1上安装过的插件功能,有一部分都进行了重装,其中有一个功能,就是首页在线列表显示所有用户组和ip地址。
在4.0插件专区中找,有两三个相关的帖子,但不怎么理想,比如想显示游客的ip,显示ip的代码需要重复加入,不方便,也增加了代码行。
我最终还是参考自己2.5f sp1版上使用的代码,结合4.0插件专区中(好像目前在第六页中),完善了一下。2.5f sp1中我安装的这个插件的代码作者我已经不记得了,这里就不注明了,希望原作者谅解。
以下是安装方法:
修改文件:
admin/misc.inc.php
index.php(根目录程序文件)
index.htm(模板文件,你论坛相应模板目录)
第一步
打开misc.inc.php
找到:
- $query = $db->query("SELECT groupid, grouptitle FROM {$tablepre}usergroups WHERE groupid<>'7' AND type<>'member'");
复制代码
修改为:
- //Major修改,首页在线列表显示所有用户组名单
- //$query = $db->query("SELECT groupid, grouptitle FROM {$tablepre}usergroups WHERE groupid<>'7' AND type<>'member'");
- $query = $db->query("SELECT groupid, grouptitle FROM {$tablepre}usergroups ORDER BY type");
复制代码
第二步
在后台在线用户列表定制栏目中,设置游客的显示图标。
然后更新论坛缓存。
第三步
打开index.php
找到:
- $query = $db->query("SELECT uid, username, groupid, invisible, action, lastactivity, fid FROM {$tablepre}sessions ORDER BY uid DESC");
复制代码
在uid字段后面增加ip1, ip2, ip3, ip4,注意字段间的空格和",":
- //在线列表增加IP信息,增加ip1, ip2, ip3, ip4字段查询
- $query = $db->query("SELECT uid, ip1, ip2, ip3, ip4, username, groupid, invisible, action, lastactivity, fid FROM {$tablepre}sessions ORDER BY uid DESC");
复制代码
找到:
- $online['fid'] = $online['fid'] ? $forumname[$online['fid']] : 0;
- $online['action'] = $actioncode[$online['action']];
- $online['lastactivity'] = gmdate($timeformat, $online['lastactivity'] + ($timeoffset * 3600));
- $whosonline[] = $online;
- } else {
- break;
- }
- }
复制代码
修改为:
- //修改首页在线列表,显示游客和IP信息 开始
- //$online['fid'] = $online['fid'] ? $forumname[$online['fid']] : 0;
- //$online['action'] = $actioncode[$online['action']];
- //$online['lastactivity'] = gmdate($timeformat, $online['lastactivity'] + ($timeoffset * 3600));
- //$whosonline[] = $online;
- //} else {
- //break;
- //}
- //}
- } else {
- if (isset($_DCACHE['onlinelist'][7])) {
- $online['icon'] = $_DCACHE['onlinelist'][7];
- $online['username'] = '游客';
- }
-
- }
- $online['fid'] = $online['fid'] ? $forumname[$online['fid']] : 0;
- $online['action'] = $actioncode[$online['action']];
- $online['lastactivity'] = gmdate($timeformat, $online['lastactivity'] + ($timeoffset * 3600));
- $online['ip'] = $online['ip1'].'.'.$online['ip2'].'.'.$online['ip3'].'.'.$online['ip4'];
- if($allowviewip) {
- require_once $discuz_root.'./include/misc.func.php';
- $online['iplocation'] = convertip($online['ip']);
- }
- $whosonline[] = $online;
- }
- //修改首页在线列表,显示游客和IP信息 结束
复制代码
第四步
打开模板文件index.htm
找到:
- <a href="viewpro.php?uid=$online[uid]" title="{lang time}: $online[lastactivity]{LF}
- {lang action}: $online[action]
- <!--{if $online['fid']}-->{LF}{lang forum}: $online[fid]<!--{/if}-->">$online[username]</a>
复制代码
修改为:
- <!--{if $online[uid]}-->
- <a href="viewpro.php?uid=$online[uid]"
- <!--{else}-->
- <a href="###"
- <!--{/if}-->
- title="{lang time}: $online[lastactivity]{LF}
- {lang action}: $online[action]
- <!--{if $online['fid']}-->{LF}{lang forum}: $online[fid]<!--{/if}--><!--{if $allowviewip}-->{LF}{lang online_ip}: $online[ip]{LF}{lang location}:$online[iplocation]<!--{/if}-->
- ">$online[username]</a>
复制代码
OK,完成结束。
看看效果吧,以下是截图:
[ 本帖最后由 bossyear 于 2006-1-7 18:49 编辑 ] |