Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
04.09.2008, 11:02
(Dieser Beitrag wurde zuletzt bearbeitet: 04.09.2008, 11:15 von Jockl.)
In dem Bereich "Wer ist online?" wird über die "Vollständige Liste" ausgegeben, welcher User sich gerade in welchem Thema befindet.
Ich würde gerne auf einer "Eigenen Seite" die o.a. Funktionsweise nutzen, um danach zu suchen, welcher eingeloggte User sich gerade auf dieser speziellen Seite befindet und das dann auch anzeigen.
Müsste doch prinzipiell machbar sein, oder? Habe mal in der online.php gesucht, bin aber nicht wirklich fündig geworden, wo ermittelt wird, welcher User sich gerade in welchem Thema befindet.
Für einen Tipp wäre ich Euch dankbar.
Edit:
sorry, sehe gerade, dass ich das Thema in die falsche Ecke gestellt habe. Gehört besser unter Anpassungen->Mods und Addons.
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
04.09.2008, 11:35
(Dieser Beitrag wurde zuletzt bearbeitet: 04.09.2008, 11:35 von Michael.)
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 438
Themen: 47
Registriert seit: 28.07.2007
(04.09.2008, 11:35)Michael schrieb: Siehe Punkt 5 hier: https://www.mybb.de/forum/thread-20250-p...#pid140833
Das ist nicht mehr aktuell, da ältere Version.
Gruß, Micha
=========
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
ähm, Danke erst einmal für die Antworten, aber ich steh' auf dem Schlauch.
Die o.a. Links zeigen doch nur, wie man eine "Eigene Seite" in der vollständigen Liste von "Wer ist online" sichtbar macht. Das ist nicht das Problem.
Ich möchte auf der neu erstellten Seite quasi eine separate who is online Ausgabe erzeugen, die aber nur die User zeigt, die sich gerade auf dieser Seite befinden.
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
Dann musst du die Benutzer aus der Tabelle sessions abrufen. Die aufgerufene Datei wird dort auch gespeichert, so dass sich das relativ einfach realisieren lassen sollte.
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
04.09.2008, 22:07
(Dieser Beitrag wurde zuletzt bearbeitet: 04.09.2008, 22:09 von Jockl.)
ich hatte wohl das kleine Wörtchen relativ überlesen...
Ich erhalte alles mögliche als Ergebnis bzw. mit folgendem Code gar keines mehr
PHP-Code: $query = $db->query(" SELECT s.uid, s.location, u.uid, u.username FROM ".TABLE_PREFIX."sessions s LEFT JOIN ".TABLE_PREFIX."users u ON (s.uid=u.uid) WHERE s.location = '/testforum/kiste.php*' ORDER BY u.username DESC LIMIT 0,100 "); while($data = $db->fetch_array($query)) { $username = "<a href=\"member.php?action=profile&uid={$data['s.uid']}\">".htmlspecialchars_uni($data['u.username'])."</a> - "; eval("\$usernames .= \"".$templates->get("kiste_user")."\";"); }
Wie auch immer, etwas sinnvolles erscheint nicht. Wo habe ich denn da meinen Denkfehler?
Mit dem Aufruf der Seite übergebe ich auch die jeweilige UID des Users und deshalb diese Zeile '/testforum/kiste.php *'.
Zu der Sessions-Tabelle noch eine generelle Verständnisfrage. Muss die nicht irgendwann auch mal wieder leer sein, wenn keine User mehr online sind?
@Thai-Tiger:
das passt schon mit der alten Version. Ich hinke dem Trend noch deutlich hinterher.
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
(04.09.2008, 22:07)Jockl schrieb: Zu der Sessions-Tabelle noch eine generelle Verständnisfrage. Muss die nicht irgendwann auch mal wieder leer sein, wenn keine User mehr online sind? Auf den ersten Blick sieht der Query richtig aus. Allerdings solltest du noch eine zeitliche Begrenzung einfügen (z.B. 5 Minuten), denn die session-Tabelle wird nicht geleert, wenn sich ein Benutzer abmeldet. Die Daten werden automatisch nach einem bestimmten Zeitraum (ich glaube es ist 1 Monat) gelöscht.
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
Mal abgesehen davon, dass ich es leider immer noch nicht hin bekommen habe, die User anzeigen zu lassen, würde das mit der Zeitbegrenzung in etwa so aussehen können?
PHP-Code: $timestamp = time(); $query = $db->query(" SELECT s.location, s.time, u.uid, u.username FROM ".TABLE_PREFIX."sessions s ....... LIMIT 0,100 "); while($data = $db->fetch_array($query)) { if ($data['s.time'] - $timestamp <= 60*60*5) { $username = "<a href=\"member.php?action=profile......... } }
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
Ich würde das mit in die Datenbankabfrage einfügen, damit du nicht erst alle Ergebnisse erhältst und dann aussortieren musst.
PHP-Code: $timestamp = time() - 60*60*5; $query = $db->query(" SELECT s.location, s.time, u.uid, u.username FROM ".TABLE_PREFIX."sessions s WHERE s.time > {$timestamp} ... ");
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
Erst einmal vielen Dank für den Verbesserungsvorschlag! Für so etwas bin ich immer dankbar!
Im Prinzip funktioniert jetzt so weit alles. Im Prinzip will heißen, dass ab und an anscheinend User "verschluckt" werden oder auch noch nach längerer Zeit angezeigt werden, ob wohl sie schon geraume Zeit ausgeloggt sind. Zusammen mit der "Wer ist online?"-Liste kann man sich aber ein ganz gutes Bild machen.
|