OSDN Git Service

r74 更新履歴マージ
[trpgtools-onweb/AjaxChat.git] / module_member-num.php
1 <?php
2 /*
3  * Ajax Chat for TRPG Extra Module
4  * 参加者数表示モジュール ver.β
5  * (c)2008 Cake All rights reserved.
6  * Mail : cake_67@users.sourceforge.jp
7  * Home : http://trpgtools-onweb.sourceforge.jp/
8
9 本モジュールは試用版です。
10
11 表示したいページにて、以下の通り追記してください
12
13 [PHPのみ対応]
14 include('[このファイルまでのパス]/module_member-num.php');
15
16  */
17
18 /* 設定 */
19 // 参加人数の表示設定
20 $GLOBALS['MEMBER_NUMCHECK']['CONFIG'] = array(
21 //設定例: array('表示したいチャットのメンバーチェッカーログファイル名', 'ディレクトリ', , '表示チャット名', 'クリックで開くURL(任意)', 'URLを開く窓(任意)'),
22     array('member.log', './', 'Ajax Chat for TRPG', './index.php', '_blank'),
23 //    array('member.log', '', '', '', ''),
24 );
25
26 // アクセスブロック設定
27 $GLOBALS['MEMBER_NUMCHECK']['A_BLOCK_IPS'] = array(
28     '192.168.1.1',
29 );
30
31 // 表示形式
32 // 参加人数数の表示設定。
33 // HTMLタグ有効。
34 define('SHOW_MEMBERNUM_HEADER', '<center><b>現在の参加者数</b></center>'); // ヘッター
35 // {$title}にチャット名、{$num}には参加人数が表示されます。
36 define('SHOW_MEMBERNUM_BODY', '{$title} ({$num})<br>'); 
37 define('SHOW_MEMBERNUM_FOOTER', ''); // フッター
38
39 // Ajax Chat fot TRPG本体のパス
40 // ファイル配置を変更する場合、設定してください
41 // 通常は変更しなくてOKです
42 define('TRPGCHAT_DIR', './');
43
44
45 //===========================
46 // 設定ファイルの読み込み
47 if (!is_array($GLOBALS['MEMBER_NUMCHECK']['CONFIG'])) die("設定が読み込めません");
48
49 // アクセスブロック
50 if ($GLOBALS['MEMBER_NUMCHECK']['A_BLOCK_IPS']) {
51     foreach ($GLOBALS['MEMBER_NUMCHECK']['A_BLOCK_IPS'] as $v) {
52         if ($v) {
53             if (strstr($_SERVER['REMOTE_ADDR'], $v) || strstr(gethostbyaddr($_SERVER['REMOTE_ADDR']), $v) || strstr($_SERVER['REMOTE_HOST'], $v)) error("接続に失敗しました");
54         }
55     }
56 }
57
58 // メンバー数読み込み
59 $list = SHOW_MEMBERNUM_HEADER;
60 foreach ($GLOBALS['MEMBER_NUMCHECK']['CONFIG'] as $v) {
61     $member_num = read_memberlog($v);
62
63     // 参加人数表示
64     $body = str_replace(array('{$title}', '{$num}'), array($v[2], $member_num), SHOW_MEMBERNUM_BODY);
65     if ($v[3]) {
66         if (!$v[4]) {
67             $target = '_self';
68         } else {
69             $target = $v[4];
70         }
71         $body = '<a href="'.$v[3].'" target="'.$target.'">'.$body.'</a>';
72     }
73
74     $list .= $body."\n";
75 }
76
77 $list .= SHOW_MEMBERNUM_FOOTER;
78
79 print $list;
80
81 function read_memberlog($data) {
82     $memnerlog = TRPGCHAT_DIR.$data[1].$data[0];
83     if (!is_readable($memnerlog)) return "?";
84     $member_data = @file($memnerlog);
85     if (is_array($member_data)) return count($member_data);
86     return "0";
87 }
88 ?>