OSDN Git Service

Small bug fix to (/inc/calendars.php)
[idb/iDB.git.git] / inc / stats.php
1 <?php
2 /*
3     This program is free software; you can redistribute it and/or modify
4     it under the terms of the Revised BSD License.
5
6     This program is distributed in the hope that it will be useful,
7     but WITHOUT ANY WARRANTY; without even the implied warranty of
8     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9     Revised BSD License for more details.
10
11     Copyright 2004-2011 iDB Support - http://idb.berlios.de/
12     Copyright 2004-2011 Game Maker 2k - http://gamemaker2k.org/
13
14     $FileInfo: stats.php - Last Update: 07/01/2011 SVN 691 - Author: cooldude2k $
15 */
16 $File3Name = basename($_SERVER['SCRIPT_NAME']);
17 if ($File3Name=="stats.php"||$File3Name=="/stats.php") {
18         require('index.php');
19         exit(); }
20 if($_GET['act']=="stats") {
21 $_SESSION['ViewingPage'] = url_maker(null,"no+ext","act=stats","&","=",$prexqstr['index'],$exqstr['index']);
22 if($Settings['file_ext']!="no+ext"&&$Settings['file_ext']!="no ext") {
23 $_SESSION['ViewingFile'] = $exfile['index'].$Settings['file_ext']; }
24 if($Settings['file_ext']=="no+ext"||$Settings['file_ext']=="no ext") {
25 $_SESSION['ViewingFile'] = $exfile['index']; }
26 $_SESSION['PreViewingTitle'] = "Viewing";
27 $_SESSION['ViewingTitle'] = "Board Stats"; }
28 $uolcuttime = GMTimeStamp();
29 $uoltime = $uolcuttime - ini_get("session.gc_maxlifetime");
30 $uolquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."sessions\" WHERE \"expires\" >= %i ORDER BY \"expires\" DESC", array($uoltime));
31 $uolresult=sql_query($uolquery,$SQLStat);
32 $uolnum=sql_num_rows($uolresult);
33 $uoli=0; $olmn = 0; $olgn = 0; $olan = 0; $olmbn = 0;
34 $MembersOnline = null; $GuestsOnline = null;
35 while ($uoli < $uolnum) {
36 $session_data=sql_result($uolresult,$uoli,"session_data"); 
37 $session_user_agent=sql_result($uolresult,$uoli,"user_agent"); 
38 $session_ip_address=sql_result($uolresult,$uoli,"ip_address");
39 $UserSessInfo = unserialize_session($session_data);
40 $AmIHiddenUser = "no";
41 $user_agent_check = false;
42 if(user_agent_check($session_user_agent)) {
43         $user_agent_check = user_agent_check($session_user_agent); }
44 if($UserSessInfo['UserGroup']!=$Settings['GuestGroup']||$user_agent_check!==false) {
45 $PreAmIHiddenUser = GetUserName($UserSessInfo['UserID'],$Settings['sqltable'],$SQLStat);
46 $AmIHiddenUser = $PreAmIHiddenUser['Hidden'];
47 if(($AmIHiddenUser=="no"&&$UserSessInfo['UserID']>0)||$user_agent_check!==false) {
48 if($olmbn>0) { $MembersOnline .= ", "; }
49 if($user_agent_check===false) {
50 $uatitleadd = null;
51 if($GroupInfo['HasAdminCP']=="yes") { $uatitleadd = " title=\"".$session_user_agent."\""; }
52 $MembersOnline .= "<a".$uatitleadd." href=\"".url_maker($exfile['member'],$Settings['file_ext'],"act=view&id=".$UserSessInfo['UserID'],$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member'])."\">".$UserSessInfo['MemberName']."</a>"; 
53 if($GroupInfo['HasAdminCP']=="yes") {
54 $MembersOnline .= " (<a title=\"".$session_ip_address."\" onclick=\"window.open(this.href);return false;\" href=\"".sprintf($IPCheckURL,$session_ip_address)."\">".$session_ip_address."</a>)"; }
55 ++$olmn; ++$olmbn; }
56 if($user_agent_check!==false) {
57 $uatitleadd = null;
58 if($GroupInfo['HasAdminCP']=="yes") { $uatitleadd = " title=\"".$session_user_agent."\""; }
59 $MembersOnline .= "<span".$uatitleadd.">".$user_agent_check."</span>"; 
60 if($GroupInfo['HasAdminCP']=="yes") {
61 $MembersOnline .= " (<a title=\"".$session_ip_address."\" onclick=\"window.open(this.href);return false;\" href=\"".sprintf($IPCheckURL,$session_ip_address)."\">".$session_ip_address."</a>)"; }
62 ++$olmbn; } }
63 if($UserSessInfo['UserID']<=0||$AmIHiddenUser=="yes") {
64 if($user_agent_check===false) {
65 ++$olan; } } }
66 if($UserSessInfo['UserGroup']==$Settings['GuestGroup']) {
67 /*$uatitleadd = null;
68 if($GroupInfo['HasAdminCP']=="yes") { $uatitleadd = " title=\"".$session_user_agent."\""; }
69 $GuestsOnline .= "<a".$uatitleadd." href=\"".url_maker($exfile['member'],$Settings['file_ext'],"act=view&id=".$MemList['ID'],$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member'])."\">".$MemList['Name']."</a>";
70 if($GroupInfo['HasAdminCP']=="yes") {
71 $GuestsOnline .= " (<a title=\"".$session_ip_address."\" onclick=\"window.open(this.href);return false;\" href=\"".sprintf($IPCheckURL,$session_ip_address)."\">".$session_ip_address."</a>)"; } */
72 ++$olgn; }
73 ++$uoli; }
74 if($_GET['act']=="view"||$_GET['act']=="stats") {
75 $ntquery = sql_pre_query("SELECT COUNT(*) FROM \"".$Settings['sqltable']."topics\"".$ForumIgnoreList3, array(null));
76 $ntresult = sql_query($ntquery,$SQLStat);
77 $numtopics = sql_result($ntresult,0);
78 sql_free_result($ntresult);
79 $npquery = sql_pre_query("SELECT COUNT(*) FROM \"".$Settings['sqltable']."posts\"".$ForumIgnoreList3, array(null));
80 $npresult = sql_query($npquery,$SQLStat);
81 $numposts = sql_result($npresult,0);
82 sql_free_result($npresult);
83 if($Settings['AdminValidate']=="on") {
84 $nmquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."members\" WHERE \"id\">=%i AND \"HiddenMember\"='no' AND \"Validated\"='yes' AND \"GroupID\"<>%i ORDER BY \"Joined\" DESC LIMIT 1", array(1,$Settings['ValidateGroup'])); 
85 $rnmquery = sql_pre_query("SELECT COUNT(*) FROM \"".$Settings['sqltable']."members\" WHERE \"id\">=%i AND \"HiddenMember\"='no' AND \"Validated\"='yes' AND \"GroupID\"<>%i", array(1,$Settings['ValidateGroup'])); }
86 if($Settings['AdminValidate']!="on") {
87 $nmquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."members\" WHERE \"id\">=%i AND \"HiddenMember\"='no' ORDER BY \"Joined\" DESC LIMIT 1", array(1,$Settings['ValidateGroup'])); 
88 $rnmquery = sql_pre_query("SELECT COUNT(*) FROM \"".$Settings['sqltable']."members\" WHERE \"id\">=%i AND \"HiddenMember\"='no'", array(1,$Settings['ValidateGroup'])); }
89 $nmresult = sql_query($nmquery,$SQLStat);
90 $rnmresult = sql_query($rnmquery,$SQLStat);
91 //$nummembers = sql_num_rows($nmresult);
92 $nummembers = sql_result($rnmresult,0);
93 sql_free_result($rnmresult);
94 $NewestMem = array(null);
95 $NewestMem['ID'] = "0"; $NewestMem['Name'] = "Anonymous";
96 if($nummembers>0) {
97 $NewestMem['ID']=sql_result($nmresult,0,"id");
98 $NewestMem['Name']=sql_result($nmresult,0,"Name");
99 $NewestMem['IP']=sql_result($nmresult,0,"IP"); }
100 if($nummembers<=0) { $NewestMem['ID'] = 0; }
101 if($NewestMem['ID']<=0) { $NewestMem['ID'] = "0"; $NewestMem['Name'] = "Anonymous"; $NewestMem['IP'] = "127.0.0.1"; }
102 $NewestMemTitle = null;
103 $NewestMemExtraIP = null;
104 if($GroupInfo['HasAdminCP']=="yes") {
105 $NewestMemTitle = " title=\"".$NewestMem['IP']."\"";
106 $NewestMemExtraIP = " (<a title=\"".$NewestMem['IP']."\" onclick=\"window.open(this.href);return false;\" href=\"".sprintf($IPCheckURL,$NewestMem['IP'])."\">".$NewestMem['IP']."</a>)"; }
107 $bdMonthChCk = GMTimeGet("m",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
108 $bdDayChCk = GMTimeGet("d",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
109 if($Settings['AdminValidate']=="on") {
110 $bdquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."members\" WHERE \"BirthDay\"=%i AND \"BirthMonth\"=%i AND \"HiddenMember\"='no' AND \"Validated\"='yes' AND \"GroupID\"<>%i ORDER BY \"id\"", array($bdDayChCk,$bdMonthChCk,$Settings['ValidateGroup'])); } 
111 if($Settings['AdminValidate']!="on") {
112 $bdquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."members\" WHERE \"BirthDay\"=%i AND \"BirthMonth\"=%i AND \"HiddenMember\"='no' ORDER BY \"id\"", array($bdDayChCk,$bdMonthChCk)); } 
113 $bdresult = sql_query($bdquery,$SQLStat);
114 $bdmembers = sql_num_rows($bdresult); $bdi = 0;
115 if($bdmembers>0) { $bdstring = $bdmembers." member(s) have a birthday today"; }
116 if($bdmembers<=0) { $bdstring = "<div>&nbsp;</div>No members have a birthday today<div>&nbsp;</div>"; }
117 while ($bdi < $bdmembers) {
118 $bdmemberz = $bdmembers - 1;
119 $birthday['ID']=sql_result($bdresult,$bdi,"id");
120 $birthday['Name']=sql_result($bdresult,$bdi,"Name");
121 $birthday['IP']=sql_result($bdresult,$bdi,"IP");
122 $birthday['BirthYear']=sql_result($bdresult,$bdi,"BirthYear");
123 $bdThisYear = GMTimeGet("Y",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
124 $birthday['Age'] = $bdThisYear - $birthday['BirthYear'];
125 $bdMemTitle = null;
126 if($GroupInfo['HasAdminCP']=="yes") {
127 $bdMemTitle = " title=\"".$birthday['IP']."\""; }
128 if($bdi===0) { $bdstring = $bdstring."\n<br />"; }
129 $bdMemURL = "<a".$bdMemTitle." href=\"".url_maker($exfile['member'],$Settings['file_ext'],"act=view&id=".$birthday['ID'],$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member'])."\">".$birthday['Name']."</a>";
130 if($bdi<$bdmemberz) { $bdstring = $bdstring.$bdMemURL." (<span style=\"font-weight: bold;\">".$birthday['Age']."</span>), "; }
131 if($bdi==$bdmemberz) { $bdstring = $bdstring.$bdMemURL." (<span style=\"font-weight: bold;\">".$birthday['Age']."</span>)"; }
132 ++$bdi; }
133 sql_free_result($bdresult);
134 ?>
135 <div class="StatsBorder">
136 <?php if($ThemeSet['TableStyle']=="div") { ?>
137 <div class="TableStatsRow1">
138 <span style="text-align: left;">
139 <?php echo $ThemeSet['TitleIcon']; ?><a id="bstats" href="<?php echo url_maker($exfile['index'],$Settings['file_ext'],"act=stats",$Settings['qstr'],$Settings['qsep'],$prexqstr['index'],$exqstr['index']); ?>#bstats">Board Statistics</a></span></div>
140 <?php } ?>
141 <table id="BoardStats" class="TableStats1">
142 <?php if($ThemeSet['TableStyle']=="table") { ?>
143 <tr class="TableStatsRow1">
144 <td class="TableStatsColumn1" colspan="2"><span style="text-align: left;">
145 <?php echo $ThemeSet['TitleIcon']; ?><a id="bstats" href="<?php echo url_maker($exfile['index'],$Settings['file_ext'],"act=stats",$Settings['qstr'],$Settings['qsep'],$prexqstr['index'],$exqstr['index']); ?>#bstats">Board Statistics</a></span>
146 </td>
147 </tr><?php } ?>
148 <tr id="Stats1" class="TableStatsRow2">
149 <td class="TableStatsColumn2" colspan="2" style="width: 100%; font-weight: bold;"><?php echo $uolnum; ?> users online</td>
150 </tr>
151 <tr class="TableStatsRow3" id="Stats2">
152 <td style="width: 4%;" class="TableStatsColumn3"><div class="statsicon">
153 <?php echo $ThemeSet['StatsIcon']; ?></div></td>
154 <td style="width: 96%;" class="TableStatsColumn3"><div class="statsinfo">
155 &nbsp;<span style="font-weight: bold;"><?php echo $olgn; ?></span> guests, <span style="font-weight: bold;"><?php echo $olmn; ?></span> members, <span style="font-weight: bold;"><?php echo $olan; ?></span> anonymous members <br />
156 <?php if($MembersOnline!=null) { ?>&nbsp;<?php echo $MembersOnline."\n<br />"; } ?>
157 &nbsp;Show detailed by: <a href="<?php echo url_maker($exfile['member'],$Settings['file_ext'],"act=online&list=all&page=1",$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member']); ?>">Last Click</a>, <a href="<?php echo url_maker($exfile['member'],$Settings['file_ext'],"act=online&list=members&page=1",$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member']); ?>">Member Name</a>
158 </div></td>
159 </tr>
160 <tr id="Stats3" class="TableStatsRow2">
161 <td class="TableStatsColumn2" colspan="2" style="width: 100%; font-weight: bold;">Today's Birthdays</td>
162 </tr>
163 <tr class="TableStatsRow3" id="Stats4">
164 <td style="width: 4%;" class="TableStatsColumn3"><div class="statsicon">
165 <?php echo $ThemeSet['StatsIcon']; ?></div></td>
166 <td style="width: 96%;" class="TableStatsColumn3"><div class="statsinfo">
167 <?php echo $bdstring; ?>
168 </div></td>
169 </tr>
170 <tr id="Stats5" class="TableStatsRow2">
171 <td class="TableStatsColumn2" colspan="2" style="width: 100%; font-weight: bold;">Board Stats</td>
172 </tr>
173 <tr class="TableStatsRow3" id="Stats6">
174 <td style="width: 4%;" class="TableStatsColumn3"><div class="statsicon">
175 <?php echo $ThemeSet['StatsIcon']; ?></div></td>
176 <td style="width: 96%;" class="TableStatsColumn3"><div class="statsinfo">
177 &nbsp;Our members have made a total of <?php echo $numposts; ?> posts<br />
178 &nbsp;Our members have made a total of <?php echo $numtopics; ?> topics<br />
179 &nbsp;We have <?php echo $nummembers; ?> registered members<br />
180 &nbsp;Our newest member is <a<?php echo $NewestMemTitle; ?> href="<?php echo url_maker($exfile['member'],$Settings['file_ext'],"act=view&id=".$NewestMem['ID'],$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member']); ?>"><?php echo $NewestMem['Name']; ?></a><?php echo $NewestMemExtraIP; ?>
181 </div></td>
182 </tr>
183 <tr id="Stats7" class="TableStatsRow4">
184 <td class="TableStatsColumn4" colspan="2">&nbsp;</td>
185 </tr>
186 </table></div>
187 <div class="DivStats">&nbsp;</div>
188 <?php } ?>