PDA

View Full Version : online.php non-vB page closed forum message


eva2000
01-13-2002, 04:31 AM
i got this code for adding online.php to non-vB pages but the problem is when you close the forum the included calls to this file online.php result in gibberish... can someone help add some code into the file below so that when i close the forum it gives a 'forum undergoing maintenance' message instead ?

<?php
chdir("/home/username/public_html/");
require("/home/username/public_html/global.php");

if ($displayloggedin) {
$datecut=time()-$cookietimeout;

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

$numbervisible=0;
$numberregistered=0;
//$loggedins=$DB_site->query("SELECT DISTINCT user.userid,username FROM user,session WHERE session.userid=user.userid AND session.userid<>0 AND invisible=0 AND session.lastactivity>$datecut ORDER BY username");
$loggedins=$DB_site->query("SELECT DISTINCT session.userid,username,invisible
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
$username=$loggedin['username'];
$invisibleuser = '*';
} else {
$username=$loggedin['username'];
$invisibleuser = '';
}
$location=$loggedin['location'];
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
$username=$loggedin['username'];
$invisibleuser = '*';
} else {
$username=$loggedin['username'];
}
$location=$loggedin['location'];
eval("\$activeusers .= \", ".gettemplate('forumhome_loggedinuser')."\";");
}
}
$DB_site->free_result($loggedins);

$totalonline=$numberregistered+$numberguest;

$numberinvisible=$numberregistered-$numbervisible;

}

echo "forum users online:&nbsp;&nbsp;<a href=http://animeboards.com/index.php#active target=\"_blank\">$numberregistered</a>
&nbsp;members&nbsp;+&nbsp;<a href=http://animeboards.com/index.php#active target=\"_blank\">$numberguest</a>&nbsp;guests";

?>

Scott MacVicar
01-13-2002, 09:41 AM
Its becase vBulletin checks to see if the board is closed in the global.php file, and as i don't think you want to edit global.php, as its always in use.

try this script, it connects to the database and checks the bbactive variable itself not letting the global file load the variables.

Tested this on my forums worked fine.


<?php
chdir("/home/username/public_html/");
require("/home/username/public_html/admin/config.php");
mysql_connect("$servername", "$dbusername", "$dbpassword");
$setting = mysql_fetch_array(mysql_query("SELECT * FROM $dbname.setting WHERE varname='bbactive'"));
mysql_close();
if(!$setting['value']) {
echo "forum undergoing maintenance";
exit;
}
require("/home/username/public_html/global.php");


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 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
$username=$loggedin['username'];
$invisibleuser = '*';
}
else {
$username=$loggedin['username'];
$invisibleuser = '';
}
$location=$loggedin['location'];
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
$username=$loggedin['username'];
$invisibleuser = '*';
}
else {
$username=$loggedin['username'];
}
$location=$loggedin['location'];
eval("\$activeusers .= \", ".gettemplate('forumhome_loggedinuser')."\";");
}
}
$DB_site->free_result($loggedins);
$totalonline=$numberregistered+$numberguest;
$numberinvisible=$numberregistered-$numbervisible;
echo "forum users online:&nbsp;&nbsp;<a href=http://animeboards.com/index.php#active target=\"_blank\">$numberregistered</a>
&nbsp;members&nbsp;+&nbsp;<a href=http://animeboards.com/index.php#active target=\"_blank\">$numberguest</a>&nbsp;guests";
}

?>

eva2000
01-14-2002, 04:07 PM
thanks will be testing it out today :D

eva2000
01-14-2002, 04:18 PM
perfect mate! :D

mchaos
02-07-2006, 03:11 AM
any one got anything like this that works in 3.5.0 and ^