Seite 1 von 1

Online Rekord aus DB ausgliedern

Verfasst: 09.01.2004 04:02
von Tobl
hallo zusammen,

ich möchte den "user-online-rekord" in der gleichen db aus der phpbb_config in eine phpbb_online verschieben.
(record_online_users und record_online_date natürlich verschoben)

nun mein problem:
wenn ich alle mit dem rekord zusammenhängenden teile der page_header.php von $board_config in $board_online ändere und dann noch in die constants.php "define('ONLINE_TABLE', $table_prefix.'online');" einfüge, dann zeigt er mir immer als rekord die useranzahl an die sich zu diesem zeitpunkt auf der seite befinden.

weiß da jemand was?

danke
gruß tobl

Verfasst: 10.01.2004 14:18
von Acid
Zeig mal die kompletten Änderungen an der page_header.php ..

Verfasst: 10.01.2004 15:55
von Tobl
hier die kompletten änderungen in der page_header.php:

Code: Alles auswählen

	if ( $total_online_users > $board_online['record_online_users'])
	{
		$board_online['record_online_users'] = $total_online_users;
		$board_online['record_online_date'] = time();

		$sql = "UPDATE " . ONLINE_TABLE . "
			SET config_value = '$total_online_users'
			WHERE config_name = 'record_online_users'";
		if ( !$db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, 'Could not update online user record (nr of users)', '', __LINE__, __FILE__, $sql);
		}

		$sql = "UPDATE " . ONLINE_TABLE . "
			SET config_value = '" . $board_online['record_online_date'] . "'
			WHERE config_name = 'record_online_date'";
		if ( !$db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, 'Could not update online user record (date)', '', __LINE__, __FILE__, $sql);
		}
	}



...





	'RECORD_USERS' => sprintf($lang['Record_online_users'], $board_online['record_online_users'], create_date($board_config['default_dateformat'], $board_online['record_online_date'], $board_config['board_timezone'])),
desweiteren noch folgender eintrag in die constants.php:

Code: Alles auswählen

define('ONLINE_TABLE', $table_prefix.'online');
so zeigt er mir immer als online rekord die anzahl an usern an, die sich zu diesem zeitpunkt auf dem board befinden.

Verfasst: 10.01.2004 16:11
von Acid
Schau dir mal in der common.php noch zusätzlich an, wie $board_config definiert wird.. denn du kannst nicht $board_online angeben, wenn es nirgends definiert ist. ;)

Verfasst: 10.01.2004 17:48
von Tobl
aber die veränderungen werden ja in die datenbank geschrieben.
nur halt jede besucher-veränderung und nicht nur der rekord.

in der common.php wird ja über den eintrag des besucher-rekordes nichts erwähnt. auch für die $board_config nicht.

:oops:

Verfasst: 10.01.2004 17:59
von Acid

Code: Alles auswählen

$board_config = array();

Code: Alles auswählen

$sql = "SELECT *
	FROM " . CONFIG_TABLE;
if( !($result = $db->sql_query($sql)) )
{
	message_die(CRITICAL_ERROR, "Could not query config information", "", __LINE__, __FILE__, $sql);
}

while ( $row = $db->sql_fetchrow($result) )
{
	$board_config[$row['config_name']] = $row['config_value'];
}
..aus der common.php. Damit ist es möglich in allen anderen Dateien (da in diese ja die common.php eingebunden ist) $board_config['irgendwas'] zu benutzen und phpBB weiss dann auch was damit anzufangen.
$board_online['irgendwas'] kennt phpBB ohne eine Definierung nicht, so das dann solche Codes nicht richtig ausgegeben werden.

Wieso willst´n die online-Statistik eigentlich ausgliedern?

Verfasst: 10.01.2004 18:25
von Tobl
aha, dann werd ich das mal versuchen.

ich will das ausgliedern, da ich mehrere boards betreibe und die alle ihren eigenen rekord haben. ich möchte, das aber auf allen boards der gleiche rekord zu sehen ist...