Helpful Information
 
 
Category: vB1 Hacks
[RELEASE vb 1.x 2.0?] High number of users online

Object: display the highest number of user sessions your board has ever had.

Disclaimer: for snyx.. I don't use 2.0 so I have no idea if anything has changed. This is for 1.x and I have NOT tested this. I wrote it at work and decided to post it since you needed it ASAP. It's something I will use as well, but I can't install and test until later tonight. There is a good chance this will work on 2.0 if it hasn't changed in this area.


1) Create table

CREATE TABLE highsessions (
high int(10) unsigned DEFAULT '0' NOT NULL,
timestamp int(11) unsigned DEFAULT '0' NOT NULL,
PRIMARY KEY (high)
);


2) Modify your index.php. Find:

if ($displayloggedin==1) {
$datecut=time()-$cookietimeout;
$loggedins=$DB_site->query_first("SELECT COUNT(sessionid) AS sessions FROM session");
$totalonline=$loggedins[sessions];


and under it, ADD:

// record high sessions hack

$oldhighsessions=$DB_site->query_first("SELECT high,timestamp FROM highsessions");
$numberoldhigh=$oldhighsessions[high];
$timeoldhigh=date("M j, Y G:i",$oldhighsessions[timestamp]);

if ($totalonline > $numberoldhigh) {
$DB_site->query("UPDATE highsessions SET high='$totalonline',timestamp='".time()."'");
$numberoldhigh = $totalonline;
$timeoldhigh="right now!";
}

// end high sessions hack


3) Open your forumhome template and use the variable $numberoldhigh wherever you want to display your "record" number of sessions. Use $timeoldhigh to display the date of that record.

enjoy

Anyone test this with 2.0 yet?

Anyone test this with 1.x yet?


heheh :)

You might wanna include a timestamp to recall the date and time when the record was added

Uh oh.. a little piece of code is turning into an actual hack.



I changed the first post to now use a timestamp.

Well testing this with Beta 3 it doesn't have

if ($displayloggedin==1) {

it has

if ($displayloggedin) {


So I pasted below that and added to my template, but it prints Dec 31, 1969 16:00


Any ideas?

Wow it works! 2.0 even... hehe

OK the problem is that when you created the table, there is no value for "TIMESTAMP"

Soooo either you need to enter a value for timestamp manually, or delete the "high" mark and let it set itself again that way it writes a timestamp into the database.

That is assuming there are no errors in my code (haven't tested the timestamp part, just threw it in).

Originally posted by Overgrow
. . . . . Disclaimer: for snyx.. I don't use 2.0 so I have no idea if anything has changed . . . . .

LOL! Thankz man, just Kier saved me on that one!

May I please have the code for vB 1.x? It doesnt seem to be working on my board. No values are entered into the highsessions table. Instead, the total number of people are shown as the maximum number.

Looks like a cool hack to me.
Unfortunatly, I have the same problem as theprof.

The date of record keeps standing on Dec 31, 1969 19:00 and the record of simultanious logged in users is the same as the number of users logged in at the moment.

Could you please tell us what to do so that we can enjoy this cool hack too?

[EDIT: Forgot to tell you that I'm using vbb 1.xx]

Greetings,
Spider

It sounds like the query is never performing since there is no data in the table to select. Try this...

change:

if ($totalonline > $numberoldhigh) {

to

if ( ($totalonline > $numberoldhigh) or ($numberoldhigh < 1) ) {


Check your highsessions table and see if any data is being entered.

Great! I finally got it to work.

I changed

if ($totalonline > $numberoldhigh) {

to

if ( ($totalonline > $numberoldhigh) or ($numberoldhigh < 1) ) {

But after that it still didn't work. Then I just went bold, went into the database and setted a
value of 0 in the "high" field. After I did that, it worked like a charm.

Thanks alot for helping me out. :D

Greetings,
Spider

Thanks!










privacy (GDPR)