Small update
[iDB.git] / inc / stats.php
blobbaad3502628c607a3e13ea657c8c5ba884245445
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.
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.
11 Copyright 2004-2019 iDB Support - https://idb.osdn.jp/support/category.php?act=view&id=1
12 Copyright 2004-2019 Game Maker 2k - https://idb.osdn.jp/support/category.php?act=view&id=2
14 $FileInfo: stats.php - Last Update: 08/02/2019 SVN 905 - Author: cooldude2k $
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 if(isset($_SESSION['OldViewingPage'])) { $_SESSION['AncientViewingPage'] = $_SESSION['OldViewingPage']; } else { $_SESSION['AncientViewingPage'] = url_maker(null,"no+ext","act=view","&","=",$prexqstr['index'],$exqstr['index']); }
22 if(isset($_SESSION['OldViewingFile'])) { $_SESSION['AncientViewingFile'] = $_SESSION['OldViewingFile']; } else {
23 if($Settings['file_ext']!="no+ext"&&$Settings['file_ext']!="no ext") {
24 $_SESSION['AncientViewingFile'] = $exfile['index'].$Settings['file_ext']; }
25 if($Settings['file_ext']=="no+ext"||$Settings['file_ext']=="no ext") {
26 $_SESSION['AncientViewingFile'] = $exfile['index']; } }
27 if(isset($_SESSION['OldPreViewingTitle'])) { $_SESSION['AncientPreViewingTitle'] = $_SESSION['OldPreViewingTitle']; } else { $_SESSION['AncientPreViewingTitle'] = "Viewing"; }
28 if(isset($_SESSION['OldViewingTitle'])) { $_SESSION['AncientViewingTitle'] = $_SESSION['OldViewingTitle']; } else { $_SESSION['AncientViewingTitle'] = "Board index"; }
29 if(isset($_SESSION['OldExtraData'])) { $_SESSION['AncientExtraData'] = $_SESSION['OldExtraData']; } else { $_SESSION['AncientExtraData'] = "currentact:view; currentcategoryid:0; currentforumid:0; currenttopicid:0; currentmessageid:0; currenteventid:0; currentmemberid:0;"; }
30 if(isset($_SESSION['ViewingPage'])) { $_SESSION['OldViewingPage'] = $_SESSION['ViewingPage']; } else { $_SESSION['OldViewingPage'] = url_maker(null,"no+ext","act=view","&","=",$prexqstr['index'],$exqstr['index']); }
31 if(isset($_SESSION['ViewingFile'])) { $_SESSION['OldViewingFile'] = $_SESSION['ViewingFile']; } else {
32 if($Settings['file_ext']!="no+ext"&&$Settings['file_ext']!="no ext") {
33 $_SESSION['OldViewingFile'] = $exfile['index'].$Settings['file_ext']; }
34 if($Settings['file_ext']=="no+ext"||$Settings['file_ext']=="no ext") {
35 $_SESSION['OldViewingFile'] = $exfile['index']; } }
36 if(isset($_SESSION['PreViewingTitle'])) { $_SESSION['OldPreViewingTitle'] = $_SESSION['PreViewingTitle']; } else { $_SESSION['OldPreViewingTitle'] = "Viewing"; }
37 if(isset($_SESSION['ViewingTitle'])) { $_SESSION['OldViewingTitle'] = $_SESSION['ViewingTitle']; } else { $_SESSION['OldViewingTitle'] = "Board index"; }
38 if(isset($_SESSION['ExtraData'])) { $_SESSION['OldExtraData'] = $_SESSION['ExtraData']; } else { $_SESSION['OldExtraData'] = "currentact:view; currentcategoryid:0; currentforumid:0; currenttopicid:0; currentmessageid:0; currenteventid:0; currentmemberid:0;"; }
39 $_SESSION['ViewingPage'] = url_maker(null,"no+ext","act=stats","&","=",$prexqstr['index'],$exqstr['index']);
40 if($Settings['file_ext']!="no+ext"&&$Settings['file_ext']!="no ext") {
41 $_SESSION['ViewingFile'] = $exfile['index'].$Settings['file_ext']; }
42 if($Settings['file_ext']=="no+ext"||$Settings['file_ext']=="no ext") {
43 $_SESSION['ViewingFile'] = $exfile['index']; }
44 $_SESSION['PreViewingTitle'] = "Viewing";
45 $_SESSION['ViewingTitle'] = "Board Stats";
46 $_SESSION['ExtraData'] = "currentact:".$_GET['act']."; currentcategoryid:0; currentforumid:0; currenttopicid:0; currentmessageid:0; currenteventid:0; currentmemberid:0;";
48 <div class="NavLinks"><?php echo $ThemeSet['NavLinkIcon']; ?><a href="<?php echo url_maker($exfile['index'],$Settings['file_ext'],"act=view",$Settings['qstr'],$Settings['qsep'],$prexqstr['index'],$exqstr['index']); ?>"><?php echo $Settings['board_name']; ?></a><?php echo $ThemeSet['NavLinkDivider']; ?><a href="<?php echo url_maker($exfile['index'],$Settings['file_ext'],"act=stats",$Settings['qstr'],$Settings['qsep'],$prexqstr['index'],$exqstr['index']); ?>#bstats">Board Statistics</a></div>
49 <div class="DivNavLinks">&nbsp;</div>
50 <?php }
51 $uolcuttime = $utccurtime->getTimestamp();
52 $uoltime = $uolcuttime - ini_get("session.gc_maxlifetime");
53 $uolquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."sessions\" WHERE \"expires\" >= %i ORDER BY \"expires\" DESC", array($uoltime));
54 $uolresult=sql_query($uolquery,$SQLStat);
55 $uolnum=sql_num_rows($uolresult);
56 $uoli=0; $olmn = 0; $olgn = 0; $olan = 0; $olmbn = 0;
57 $MembersOnline = null; $GuestsOnline = null;
58 while ($uoli < $uolnum) {
59 $session_data=sql_result($uolresult,$uoli,"session_data");
60 $serialized_data=sql_result($uolresult,$uoli,"serialized_data");
61 $session_user_agent=sql_result($uolresult,$uoli,"user_agent");
62 $session_ip_address=sql_result($uolresult,$uoli,"ip_address");
63 //$UserSessInfo = unserialize_session($session_data);
64 $UserSessInfo = unserialize($serialized_data);
65 if(!isset($UserSessInfo['UserGroup'])) { $UserSessInfo['UserGroup'] = $Settings['GuestGroup']; }
66 $AmIHiddenUser = "no";
67 $user_agent_check = false;
68 if(user_agent_check($session_user_agent)) {
69 $user_agent_check = user_agent_check($session_user_agent); }
70 if($UserSessInfo['UserGroup']!=$Settings['GuestGroup']||$user_agent_check!==false) {
71 $PreAmIHiddenUser = GetUserName($UserSessInfo['UserID'],$Settings['sqltable'],$SQLStat);
72 $AmIHiddenUser = $PreAmIHiddenUser['Hidden'];
73 if(($AmIHiddenUser=="no"&&$UserSessInfo['UserID']>0)||$user_agent_check!==false) {
74 if($olmbn>0) { $MembersOnline .= ", "; }
75 if($user_agent_check===false) {
76 $uatitleadd = null;
77 if($GroupInfo['CanViewUserAgent']=="yes") { $uatitleadd = " title=\"".htmlentities($session_user_agent, ENT_QUOTES, $Settings['charset'])."\""; }
78 $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>";
79 if($GroupInfo['CanViewIPAddress']=="yes") {
80 $MembersOnline .= " (<a title=\"".$session_ip_address."\" onclick=\"window.open(this.href);return false;\" href=\"".sprintf($IPCheckURL,$session_ip_address)."\">".$session_ip_address."</a>)"; }
81 ++$olmn; ++$olmbn; }
82 if($user_agent_check!==false) {
83 $uatitleadd = null;
84 if($GroupInfo['CanViewUserAgent']=="yes") { $uatitleadd = " title=\"".htmlentities($session_user_agent, ENT_QUOTES, $Settings['charset'])."\""; }
85 $MembersOnline .= "<span".$uatitleadd.">".$user_agent_check."</span>";
86 if($GroupInfo['CanViewIPAddress']=="yes") {
87 $MembersOnline .= " (<a title=\"".$session_ip_address."\" onclick=\"window.open(this.href);return false;\" href=\"".sprintf($IPCheckURL,$session_ip_address)."\">".$session_ip_address."</a>)"; }
88 ++$olmbn; } }
89 if($UserSessInfo['UserID']<=0||$AmIHiddenUser=="yes") {
90 if($user_agent_check===false) {
91 ++$olan; } } }
92 if($UserSessInfo['UserGroup']==$Settings['GuestGroup']) {
93 /*$uatitleadd = null;
94 if($GroupInfo['CanViewUserAgent']=="yes") { $uatitleadd = " title=\"".htmlentities($session_user_agent, ENT_QUOTES, $Settings['charset'])."\""; }
95 $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>";
96 if($GroupInfo['CanViewIPAddress']=="yes") {
97 $GuestsOnline .= " (<a title=\"".$session_ip_address."\" onclick=\"window.open(this.href);return false;\" href=\"".sprintf($IPCheckURL,$session_ip_address)."\">".$session_ip_address."</a>)"; } */
98 ++$olgn; }
99 ++$uoli; }
100 if($_GET['act']=="view"||$_GET['act']=="stats") {
101 $ntquery = sql_pre_query("SELECT COUNT(*) FROM \"".$Settings['sqltable']."topics\"".$ForumIgnoreList3, array(null));
102 $ntresult = sql_query($ntquery,$SQLStat);
103 $numtopics = sql_result($ntresult,0);
104 sql_free_result($ntresult);
105 $npquery = sql_pre_query("SELECT COUNT(*) FROM \"".$Settings['sqltable']."posts\"".$ForumIgnoreList3, array(null));
106 $npresult = sql_query($npquery,$SQLStat);
107 $numposts = sql_result($npresult,0);
108 sql_free_result($npresult);
109 if($Settings['AdminValidate']=="on") {
110 $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']));
111 $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'])); }
112 if($Settings['AdminValidate']!="on") {
113 $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']));
114 $rnmquery = sql_pre_query("SELECT COUNT(*) FROM \"".$Settings['sqltable']."members\" WHERE \"id\">=%i AND \"HiddenMember\"='no'", array(1,$Settings['ValidateGroup'])); }
115 $nmresult = sql_query($nmquery,$SQLStat);
116 $rnmresult = sql_query($rnmquery,$SQLStat);
117 //$nummembers = sql_num_rows($nmresult);
118 $nummembers = sql_result($rnmresult,0);
119 sql_free_result($rnmresult);
120 $NewestMem = array(null);
121 $NewestMem['ID'] = "0"; $NewestMem['Name'] = "Anonymous";
122 if($nummembers>0) {
123 $NewestMem['ID']=sql_result($nmresult,0,"id");
124 $NewestMem['Name']=sql_result($nmresult,0,"Name");
125 $NewestMem['IP']=sql_result($nmresult,0,"IP"); }
126 if($nummembers<=0) { $NewestMem['ID'] = 0; }
127 if($NewestMem['ID']<=0) { $NewestMem['ID'] = "0"; $NewestMem['Name'] = "Anonymous"; $NewestMem['IP'] = "127.0.0.1"; }
128 $NewestMemTitle = null;
129 $NewestMemExtraIP = null;
130 if($GroupInfo['CanViewIPAddress']=="yes") {
131 $NewestMemTitle = " title=\"".$NewestMem['IP']."\"";
132 $NewestMemExtraIP = " (<a title=\"".$NewestMem['IP']."\" onclick=\"window.open(this.href);return false;\" href=\"".sprintf($IPCheckURL,$NewestMem['IP'])."\">".$NewestMem['IP']."</a>)"; }
133 $bdMonthChCk = $usercurtime->format("m");
134 $bdDayChCk = $usercurtime->format("d");
135 if($Settings['AdminValidate']=="on") {
136 $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'])); }
137 if($Settings['AdminValidate']!="on") {
138 $bdquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."members\" WHERE \"BirthDay\"=%i AND \"BirthMonth\"=%i AND \"HiddenMember\"='no' ORDER BY \"id\"", array($bdDayChCk,$bdMonthChCk)); }
139 $bdresult = sql_query($bdquery,$SQLStat);
140 $bdmembers = sql_num_rows($bdresult); $bdi = 0;
141 if($bdmembers>0) { $bdstring = "&nbsp;".$bdmembers." member(s) have a birthday today"; }
142 if($bdmembers<=0) { $bdstring = "<div>&nbsp;</div>&nbsp;No members have a birthday today<div>&nbsp;</div>"; }
143 while ($bdi < $bdmembers) {
144 $bdmemberz = $bdmembers - 1;
145 $birthday['ID']=sql_result($bdresult,$bdi,"id");
146 $birthday['Name']=sql_result($bdresult,$bdi,"Name");
147 $birthday['IP']=sql_result($bdresult,$bdi,"IP");
148 $birthday['BirthYear']=sql_result($bdresult,$bdi,"BirthYear");
149 $bdThisYear = $usercurtime->format("Y");
150 $birthday['Age'] = $bdThisYear - $birthday['BirthYear'];
151 $bdMemTitle = null;
152 if($GroupInfo['HasAdminCP']=="yes") {
153 $bdMemTitle = " title=\"".$birthday['IP']."\""; }
154 if($bdi===0) { $bdstring = $bdstring."\n<br />&nbsp;"; }
155 $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>";
156 if($bdi<$bdmemberz) { $bdstring = $bdstring.$bdMemURL." (<span style=\"font-weight: bold;\" title=\"".$birthday['Name']." is ".$birthday['Age']." years old\">".$birthday['Age']."</span>), "; }
157 if($bdi==$bdmemberz) { $bdstring = $bdstring.$bdMemURL." (<span style=\"font-weight: bold;\" title=\"".$birthday['Name']." is ".$birthday['Age']." years old\">".$birthday['Age']."</span>)"; }
158 ++$bdi; }
159 sql_free_result($bdresult);
160 $evcur_month = $usercurtime->format("m");
161 $evcur_day = $usercurtime->format("d");
162 $evcur_year = $usercurtime->format("Y");
163 $evcur_start = mktime(0,0,0,$evcur_month,$evcur_day,$evcur_year);
164 $evcur_start_month = date("m", $evcur_start);
165 $evcur_start_day = date("d", $evcur_start);
166 $evcur_start_year = date("Y", $evcur_start);
167 $evcur_end = mktime(23,59,59,$evcur_month,$evcur_day+15,$evcur_year);
168 $evcur_end_month = date("m", $evcur_end);
169 $evcur_end_day = date("d", $evcur_end);
170 $evcur_end_year = date("Y", $evcur_end);
171 $evquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."events\" WHERE (\"TimeStamp\">=%i AND \"TimeStamp\"<=%i) OR (\"TimeStampEnd\">=%i AND \"TimeStampEnd\"<=%i) ORDER BY \"TimeStamp\"", array($evcur_start,$evcur_end,$evcur_start,$evcur_end));
172 $evresult = sql_query($evquery,$SQLStat);
173 $evevents = sql_num_rows($evresult); $evi = 0;
174 if($evevents>0) { $evstring = "&nbsp;".$evevents." upcoming events"; }
175 if($evevents<=0) { $evstring = "<div>&nbsp;</div>&nbsp;There are no upcoming calendar events<div>&nbsp;</div>"; }
176 while ($evi < $evevents) {
177 $eveventz = $evevents - 1;
178 $getevent['ID']=sql_result($evresult,$evi,"id");
179 $getevent['EventName']=sql_result($evresult,$evi,"EventName");
180 $getevent['TimeStamp']=sql_result($evresult,$evi,"TimeStamp");
181 $getevent['TimeStampEnd']=sql_result($evresult,$evi,"TimeStampEnd");
182 $eventstartcurtime = new DateTime();
183 $eventstartcurtime->setTimestamp($getevent['TimeStamp']);
184 $eventstartcurtime->setTimezone($usertz);
185 $eventendcurtime = new DateTime();
186 $eventendcurtime->setTimestamp($getevent['TimeStampEnd']);
187 $eventendcurtime->setTimezone($usertz);
188 $GetEventStart=$eventstartcurtime->format($Settings['idb_date_format']);
189 $GetEventEnd=$eventendcurtime->format($Settings['idb_date_format']);
190 if($GetEventStart==$GetEventEnd) {
191 $evEventTitle = " title=\"Event Start: ".$GetEventStart."\""; }
192 if($GetEventStart!=$GetEventEnd) {
193 $evEventTitle = " title=\"Event Start: ".$GetEventStart." | Event End: ".$GetEventEnd."\""; }
194 if($evi===0) { $evstring = $evstring."\n<br />&nbsp;"; }
195 $evEventURL = "<a".$evEventTitle." href=\"".url_maker($exfile['event'],$Settings['file_ext'],"act=event&id=".$getevent['ID'],$Settings['qstr'],$Settings['qsep'],$prexqstr['event'],$exqstr['event'])."\">".$getevent['EventName']."</a>";
196 if($evi<$eveventz) { $evstring = $evstring.$evEventURL.", "; }
197 if($evi==$eveventz) { $evstring = $evstring.$evEventURL; }
198 ++$evi; }
199 sql_free_result($evresult);
200 $active_month = $usercurtime->format("m");
201 $active_day = $usercurtime->format("d");
202 $active_year = $usercurtime->format("Y");
203 $active_start = mktime(0,0,0,$active_month,$active_day,$active_year);
204 $active_end = mktime(23,59,59,$active_month,$active_day,$active_year);
205 $tdMembersOnline = null;
206 $ggquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."groups\" WHERE \"Name\"='%s'", array($Settings['GuestGroup']));
207 $ggresult=sql_query($ggquery,$SQLStat);
208 $GGroup=sql_result($ggresult,0,"id");
209 sql_free_result($ggresult);
210 $tdquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."members\" WHERE \"GroupID\"<>%i AND \"id\">=0 AND \"HiddenMember\"='no' AND (\"LastActive\">=%i AND \"LastActive\"<=%i) ORDER BY \"LastActive\" DESC", array($GGroup,$active_start,$active_end));
211 $tdrnquery = sql_pre_query("SELECT COUNT(*) FROM \"".$Settings['sqltable']."members\" WHERE \"GroupID\"<>%i AND \"id\">=0 AND \"HiddenMember\"='no' AND (\"LastActive\">=%i AND \"LastActive\"<=%i)", array($GGroup,$active_start,$active_end));
212 $tdrnresult=sql_query($tdrnquery,$SQLStat);
213 $tdNumberMembers=sql_result($tdrnresult,0);
214 $tdresult=sql_query($tdquery,$SQLStat);
215 $tdnum=sql_num_rows($tdresult);
216 $tdi=0;
217 while($tdi < $tdnum) {
218 $tdMemList['ID']=sql_result($tdresult,$tdi,"id");
219 $tdMemList['Name']=sql_result($tdresult,$tdi,"Name");
220 $tdMemList['IP']=sql_result($tdresult,$tdi,"IP");
221 $tdMemList['LastActive']=sql_result($tdresult,$tdi,"LastActive");
222 $tmpusrcurtime = new DateTime();
223 $tmpusrcurtime->setTimestamp($tdMemList['LastActive']);
224 $tmpusrcurtime->setTimezone($usertz);
225 $tdMemList['LastActive']=$tmpusrcurtime->format("M j Y, ".$_SESSION['iDBTimeFormat']);
226 if($tdi>0) { $tdMembersOnline .= ", "; }
227 $tdMembersOnline .= "<a title=\"".$tdMemList['Name']." was last active at ".$tdMemList['LastActive']."\" href=\"".url_maker($exfile['member'],$Settings['file_ext'],"act=view&id=".$tdMemList['ID'],$Settings['qstr'],$Settings['qsep'],$prexqstr['member'],$exqstr['member'])."\">".$tdMemList['Name']."</a>";
228 if($GroupInfo['CanViewIPAddress']=="yes") {
229 $tdMembersOnline .= " (<a title=\"".$tdMemList['IP']."\" onclick=\"window.open(this.href);return false;\" href=\"".sprintf($IPCheckURL,$tdMemList['IP'])."\">".$tdMemList['IP']."</a>)"; }
230 ++$tdi; }
232 <div class="StatsBorder">
233 <?php if($ThemeSet['TableStyle']=="div") { ?>
234 <div class="TableStatsRow1">
235 <span style="text-align: left;">
236 <?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>
237 <?php } ?>
238 <table id="BoardStats" class="TableStats1">
239 <?php if($ThemeSet['TableStyle']=="table") { ?>
240 <tr class="TableStatsRow1">
241 <td class="TableStatsColumn1" colspan="2"><span style="text-align: left;">
242 <?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>
243 </td>
244 </tr><?php } ?>
245 <tr id="Stats1" class="TableStatsRow2">
246 <td class="TableStatsColumn2" colspan="2" style="width: 100%; font-weight: bold;"><?php echo $uolnum; ?> users online</td>
247 </tr>
248 <tr class="TableStatsRow3" id="Stats2">
249 <td style="width: 4%;" class="TableStatsColumn3"><div class="statsicon">
250 <?php echo $ThemeSet['MemberStatsIcon']; ?></div></td>
251 <td style="width: 96%;" class="TableStatsColumn3"><div class="statsinfo">
252 &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 />
253 <?php if($MembersOnline==null) { ?>&nbsp;<?php echo "\n<br />"; } ?>
254 <?php if($MembersOnline!=null) { ?>&nbsp;<?php echo $MembersOnline."\n<br />"; } ?>
255 &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>
256 </div></td>
257 </tr>
258 <tr id="Stats3" class="TableStatsRow2">
259 <td class="TableStatsColumn2" colspan="2" style="width: 100%; font-weight: bold;">Today's Birthdays</td>
260 </tr>
261 <tr class="TableStatsRow3" id="Stats4">
262 <td style="width: 4%;" class="TableStatsColumn3"><div class="statsicon">
263 <?php echo $ThemeSet['BirthdayStatsIcon']; ?></div></td>
264 <td style="width: 96%;" class="TableStatsColumn3"><div class="statsinfo">
265 <?php echo $bdstring; ?>
266 </div></td>
267 </tr>
268 <tr id="Stats5" class="TableStatsRow2">
269 <td class="TableStatsColumn2" colspan="2" style="width: 100%; font-weight: bold;">Upcoming Events</td>
270 </tr>
271 <tr class="TableStatsRow3" id="Stats6">
272 <td style="width: 4%;" class="TableStatsColumn3"><div class="statsicon">
273 <?php echo $ThemeSet['EventStatsIcon']; ?></div></td>
274 <td style="width: 96%;" class="TableStatsColumn3"><div class="statsinfo">
275 <?php echo $evstring; ?>
276 </div></td>
277 </tr>
278 <tr id="Stats7" class="TableStatsRow2">
279 <td class="TableStatsColumn2" colspan="2" style="width: 100%; font-weight: bold;">Board Stats</td>
280 </tr>
281 <tr class="TableStatsRow3" id="Stats8">
282 <td style="width: 4%;" class="TableStatsColumn3"><div class="statsicon">
283 <?php echo $ThemeSet['BoardStatsIcon']; ?></div></td>
284 <td style="width: 96%;" class="TableStatsColumn3"><div class="statsinfo">
285 &nbsp;Our members have made a total of <?php echo $numposts; ?> posts<br />
286 &nbsp;Our members have made a total of <?php echo $numtopics; ?> topics<br />
287 &nbsp;We have <?php echo $nummembers; ?> registered members<br />
288 &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; ?>
289 </div></td>
290 </tr>
291 <tr id="Stats9" class="TableStatsRow2">
292 <td class="TableStatsColumn2" colspan="2" style="width: 100%; font-weight: bold;">Members Online Today: <?php echo $tdNumberMembers; ?></td>
293 </tr>
294 <tr class="TableStatsRow3" id="Stats10">
295 <td style="width: 4%;" class="TableStatsColumn3"><div class="statsicon">
296 <?php echo $ThemeSet['OnlineStatsIcon']; ?></div></td>
297 <td style="width: 96%;" class="TableStatsColumn3"><div class="statsinfo">
298 &nbsp;Number of members online today: <?php echo $tdNumberMembers; ?><br />
299 &nbsp;The following members have visited today:<br />
300 &nbsp;<?php echo $tdMembersOnline; ?>
301 </div></td>
302 </tr>
303 <tr id="Stats10" class="TableStatsRow4">
304 <td class="TableStatsColumn4" colspan="2">&nbsp;</td>
305 </tr>
306 </table></div>
307 <div class="DivStats">&nbsp;</div>
308 <?php } ?>