Grummel...nein, leider kommt der Fehler immernoch...also mal ausführlicher, ich habe den Topic in Who is online MOD verbaut UND zusätzlich nun eine extra %s-Variable drin für die im ACP einstellbare Zeitspanne...das zusammen beist sich so wie ich es zusammengebaut habe...aber ich bin mal wieder an meiner Wissens-Grenze, seufz:
Code: Alles auswählen
$online_userlist = $lang['Registered_users'] . ' ' . $online_userlist;
$total_online_users = $logged_visible_online + $logged_hidden_online + $guests_online;
if ($total_online_users > $board_config['record_online_users']) {
$board_config['record_online_users'] = $total_online_users;
$board_config['record_online_date'] = time();
$sql = "UPDATE " . CONFIG_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 " . CONFIG_TABLE . "
SET config_value = '" . $board_config['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);
}
}
if ($total_online_users == 0) {
$l_t_user_s = ((isset($topic_id)) ? $lang['Browsing_topic'] : ((isset($forum_id)) ? $lang['Browsing_forum'] : sprintf($lang['Online_users_zero_total'], ($board_config['online_time'] / 60) % 60)));
} else if ($total_online_users == 1) {
$l_t_user_s = ((isset($topic_id)) ? $lang['Browsing_topic'] : ((isset($forum_id)) ? $lang['Browsing_forum'] : sprintf($lang['Online_user_total'], ($board_config['online_time'] / 60) % 60)));
} else {
$l_t_user_s = ((isset($topic_id)) ? $lang['Browsing_topic'] : ((isset($forum_id)) ? $lang['Browsing_forum'] : sprintf($lang['Online_users_total'], ($board_config['online_time'] / 60) % 60)));
}
if ($logged_visible_online == 0) {
$l_r_user_s = $lang['Reg_users_zero_total'];
} else if ($logged_visible_online == 1) {
$l_r_user_s = $lang['Reg_user_total'];
} else {
$l_r_user_s = $lang['Reg_users_total'];
}
if ($logged_hidden_online == 0) {
$l_h_user_s = $lang['Hidden_users_zero_total'];
} else if ($logged_hidden_online == 1) {
$l_h_user_s = $lang['Hidden_user_total'];
} else {
$l_h_user_s = $lang['Hidden_users_total'];
}
if ($guests_online == 0) {
$l_g_user_s = $lang['Guest_users_zero_total'];
} else if ($guests_online == 1) {
$l_g_user_s = $lang['Guest_user_total'];
} else {
$l_g_user_s = $lang['Guest_users_total'];
}
$l_online_users = sprintf($l_t_user_s, $total_online_users);
$l_online_users .= sprintf($l_r_user_s, $logged_visible_online);
$l_online_users .= sprintf($l_h_user_s, $logged_hidden_online);
$l_online_users .= sprintf($l_g_user_s, $guests_online);
Da oben muß mir ein Denkfehler unterlaufen sein, denn auch wenn nur 1 Benutzer anwesend ist, also nur eine %s-Variable angesprochen wird, scheint es, kann es zu dem sprintf()-Fehler kommen, bei dem dann unten "In den letzten 2 Minuten waren x Benutzer anwesend" nicht mehr angezeigt wird
Code: Alles auswählen
$lang['Nobody'] = 'Niemand';
$lang['Online_users_zero_total'] = 'In den letzten %s Minuten waren <b>0</b> Besucher anwesend: ';
$lang['Online_users_total'] = 'In den letzten %s Minuten waren <b>%s</b> Besucher anwesend: ';
$lang['Online_user_total'] = 'In den letzten %s Minuten war <b>1</b> Besucher anwesend: ';
EDIT: Ich hab nun folgendes drin (PS: Die Zeit im ACP steht in Sekunden drin...und wird hier in Minuten angezeigt...ist da $board_config['online_time'] / 60 % 60 überhaubt richtig oder sollte ich besser einfach die Sekundendauer drin lassen im Text und mir das / 60 % 60 sparen, wie es der MOD-author verwendet hat? :
Code: Alles auswählen
$l_online_time = $board_config['online_time'] / 60 % 60;
if ($total_online_users == 0) {
$l_t_user_s = ((isset($topic_id)) ? $lang['Browsing_topic'] : ((isset($forum_id)) ? $lang['Browsing_forum'] : sprintf($lang['Online_users_zero_total'], $l_online_time)));
} else if ($total_online_users == 1) {
$l_t_user_s = ((isset($topic_id)) ? $lang['Browsing_topic'] : ((isset($forum_id)) ? $lang['Browsing_forum'] : sprintf($lang['Online_user_total'], $l_online_time)));
} else {
$l_t_user_s = ((isset($topic_id)) ? $lang['Browsing_topic'] : ((isset($forum_id)) ? $lang['Browsing_forum'] : sprintf($lang['Online_users_total'], $l_online_time)));
}
Ich bin nur nicht sicher, ob es nun richtig ist oder ich prinzipiell am Grundproblem vorbei hantiere...
EDIT 2: Nein, das ist es auch nicht...Fehler kommt wenn mehrere Benutzer, also tatsächlich die 2te Variable angesprochen wird...da muss ich wohl mit sprintf($lang['Online_users_total'], $l_online_time) was falsch machen, oder?