#HACK名称:即时聊天室
#HACK作者:oytktk
#HACK修改:我。。。。
#技术支持:http://E-DYN.com
#适合版本:2.5F SP1
#安装难度:简单
#数据库升级:两个
#修改文件:index.htm 模板
演示:http://E-DYN.com
呵呵,
拿了 oytktk 老大的聊天室 来修改。
个猫不喜欢聊天室都要去后台管理。。
所以管理都在前台。。。
新功能增加:
1)聊天室特殊指令。
2)隐身发言。
3)点击聊天会员名字可以发送短信息。
4)可选择是否自动刷新聊天室。(避免聊天室内无人页面仍刷新,浪费资源。。)
5)增加多种表情图案。。
6)图片地址输入框。。
安装:
-----------------------------------------------
STEP 1
后台升级数据库- DROP TABLE IF EXISTS cdb_chat;
- CREATE TABLE cdb_chat (
- cid mediumint(18) unsigned NOT NULL auto_increment,
- from_user VARCHAR(15) NOT NULL ,
- to_user VARCHAR(15) NOT NULL ,
- time VARCHAR(20) NOT NULL ,
- colour VARCHAR(20) NOT NULL ,
- words VARCHAR(255) NOT NULL ,
- private TINYINT(1) NOT NULL ,
- action VARCHAR(15) NOT NULL ,
- logtime INT(15) NULL ,
- KEY cid (cid)
- )TYPE=MyISAM AUTO_INCREMENT=2 ;
- DROP TABLE IF EXISTS cdb_chatban;
- CREATE TABLE cdb_chatban (
- banid mediumint(18) unsigned NOT NULL auto_increment,
- ban_user VARCHAR(15) NOT NULL ,
- ban_from VARCHAR(15) NOT NULL ,
- kick TINYINT(1) NOT NULL ,
- block TINYINT(1) NOT NULL ,
- KEY banid (banid)
- )TYPE=MyISAM AUTO_INCREMENT=2 ;
复制代码
STEP 2
按附件结构目录上传。
STEP 3
打开 index.htm 模板,找到- <!--{if empty($gid) && $whosonlinestatus}-->
复制代码
上面增加- <!--{if empty($gid)}-->
- <body onload="proff();">
- <script LANGUAGE="javascript">
- function pron(name, value, hours)
- {
- var expire = "";
- if(hours != null)
- {
- expire = new Date((new Date()).getTime() + hours * 3600000);
- expire = "; expires=" + expire.toGMTString();
- }
- document.cookie = name + "=" + escape(value) + expire;
-
- proff();
- }
- function proff()
- {
- var cookie=document.cookie;
- var start=cookie.indexOf("chat=");
- var end=cookie.indexOf(";",start);
- if(end==-1)end=cookie.length;
- var getcookie=cookie.substring(start+5,end);
- if (getcookie=="off")
- {
- marker.style.display = "none";
- document.all.main.src="free.php";
- }
- else{
- document.all.main.src= "chat.php";
- marker.style.display = "";
- }
- }
- </script>
- <tr><td colspan="3" class="header">
- <table cellspacing="0" cellpadding="0" border="0" width="100%" align="center">
- <tr class="smalltxt" style="color: #FFFFFF">
- <td><img src="{IMGDIR}/indexicon.gif" align="absmiddle"><span class="bold"> 即时聊天室 </span>- <a href="###" onclick="pron('chat','on',1000000);"><font color="#FFFFFF">[+]</font></a> <a href="###" onclick="pron('chat','off',1000000);"><font color="#FFFFFF">[-]</font></a> <a href="###" onclick="pron('chat','on',1000000);"><font color="#FFFFFF">[刷新在线名单]</font></a></td></tr></table>
- <tr><td colspan="3" class="header" id="marker" style="DISPLAY: none">
- <IFRAME name=main src=chat.php frameBorder=0 width="100%" scrolling=no height=320></IFRAME>
- </td></tr><!--{/if}-->
复制代码
完成,保存。
下面是聊天室内的特殊指令一览表。
在对话框输入,就可以实行下列效果。
1)-rebuild
功能:聊天室数据库结构删除,重建。
限制:仅管理员使用。
2)-optimize
功能:聊天室数据库资料结构优化。
限制:管理员和总版都可使用。
3)-clear
功能:清除所有聊天内容。(如果指定会员,就是删除该会员所有的聊天内容。)
限制:版主以上。
4)-listall
功能:列出所有的聊天讯息。(如果指定会员,就是列出该会员所有的聊天讯息。)
限制,版主以上。
5)-showall
功能:列出所有别人曾经对你说过的话。
限制:版主以上。
6)-block
功能:禁言指定会员。(版主以上不受此限。)
限制,版主以上。
7)-unblock
功能:解禁指定会员。
限制:版主以上。
8)-kick
功能:踢除指定会员。(版主以上可自己解除状态。)
限制:版主以上。
9)-unkick
功能:解除指定会员状态。
限制:版主以上。
10)-list
功能:列出自己曾经说过的话。
限制:会员以上。
11)-show
功能:列出别人对自己说过的话。
限制:会员以上。
12)-nudge
功能:发出仿 MSN 趣味震动音。
限制:会员以上。
更新。
-----------------------------------------------
-----
[size=-2][size=-2]定时清理聊天资料。
打开 chatwrite.php
找到- $checkblock = $db->query("SELECT * FROM cdb_chatban WHERE ban_user='$from_user'");
复制代码
上面增加- $qcount = $db->query("SELECT * FROM cdb_chat");
- $rowcount = $db->num_rows($qcount);
- if($rowcount > 100){
- $db->query("DELETE FROM cdb_chat");
- }
复制代码
聊天资料超过 100 笔的时候,自动清除。
----- -----
[size=-2][size=-2]聊天窗口默认成打开。
修改 index.htm 模板。
找- <td colspan="3" class="header" id="marker" style="DISPLAY: none">
复制代码
改成- <td colspan="3" class="header" id="marker" style="DISPLAY: ">
复制代码
-----
-----
国际时间格式显示
打开 chatwrite.php
找到
修改成
-----
-----
更新时间不正确的问题:
打开 chatwrite.php
搜索
修改成
有两个。
-----
下面是截图。
[ 本帖最后由 不削吃鱼的猫 于 2005-8-20 15:48 编辑 ] |