OSDN Git Service

Delete versioninfo.php
[idb/iDB.git.git] / inc / stats.php
index 7ff9877..f85ba89 100644 (file)
@@ -8,16 +8,34 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     Revised BSD License for more details.
 
-    Copyright 2004-2014 iDB Support - http://idb.berlios.de/
-    Copyright 2004-2014 Game Maker 2k - http://gamemaker2k.org/
+    Copyright 2004-2017 iDB Support - http://idb.berlios.de/
+    Copyright 2004-2017 Game Maker 2k - http://gamemaker2k.org/
 
-    $FileInfo: stats.php - Last Update: 07/10/2014 SVN 788 - Author: cooldude2k $
+    $FileInfo: stats.php - Last Update: 03/31/2019 SVN 888 - Author: cooldude2k $
 */
 $File3Name = basename($_SERVER['SCRIPT_NAME']);
 if ($File3Name=="stats.php"||$File3Name=="/stats.php") {
        require('index.php');
        exit(); }
 if($_GET['act']=="stats") {
+if(isset($_SESSION['OldViewingPage'])) { $_SESSION['AncientViewingPage'] = $_SESSION['OldViewingPage']; } else { $_SESSION['AncientViewingPage'] = url_maker(null,"no+ext","act=view","&","=",$prexqstr['index'],$exqstr['index']); }
+if(isset($_SESSION['OldViewingFile'])) { $_SESSION['AncientViewingFile'] = $_SESSION['OldViewingFile']; } else { 
+        if($Settings['file_ext']!="no+ext"&&$Settings['file_ext']!="no ext") {
+           $_SESSION['AncientViewingFile'] = $exfile['index'].$Settings['file_ext']; }
+        if($Settings['file_ext']=="no+ext"||$Settings['file_ext']=="no ext") {
+           $_SESSION['AncientViewingFile'] = $exfile['index']; } }
+if(isset($_SESSION['OldPreViewingTitle'])) { $_SESSION['AncientPreViewingTitle'] = $_SESSION['OldPreViewingTitle']; } else { $_SESSION['AncientPreViewingTitle'] = "Viewing"; }
+if(isset($_SESSION['OldViewingTitle'])) { $_SESSION['AncientViewingTitle'] = $_SESSION['OldViewingTitle']; } else { $_SESSION['AncientViewingTitle'] = "Board index"; }
+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;"; }
+if(isset($_SESSION['ViewingPage'])) { $_SESSION['OldViewingPage'] = $_SESSION['ViewingPage']; } else { $_SESSION['OldViewingPage'] = url_maker(null,"no+ext","act=view","&","=",$prexqstr['index'],$exqstr['index']); }
+if(isset($_SESSION['ViewingFile'])) { $_SESSION['OldViewingFile'] = $_SESSION['ViewingFile']; } else { 
+        if($Settings['file_ext']!="no+ext"&&$Settings['file_ext']!="no ext") {
+           $_SESSION['OldViewingFile'] = $exfile['index'].$Settings['file_ext']; }
+        if($Settings['file_ext']=="no+ext"||$Settings['file_ext']=="no ext") {
+           $_SESSION['OldViewingFile'] = $exfile['index']; } }
+if(isset($_SESSION['PreViewingTitle'])) { $_SESSION['OldPreViewingTitle'] = $_SESSION['PreViewingTitle']; } else { $_SESSION['OldPreViewingTitle'] = "Viewing"; }
+if(isset($_SESSION['ViewingTitle'])) { $_SESSION['OldViewingTitle'] = $_SESSION['ViewingTitle']; } else { $_SESSION['OldViewingTitle'] = "Board index"; }
+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;"; }
 $_SESSION['ViewingPage'] = url_maker(null,"no+ext","act=stats","&","=",$prexqstr['index'],$exqstr['index']);
 if($Settings['file_ext']!="no+ext"&&$Settings['file_ext']!="no ext") {
 $_SESSION['ViewingFile'] = $exfile['index'].$Settings['file_ext']; }
@@ -30,7 +48,7 @@ $_SESSION['ExtraData'] = "currentact:".$_GET['act']."; currentcategoryid:0; curr
 <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>
 <div class="DivNavLinks">&nbsp;</div>
 <?php }
