EDIT: Zur besseren Übersicht: Das zugehörige andere Thema findet sich hier
Oha, diese Modifikation hat anscheinend so ihre Tücken...
Dieser Fehler liegt daran, dass der Code für das Viewonline nicht allein für die Anzeige des Viewonlines auf dem Index zuständig ist, sondern ebenfalls für die in den einzelnen Foren. Ob gerade ein Forum aufgerufen ist, wird abgefragt und wenn ja dann die Abfrage auf dieses Forum beschränkt. Somit zeigt die Viewonline Anzeige auch immer nur die Personen an, die im Forum sind. Da das mit der Session zusammenhängt und die nicht ständig aktualisiert wird ergeben sich da wohl mal ab und zu Differenzen. Um das zu beheben sind ein paar andere Veränderungen nötig, Moment.
EDIT:So, schwere Geburt...
Diese Modifikation funktioniert so nur korrekt, wenn du das auch tatsächlich im overall_header.tpl einbaust, es wird NICHT in jeder beliebigen Datei funktionieren. Das liegt daran, dass das eben noch von anderen Dingen verwendet wird.
Als erstes verschieben wir den Start der Funktion ein wenig nach vorne:
finde
direkt dahinter kommt
Code: Alles auswählen
function show_online_box_everywhere($forum_id=0,$display_forum=false)
{
if(!$display_forum)
{
unset($forum_id);
}
global $lang, $images,$template,$theme,$userdata,$board_config,$db;
global $logged_visible_online,$logged_hidden_online,$guests_online,$online_userlist,$l_online_users;
Als nächstes den alten Funktionsstart löschen.
Also weg mit
Code: Alles auswählen
function show_online_box_everywhere()
{
global $lang, $images,$template;
Dann muss noch eine kleine Modifikation im Code her:
Finde
Code: Alles auswählen
//
// If you don't use these stats on your index you may want to consider
// removing them
//
DAVOR einfügen:
finde
DAVOR einfügen
finde
DAVOR einfügen
Code: Alles auswählen
if(isset($forum_id)&& defined('SHOW_ONLINE') && $forum_id)
{
$logged_visible_online = 0;
$logged_hidden_online = 0;
$guests_online = 0;
$online_userlist = '';
$l_online_users = '';
show_online_box_everywhere($forum_id,true);
$template->assign_vars(array(
'TOTAL_USERS_ONLINE' => $l_online_users,
'LOGGED_IN_USER_LIST' => $online_userlist,
));
}
So, wie man sieht etwas komplizierter, ich hoffe ich habe jetzt keine Änderungen, die ich vorgenommen hatte vergessen. Wenn doch wirst du das vermutlich merken...