Mini Shell
<?php
/**
* copyright : (C) 2001-2011 Advanced Internet Designs Inc.
* email : forum@prohost.org
* $Id$
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; version 2 of the License.
**/
function &rebuild_stats_cache($last_msg_id)
{
$tm_expire = __request_timestamp__ - ($GLOBALS['LOGEDIN_TIMEOUT'] * 60);
$obj = new stdClass(); // Initialize to prevent 'strict standards' notice.
list($obj->last_user_id, $obj->user_count) = db_saq('SELECT MAX(id), count(*)-1 FROM fud30_users');
$obj->online_users_anon = q_singleval('SELECT count(*) FROM fud30_ses s WHERE time_sec>'. $tm_expire .' AND user_id>2000000000');
$obj->online_users_hidden = q_singleval('SELECT count(*) FROM fud30_ses s INNER JOIN fud30_users u ON u.id=s.user_id WHERE s.time_sec>'. $tm_expire .' AND '. q_bitand('u.users_opt', 32768) .'>0');
$obj->online_users_reg = q_singleval('SELECT count(*) FROM fud30_ses s INNER JOIN fud30_users u ON u.id=s.user_id WHERE s.time_sec>'. $tm_expire .' AND '. q_bitand('u.users_opt', 32768) .'=0');
$c = uq(q_limit('SELECT u.id, u.alias, u.users_opt, u.custom_color FROM fud30_ses s INNER JOIN fud30_users u ON u.id=s.user_id WHERE s.time_sec>'. $tm_expire .' AND '. q_bitand('u.users_opt', 32768) .'=0 ORDER BY s.time_sec DESC', $GLOBALS['MAX_LOGGEDIN_USERS']));
$obj->online_users_text = array();
while ($r = db_rowarr($c)) {
$obj->online_users_text[$r[0]] = draw_user_link($r[1], $r[2], $r[3]);
}
unset($c);
q('UPDATE fud30_stats_cache SET
cache_age='. __request_timestamp__ .',
last_user_id='. (int)$obj->last_user_id .',
user_count='. (int)$obj->user_count .',
online_users_anon='. (int)$obj->online_users_anon .',
online_users_hidden='. (int)$obj->online_users_hidden .',
online_users_reg='. (int)$obj->online_users_reg .',
online_users_text='. ssn(serialize($obj->online_users_text)));
$obj->last_user_alias = q_singleval('SELECT alias FROM fud30_users WHERE id='. $obj->last_user_id);
$obj->last_msg_subject = q_singleval('SELECT subject FROM fud30_msg WHERE id='. $last_msg_id);
list($obj->most_online,$obj->most_online_time) = db_saq('SELECT most_online, most_online_time FROM fud30_stats_cache');
/* Update most online users stats if needed. */
if (($obj->online_users_reg + $obj->online_users_hidden + $obj->online_users_anon) > $obj->most_online) {
$obj->most_online = $obj->online_users_reg + $obj->online_users_hidden + $obj->online_users_anon;
$obj->most_online_time = __request_timestamp__;
q('UPDATE fud30_stats_cache SET most_online='. $obj->most_online .', most_online_time='. $obj->most_online_time);
} else if (!$obj->most_online_time) {
$obj->most_online_time = __request_timestamp__;
}
return $obj;
}
$logedin = $forum_info = '';
if ($FUD_OPT_1 & 1073741824 || $FUD_OPT_2 & 16) {
if (!($st_obj = db_sab('SELECT sc.*, m.subject AS last_msg_subject, u.alias AS last_user_alias FROM fud30_stats_cache sc INNER JOIN fud30_users u ON u.id=sc.last_user_id LEFT JOIN fud30_msg m ON m.id='. $last_msg_id .' WHERE sc.cache_age>'. (__request_timestamp__ - $STATS_CACHE_AGE)))) {
$st_obj = rebuild_stats_cache($last_msg_id);
} else if ($st_obj->online_users_text && (_uid || !($FUD_OPT_3 & 262144))) {
$st_obj->online_users_text = unserialize($st_obj->online_users_text);
}
if (!$st_obj->most_online_time) {
$st_obj->most_online_time = __request_timestamp__;
}
if ($FUD_OPT_1 & 1073741824 && (_uid || !($FUD_OPT_3 & 262144))) {
if (!empty($st_obj->online_users_text)) {
foreach($st_obj->online_users_text as $k => $v) {
$logedin .= '<a href="[[relativeurl]]/index.php?t=usrinfo&id='.$k.'&'._rsid.'">'.$v.'</a> ';
}
}
$logedin = '<tr>
<th class="wa">Logged in users list '.(($FUD_OPT_1 & 536870912) ? ''.(_uid || !($FUD_OPT_3 & 131072) ? '[ <a href="[[relativeurl]]/index.php?t=actions&'._rsid.'" class="thLnk" rel="nofollow">User Activity</a> ]' : '' ) .'
'.(_uid || !($FUD_OPT_3 & 262144) ? '[ <a href="[[relativeurl]]/index.php?t=online_today&'._rsid.'" class="thLnk" rel="nofollow">Today's Visitors</a> ]' : '' ) .'' : '' ) .'</th>
</tr>
<tr>
<td class="RowStyleA">
<span class="SmallText">There are <b>'.convertPlural($st_obj->online_users_reg, array(''.$st_obj->online_users_reg.' member',''.$st_obj->online_users_reg.' members')).'</b>, <b>'.convertPlural($st_obj->online_users_hidden, array(''.$st_obj->online_users_hidden.' invisible member',''.$st_obj->online_users_hidden.' invisible members')).'</b> and <b>'.convertPlural($st_obj->online_users_anon, array(''.$st_obj->online_users_anon.' guest',''.$st_obj->online_users_anon.' guests')).'</b> visiting this board.
<span class="adminColor">[Administrator]</span>
<span class="modsColor">[Moderator]</span></span><br />
'.$logedin.'
</td>
</tr>';
}
if ($FUD_OPT_2 & 16) {
$forum_info = '<tr>
<td class="RowStyleB SmallText">
Our users have posted a total of <b>'.convertPlural($post_count, array(''.$post_count.' message',''.$post_count.' messages')).'</b> inside <b>'.convertPlural($thread_count, array(''.$thread_count.' topic',''.$thread_count.' topics')).'</b>.<br />
Most users ever online was <b>'.$st_obj->most_online.'</b> on <b>'.print_date('%a, %d %B %Y %H:%M', $st_obj->most_online_time).'</b><br />
We have <b>'.$st_obj->user_count.'</b> registered '.convertPlural($st_obj->user_count, array('user','users')).'.<br />
The newest registered user is <a href="[[relativeurl]]/index.php?t=usrinfo&id='.$st_obj->last_user_id.'&'._rsid.'"><b>'.htmlspecialchars($st_obj->last_user_alias, ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML5, null, false).'</b></a>
'.($last_msg_id ? '<br />Last message on the forum: <a href="[[relativeurl]]/index.php?t='.d_thread_view.'&goto='.$last_msg_id.'&'._rsid.'#msg_'.$last_msg_id.'"><b>'.htmlspecialchars($st_obj->last_msg_subject, ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML5, null, false).'</b></a>' : '' ) .'
</td>
</tr>';
}
}
?>
Zerion Mini Shell 1.0