-$uolcuttime = GMTimeStamp();
+$uolcuttime = $utccurtime->getTimestamp();
 $uoltime = $uolcuttime - ini_get("session.gc_maxlifetime");
 $uolquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."sessions\" WHERE \"expires\" >= %i ORDER BY \"expires\" DESC", array($uoltime));
 $uolresult=sql_query($uolquery,$SQLStat);
@@ -112,15 +130,15 @@ $NewestMemExtraIP = null;
 if($GroupInfo['CanViewIPAddress']=="yes") {
 $NewestMemTitle = " title=\"".$NewestMem['IP']."\"";
 $NewestMemExtraIP = " (<a title=\"".$NewestMem['IP']."\" onclick=\"window.open(this.href);return false;\" href=\"".sprintf($IPCheckURL,$NewestMem['IP'])."\">".$NewestMem['IP']."</a>)"; }
-$bdMonthChCk = GMTimeGet("m",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
-$bdDayChCk = GMTimeGet("d",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$bdMonthChCk = $usercurtime->format("m");
+$bdDayChCk = $usercurtime->format("d");
 if($Settings['AdminValidate']=="on") {
 $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'])); } 
 if($Settings['AdminValidate']!="on") {
 $bdquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."members\" WHERE \"BirthDay\"=%i AND \"BirthMonth\"=%i AND \"HiddenMember\"='no' ORDER BY \"id\"", array($bdDayChCk,$bdMonthChCk)); } 
 $bdresult = sql_query($bdquery,$SQLStat);
 $bdmembers = sql_num_rows($bdresult); $bdi = 0;
-if($bdmembers>0) { $bdstring = $bdmembers." member(s) have a birthday today"; }
+if($bdmembers>0) { $bdstring = "&nbsp;".$bdmembers." member(s) have a birthday today"; }
 if($bdmembers<=0) { $bdstring = "<div>&nbsp;</div>&nbsp;No members have a birthday today<div>&nbsp;</div>"; }
 while ($bdi < $bdmembers) {
 $bdmemberz = $bdmembers - 1;
@@ -128,17 +146,88 @@ $birthday['ID']=sql_result($bdresult,$bdi,"id");
 $birthday['Name']=sql_result($bdresult,$bdi,"Name");
 $birthday['IP']=sql_result($bdresult,$bdi,"IP");
 $birthday['BirthYear']=sql_result($bdresult,$bdi,"BirthYear");
-$bdThisYear = GMTimeGet("Y",$_SESSION['UserTimeZone'],0,$_SESSION['UserDST']);
+$bdThisYear = $usercurtime->format("Y");
 $birthday['Age'] = $bdThisYear - $birthday['BirthYear'];
 $bdMemTitle = null;
 if($GroupInfo['HasAdminCP']=="yes") {
 $bdMemTitle = " title=\"".$birthday['IP']."\""; }
 if($bdi===0) { $bdstring = $bdstring."\n<br />&nbsp;"; }
 $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>";
-if($bdi<$bdmemberz) { $bdstring = $bdstring.$bdMemURL." (<span style=\"font-weight: bold;\">".$birthday['Age']."</span>), "; }
-if($bdi==$bdmemberz) { $bdstring = $bdstring.$bdMemURL." (<span style=\"font-weight: bold;\">".$birthday['Age']."</span>)"; }
+if($bdi<$bdmemberz) { $bdstring = $bdstring.$bdMemURL." (<span style=\"font-weight: bold;\" title=\"".$birthday['Name']." is ".$birthday['Age']." years old\">".$birthday['Age']."</span>), "; }
+if($bdi==$bdmemberz) { $bdstring = $bdstring.$bdMemURL." (<span style=\"font-weight: bold;\" title=\"".$birthday['Name']." is ".$birthday['Age']." years old\">".$birthday['Age']."</span>)"; }
 ++$bdi; }
 sql_free_result($bdresult);
+$evcur_month = $usercurtime->format("m");
+$evcur_day = $usercurtime->format("d");
+$evcur_year = $usercurtime->format("Y");
+$evcur_start = mktime(0,0,0,$evcur_month,$evcur_day,$evcur_year);
+$evcur_start_month = date("m", $evcur_start);
+$evcur_start_day = date("d", $evcur_start);
+$evcur_start_year = date("Y", $evcur_start);
+$evcur_end = mktime(23,59,59,$evcur_month,$evcur_day+15,$evcur_year);
+$evcur_end_month = date("m", $evcur_end);
+$evcur_end_day = date("d", $evcur_end);
+$evcur_end_year = date("Y", $evcur_end);
+$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)); 
+$evresult = sql_query($evquery,$SQLStat);
+$evevents = sql_num_rows($evresult); $evi = 0;
+if($evevents>0) { $evstring = "&nbsp;".$evevents." upcoming events"; }
+if($evevents<=0) { $evstring = "<div>&nbsp;</div>&nbsp;There are no upcoming calendar events<div>&nbsp;</div>"; }
+while ($evi < $evevents) {
+$eveventz = $evevents - 1;
+$getevent['ID']=sql_result($evresult,$evi,"id");
+$getevent['EventName']=sql_result($evresult,$evi,"EventName");
+$getevent['TimeStamp']=sql_result($evresult,$evi,"TimeStamp");
+$getevent['TimeStampEnd']=sql_result($evresult,$evi,"TimeStampEnd");
+$eventstartcurtime = new DateTime();
+$eventstartcurtime->setTimestamp($getevent['TimeStamp']);
+$eventstartcurtime->setTimezone($usertz);
+$eventendcurtime = new DateTime();
+$eventendcurtime->setTimestamp($getevent['TimeStampEnd']);
+$eventendcurtime->setTimezone($usertz);
+$GetEventStart=$eventstartcurtime->format($Settings['idb_date_format']);
+$GetEventEnd=$eventendcurtime->format($Settings['idb_date_format']);
+if($GetEventStart==$GetEventEnd) {
+ $evEventTitle = " title=\"Event Start: ".$GetEventStart."\""; }
+if($GetEventStart!=$GetEventEnd) {
+ $evEventTitle = " title=\"Event Start: ".$GetEventStart." | Event End: ".$GetEventEnd."\""; }
+if($evi===0) { $evstring = $evstring."\n<br />&nbsp;"; }
+$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>";
+if($evi<$eveventz) { $evstring = $evstring.$evEventURL.", "; }
+if($evi==$eveventz) { $evstring = $evstring.$evEventURL; }
+++$evi; }
+sql_free_result($evresult);
+$active_month = $usercurtime->format("m");
+$active_day = $usercurtime->format("d");
+$active_year = $usercurtime->format("Y");
+$active_start = mktime(0,0,0,$active_month,$active_day,$active_year);
+$active_end = mktime(23,59,59,$active_month,$active_day,$active_year);
+$tdMembersOnline = null;
+$ggquery = sql_pre_query("SELECT * FROM \"".$Settings['sqltable']."groups\" WHERE \"Name\"='%s'", array($Settings['GuestGroup']));
+$ggresult=sql_query($ggquery,$SQLStat);
+$GGroup=sql_result($ggresult,0,"id");
+sql_free_result($ggresult);
+$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)); 
+$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));
+$tdrnresult=sql_query($tdrnquery,$SQLStat);
+$tdNumberMembers=sql_result($tdrnresult,0);
+$tdresult=sql_query($tdquery,$SQLStat);
+$tdnum=sql_num_rows($tdresult);
+$tdi=0;
+while($tdi < $tdnum) {
+$tdMemList['ID']=sql_result($tdresult,$tdi,"id");
+$tdMemList['Name']=sql_result($tdresult,$tdi,"Name");
+$tdMemList['IP']=sql_result($tdresult,$tdi,"IP");
+$tdMemList['LastActive']=sql_result($tdresult,$tdi,"LastActive");
+$tmpusrcurtime = new DateTime();
+$tmpusrcurtime->setTimestamp($tdMemList['LastActive']);
+$tmpusrcurtime->setTimezone($usertz);
+$tdMemList['LastActive']=$tmpusrcurtime->format("M j Y, ".$_SESSION['iDBTimeFormat']);
+if($tdi>0) { $tdMembersOnline .= ", "; }
+$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>"; 
+if($GroupInfo['CanViewIPAddress']=="yes") {
+$tdMembersOnline .= " (<a title=\"".$tdMemList['IP']."\" onclick=\"window.open(this.href);return false;\" href=\"".sprintf($IPCheckURL,$tdMemList['IP'])."\">".$tdMemList['IP']."</a>)"; }
+++$tdi; }
 ?>
 <div class="StatsBorder">
 <?php if($ThemeSet['TableStyle']=="div") { ?>
@@ -158,9 +247,10 @@ sql_free_result($bdresult);
 </tr>
 <tr class="TableStatsRow3" id="Stats2">
 <td style="width: 4%;" class="TableStatsColumn3"><div class="statsicon">
-<?php echo $ThemeSet['StatsIcon']; ?></div></td>
+<?php echo $ThemeSet['MemberStatsIcon']; ?></div></td>
 <td style="width: 96%;" class="TableStatsColumn3"><div class="statsinfo">
 &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 />
+<?php if($MembersOnline==null) { ?>&nbsp;<?php echo "\n<br />"; } ?>
 <?php if($MembersOnline!=null) { ?>&nbsp;<?php echo $MembersOnline."\n<br />"; } ?>
 &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>
 </div></td>
@@ -170,17 +260,27 @@ sql_free_result($bdresult);
 </tr>
 <tr class="TableStatsRow3" id="Stats4">
 <td style="width: 4%;" class="TableStatsColumn3"><div class="statsicon">
-<?php echo $ThemeSet['StatsIcon']; ?></div></td>
+<?php echo $ThemeSet['BirthdayStatsIcon']; ?></div></td>
 <td style="width: 96%;" class="TableStatsColumn3"><div class="statsinfo">
 <?php echo $bdstring; ?>
 </div></td>
 </tr>
 <tr id="Stats5" class="TableStatsRow2">
-<td class="TableStatsColumn2" colspan="2" style="width: 100%; font-weight: bold;">Board Stats</td>
+<td class="TableStatsColumn2" colspan="2" style="width: 100%; font-weight: bold;">Upcoming Events</td>
 </tr>
 <tr class="TableStatsRow3" id="Stats6">
 <td style="width: 4%;" class="TableStatsColumn3"><div class="statsicon">
-<?php echo $ThemeSet['StatsIcon']; ?></div></td>
+<?php echo $ThemeSet['EventStatsIcon']; ?></div></td>
+<td style="width: 96%;" class="TableStatsColumn3"><div class="statsinfo">
+<?php echo $evstring; ?>
+</div></td>
+</tr>
+<tr id="Stats7" class="TableStatsRow2">
+<td class="TableStatsColumn2" colspan="2" style="width: 100%; font-weight: bold;">Board Stats</td>
+</tr>
+<tr class="TableStatsRow3" id="Stats8">
+<td style="width: 4%;" class="TableStatsColumn3"><div class="statsicon">
+<?php echo $ThemeSet['BoardStatsIcon']; ?></div></td>
 <td style="width: 96%;" class="TableStatsColumn3"><div class="statsinfo">
 &nbsp;Our members have made a total of <?php echo $numposts; ?> posts<br />
 &nbsp;Our members have made a total of <?php echo $numtopics; ?> topics<br />
@@ -188,7 +288,19 @@ sql_free_result($bdresult);
 &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; ?>
 </div></td>
 </tr>
-<tr id="Stats7" class="TableStatsRow4">
+<tr id="Stats9" class="TableStatsRow2">
+<td class="TableStatsColumn2" colspan="2" style="width: 100%; font-weight: bold;">Members Online Today: <?php echo $tdNumberMembers; ?></td>
+</tr>
+<tr class="TableStatsRow3" id="Stats10">
+<td style="width: 4%;" class="TableStatsColumn3"><div class="statsicon">
+<?php echo $ThemeSet['OnlineStatsIcon']; ?></div></td>
+<td style="width: 96%;" class="TableStatsColumn3"><div class="statsinfo">
+&nbsp;Number of members online today: <?php echo $tdNumberMembers; ?><br />
+&nbsp;The following members have visited today:<br />
+&nbsp;<?php echo $tdMembersOnline; ?>
+</div></td>
+</tr>
+<tr id="Stats10" class="TableStatsRow4">
 <td class="TableStatsColumn4" colspan="2">&nbsp;</td>
 </tr>
 </table></div>