The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
![]()
I have been trying to reproduce an external.php file that shows my max users
online outside of vbulletin. I have taken the data from my index.php WOL sectiona and placed it in an external file, to date it does work somewhat but everytime I run the file it resets my global max users online stats to whatever the number is currently on my board. can someone help me find a way so it doesn't reset the data? here is my code: Code:
<?php error_reporting(E_ALL & ~E_NOTICE); require_once("./global.php"); $datecut = time()-$vboptions['cookietimeout']; $activeusers = ''; if ($vboptions['displayloggedin']) { $datecut = TIMENOW - $vboptions['cookietimeout']; $numbervisible = 0; $numberregistered = 0; $numberguest = 0; $forumusers = $DB_site->query(" SELECT user.username, (user.options & $_USEROPTIONS[invisible]) AS invisible, user.usergroupid, session.userid, session.inforum, session.lastactivity, IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid FROM " . TABLE_PREFIX . "session AS session LEFT JOIN " . TABLE_PREFIX . "user AS user ON(user.userid = session.userid) WHERE session.lastactivity > $datecut " . iif($vboptions['displayloggedin'] == 1, "ORDER BY username ASC") . " "); if ($bbuserinfo['userid']) { // fakes the user being online for an initial page view of index.php $bbuserinfo['joingroupid'] = iif($bbuserinfo['displaygroupid'], $bbuserinfo['displaygroupid'], $bbuserinfo['usergroupid']); $userinfos = array ( $bbuserinfo['userid'] => array ( 'userid' => $bbuserinfo['userid'], 'username' => $bbuserinfo['username'], 'invisible' => $bbuserinfo['invisible'], 'inforum' => 0, 'lastactivity' => TIMENOW, 'usergroupid' => $bbuserinfo['usergroupid'], 'displaygroupid' => $bbuserinfo['displaygroupid'], ) ); } else { $userinfos = array(); } $inforum = array(); while ($loggedin = $DB_site->fetch_array($forumusers)) { $userid = $loggedin['userid']; if (!$userid) { // Guest $numberguest++; $inforum["$loggedin[inforum]"]++; } else if (empty($userinfos["$userid"]) OR ($userinfos["$userid"]['lastactivity'] < $loggedin['lastactivity'])) { $userinfos["$userid"] = $loggedin; } } foreach($userinfos AS $userid => $loggedin) { $numberregistered++; if ($userid != $bbuserinfo['userid']) { $inforum["$loggedin[inforum]"]++; } $loggedin['musername'] = fetch_musername($loggedin); } // memory saving unset($userinfos, $loggedin); $activeusers = substr($activeusers , 2); // get rid of initial comma $DB_site->free_result($loggedins); $totalonline = $numberregistered + $numberguest; $numberinvisible = $numberregistered - $numbervisible; // ### MAX LOGGEDIN USERS ################################ $maxusers = unserialize($datastore['maxloggedin']); if (intval($maxusers['maxonline']) <= $totalonline) { $maxusers['maxonline'] = $totalonline; $maxusers['maxonlinedate'] = TIMENOW; build_datastore('maxloggedin', serialize($maxusers)); } $recordusers = $maxusers['maxonline']; $recorddate = vbdate($vboptions['dateformat'], $maxusers['maxonlinedate'], true); $recordtime = vbdate($vboptions['timeformat'], $maxusers['maxonlinedate']); $show['loggedinusers'] = true; } else { $show['loggedinusers'] = false; } print 'Most users ever online was '.$recordusers.', ' .$recorddate.' at '.$recordtime; ?> |
#2
|
||||
|
||||
![]()
If you just want to display the data, I would think you don't need much more than this ;
PHP Code:
|
#3
|
|||
|
|||
![]()
Okay I will run this through ASAP.
I'll post my results here ![]() 6 mins. later... Well I'llbey IT WORKS! Many thanks Paul M. you are a godsent .thumbsup. |
![]() |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
![]() |
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|