PDA

View Full Version : Display all active/online users on forumdisplay


Gary King
10-11-2003, 10:00 PM
What does this hack do?

It displays all currently online users in the forumdisplay template (when viewing forums.)

Screenshots

forumdisplay (https://vborg.vbsupport.ru/attachment.php?attachmentid=14804)

Installation

Open forumdisplay.php and find: eval("\$onlineusers .= \"".gettemplate('forumdisplay_loggedinusers')."\";");
}
}


After it, add// WHO'S ONLINE (SITEWIDE)
$activeusers = "";
$loggedinusers = "";
if ($displayloggedin)
{
$datecut=time()-$cookietimeout;

$loggedins=$DB_site->query_first("SELECT COUNT(*) AS sessions FROM session WHERE userid=0 AND lastactivity>$datecut");
$numberguest=$loggedins['sessions'];

$numbervisible=0;
$numberregistered=0;

$loggedins=$DB_site->query("SELECT DISTINCT session.userid,username,invisible,usergroupid
FROM session
LEFT JOIN user ON (user.userid=session.userid)
WHERE session.userid>0 AND session.lastactivity>$datecut
ORDER BY invisible ASC, username ASC");
if ($loggedin=$DB_site->fetch_array($loggedins)) {
$numberregistered++;
if ($loggedin['invisible']==0 or $bbuserinfo['usergroupid']==6) {
$numbervisible++;
$userid = $loggedin['userid'];
if ($loggedin['invisible'] == 1) { // Invisible User but show to Admin
$invisibleuser = '*';
} else {
$invisibleuser = '';
}
if ($loggedin['usergroupid'] == 6 and $highlightadmin) {
$username = "<b><i>$loggedin[username]</i></b>";
} else if (($mod["$userid"] or $loggedin['usergroupid'] == 5) and $highlightadmin) {
$username = "<b>$loggedin[username]</b>";
} else {
$username = $loggedin['username'];
}
eval("\$activeusers = \"".gettemplate('forumhome_loggedinuser')."\";");
}

while ($loggedin=$DB_site->fetch_array($loggedins)) {
$numberregistered++;
$invisibleuser = '';
if ($loggedin['invisible']==1 and $bbuserinfo['usergroupid']!=6) {
continue;
}
$numbervisible++;
$userid=$loggedin['userid'];
if ($loggedin['invisible'] == 1) { // Invisible User but show to Admin
$invisibleuser = '*';
}
if ($loggedin['usergroupid'] == 6 and $highlightadmin) {
$username = "<b><i>$loggedin[username]</i></b>";
} else if (($mod["$userid"] or $loggedin['usergroupid'] == 5) and $highlightadmin) {
$username = "<b>$loggedin[username]</b>";
} else {
$username = $loggedin['username'];
}
eval("\$activeusers .= \", ".gettemplate('forumhome_loggedinuser')."\";");
}
}
$DB_site->free_result($loggedins);

$totalonline=$numberregistered+$numberguest;
$numberinvisible=$numberregistered-$numbervisible;

$maxusers=explode(" ", gettemplate('maxloggedin',0,0));
if ((int)$maxusers[0] <= $totalonline) {
$time = time();
$maxloggedin = "$totalonline " . $time;
$DB_site->query("UPDATE template SET template='$maxloggedin' WHERE title='maxloggedin'");
$maxusers[0] = $totalonline;
$maxusers[1] = $time;
}

//eval("\$loggedinusers = \"".gettemplate('forumhome_loggedinusers')."\";");
}


Open the forumdisplay template and find: <smallfont>$moderatedby$onlineusers</smallfont></td>
Replace it with<smallfont>$moderatedby<br />(Users Online: $activeusers)$onlineusers</smallfont></td>

That's it, it's installed now!
And please don't forget to click on the Install button as well ;)

Enjoy! :) :D

MindTrix
10-12-2003, 02:16 PM
Nice one, maybe it could be put into a box or something? Looks good tho well done

Gary King
10-12-2003, 03:27 PM
Nice one, maybe it could be put into a box or something? Looks good tho well done
Thanks.

You can change the look of it in the forumdisplay template, btw.

MindTrix
10-12-2003, 03:32 PM
Isnt there something like this on vb3? Just wondering, oh and what makes it different from the one on this site? Just wonderin lol

Gary King
10-12-2003, 09:49 PM
It's a sitewide thing, not just one forum.

Bison
10-16-2003, 01:18 PM
It looks like this one adds a lot of queries. Can't afford anymore of those in my forumdisplay!

larke
10-18-2003, 06:48 PM
ok, i know i requested this, but how do you make it work for vb3? I upgraded yesterday cause of some other things I wanted...

Gutspiller
11-21-2003, 09:33 PM
What version of VB is this hack for? Would it work with 2.0.x? :(

Gary King
11-22-2003, 01:53 PM
What version of VB is this hack for? Would it work with 2.0.x? :(
I think so, although I'm not too sure.