GForum::Online::whos_online does this, however the problem is that that code is run only when someone views the Who's Online page. You might be able to do this through a "main" post-hook - when it's called, update the information (if necessary), then add a global that you call that returns the relevant information. You don't necessarily need to add a table for this - you could store in directly in the config file with something like:
if ($current_users > $CFG->{highest_current_users_ever}) {
$CFG->{highest_current_users_ever} = $current_users;
$CFG->{highest_current_users_ever_time} = time;
$need_save++;
}
if ($current_guests > $CFG->{highest_current_guests_ever}) {
$CFG->{highest_current_guests_ever} = $current_guests;
$CFG->{highest_current_guests_ever_time} = time;
$need_save++;
}
$CFG->save if $need_save;
To retrieve it, you'd use a global something like:
my ($u, $uwhen, $g, $gwhen) = @$CFG{qw/
highest_current_users_ever
highest_current_users_ever_when
highest_current_guests_ever
highest_current_guests_ever_when
/};
return {
highest_user_count => $u,
highest_users_when => GForum::date($uwhen),
highest_guest_count => $g,
highest_guests_when => GForum::date($gwhen)
}
}
Jason Rhinelander
Gossamer Threads
jason@gossamer-threads.com
Code:
my $need_save; if ($current_users > $CFG->{highest_current_users_ever}) {
$CFG->{highest_current_users_ever} = $current_users;
$CFG->{highest_current_users_ever_time} = time;
$need_save++;
}
if ($current_guests > $CFG->{highest_current_guests_ever}) {
$CFG->{highest_current_guests_ever} = $current_guests;
$CFG->{highest_current_guests_ever_time} = time;
$need_save++;
}
$CFG->save if $need_save;
To retrieve it, you'd use a global something like:
Code:
sub { my ($u, $uwhen, $g, $gwhen) = @$CFG{qw/
highest_current_users_ever
highest_current_users_ever_when
highest_current_guests_ever
highest_current_guests_ever_when
/};
return {
highest_user_count => $u,
highest_users_when => GForum::date($uwhen),
highest_guest_count => $g,
highest_guests_when => GForum::date($gwhen)
}
}
Jason Rhinelander
Gossamer Threads
jason@gossamer-threads.com