ThWboard Support-Forum (Archiv)

Ort: / Boardübersicht / Code Hack Requests / Letzten Besuch im Profil anzeigen


Seite 1 von 1

Eistee schrieb am 23.05.2004 um 22:01 Uhr

Ich würde gern den letzten Besuch eines User im Board im Profil anzeigen lassen. Wie lässt sich sowas realisieren?
Es wird ja der letzte Post mit genauen Datum angezeigt, aber das nutzt mir ja nichts, wenn ich wissen will, ob ein User seitdem mal wieder vorbeischgeschaut hat :)
Wie ließe sich so ein Erweiterung des Profils also realisieren?

Bin euch für jede Antwort dankbar!

Eistee schrieb am 24.05.2004 um 21:08 Uhr

hat keiner ne idee, wie man das umsetzen könnte?! :(

Narodnaja schrieb am 24.05.2004 um 21:57 Uhr

als Idee: guck dir mal meinen Hack zu den Benutzern der letzten 24 Stunden an, es gibt eine Tabelle names _lastvisited, da kannst du rauslesen wann ein Benutzer das letzte mal da war. Timestamp + Userid rauslesen und fertisch =)

Du wolltest ne Idee, das is sie ;)

Eistee schrieb am 25.05.2004 um 16:21 Uhr

Thx, die Tabelle hatte ich ganz übersehen *g*
Bin jetzt soweit:
Habe die v_profile.php um folgende Zeilen ergänzt:

$g_user = thwb_query( "SELECT
        lastvisitedtime
    FROM
        $pref"."lastvisited
    WHERE
        userid=".intval($user['userid'])
);

if( mysql_num_rows($g_user) < 1 )
{
    message("Fehler","Benutzer existiert nicht");
}

wie kann ich den timestamp aus dieser abfrage jetzt in das vorhandene array "user[]" einfügen, dass ja bereits alle übrigen relevantenEinträge enthält?
Gibt es da eine spezielle Funktion, um Daten noch nahträglich in Arrays einzufügen?

Narodnaja schrieb am 25.05.2004 um 20:30 Uhr

thwb-stilgerecht wäre $r_user statt $g_user, da es den $g_user afaik schon gibt.

Beispiel:
$r_uservisit = thwb_query( "SELECT
lastvisitedtime
FROM
$pref"."lastvisited
WHERE
userid=".intval($user['userid']));

$uservisit = mysql_fetch_array($r_uservisit);
// in Variable schreiben

$user['lastvisit'] = $uservisit['lastvisitedtime'];
// in das user-array schreiben

Du hast da halt einen Timestamp, den musst du nun noch per form_date Funktion (vgl. functions.inc.php) umformen ;)

Eistee schrieb am 25.05.2004 um 23:10 Uhr

Danke, soweit so gut :\
Ein Problem gibts aber immer noch - und das ist relativ schwerwiegend: Es wir anstelle eines konkreten Datums "N/A" ausgegeben.
Woran mag das noch liegen?

Habe mal die Zeile, in der die Funktion form_date() aufgerufen wird ausgeklammert - jetzt wird einfach garnix angezeigt, was wohl heisst, dass kein timestamp zur Verfügung steht?!
Was muss ich ändern, damit alles so funktioniert, wie ich mir das vorstelle?

Die Abfrage sieht jetzt so aus:

$r_uservisit = thwb_query( "SELECT
        lastvisitedtime
    FROM
        $pref"."lastvisited
    WHERE
        userid=".intval($user['userid'])."
    ORDER BY
        lastvisitedtime DESC LIMIT 1"
);

Narodnaja schrieb am 26.05.2004 um 00:08 Uhr

hast du denn den Teil drin:

$uservisit = mysql_fetch_array($r_uservisit);

?

wenn ja, mach mal danach rein:

echo $uservisit['lastvisitedtime'];
exit();

und sag mal was rauskommt.

achja - stelle sicher, dass derjenige auch schon im Board war ;)
Was allerdings sein könnte - ich weiß nicht, ob das auch mit Leuten klappt, bei denen keine Cookies gesetzt werden.

Eistee schrieb am 26.05.2004 um 06:55 Uhr

hab ich auch schon probiert
dann wird einfach nix ausgegeben :(

Eistee schrieb am 01.06.2004 um 13:07 Uhr

Na, hat keiner ne Idee?
Das muss doch irgendwie zu realisieren sein

Narodnaja schrieb am 02.06.2004 um 23:18 Uhr

bin noch im Urlaub ;)

Eistee schrieb am 06.06.2004 um 16:11 Uhr

Und wann kann ich auf Hilfe hoffen? :)

Narodnaja schrieb am 06.06.2004 um 19:58 Uhr

bin wieder da; diese Woche ;)

PS: Post Nr. 40000 :)

Eistee schrieb am 13.06.2004 um 23:50 Uhr

Da ich (und mit Sicherheit auch andere ;)) immer noch großes Interesse an einem solchen Hack habe, habe ich mir nochmal Gedanken zur Umsetzung gemacht und dabei ist mir sogar etwas eingefallen :)
Offensichtlich ist es ja nicht möglich mit Hilfe der Tabelle *_lastvisited den letzten Besuch eines Users auszulesen. Da auch nicht zu jeden User ein Wert in dieser Tabelle gespeichert ist, erschließt sich mir ihr Nutzen sowieso nicht ganz... ?)
Wäre es nicht auch möglich ein neues Feld in der Tabelle *_user zu erstellen, in dem, sobald ein User das Forum "betritt", per Timestamp dieser Zeitpunkt geloggt wird?!
Diesen Wert könnte man dann über das vorhandene query in v_profile.php mit auslesen und schließlich über form_date() ausgeben.
Die einzige "Schwierigkeit" läge dann noch darin, in welcher Datei und welchem Code-Abschnitt der Timestamp in das neue Feld geschrieben wird.
Wäre klasse, wenn ihr mir mit diesem neuen Ansatz weiterhelfen könntet.

*edit*
Am infachsten/logischsten wäre es doch, den Timestampin das Feld zu schreiben, wenn eine neue Session geöffnet wird, oder?!
Ich nehme mal an, das geschie tin der header.inc.php - nur in welchem Abschnitt...?
Korrigiert mich bitte, wenn ich mit meinen Überlegungen falsch liege.

theDon schrieb am 14.06.2004 um 15:19 Uhr

lastvisited ist eigtl mehr für das gelesen / ungelesen - zeugs zuständig.

Eistee schrieb am 14.06.2004 um 18:47 Uhr

Und wie siehts nun mit meinen Überlegungen aus #12 aus?

Narodnaja schrieb am 14.06.2004 um 21:05 Uhr

Nutzen der lastvisited ist zum gelesen/ungelesen. Daher kommt auch kein Eintrag rein, wenn jemand nur in die Board-Übersicht (index.php) oder die pms geht.
Prinzipiell hast du schon recht. Du hättest halt aber bei jeder aufgerufenen Datei (index, board, shotopic, newtopic, reply, edit, pm, memberlist, ranks, ...) einen Datenbankschreibvorgang drin ... nicht so optimal. Daher hatte ich damals für den 24h-Hack die lastvisited genommen.

[Party-Worms] Jürgen schrieb am 15.06.2004 um 03:06 Uhr

http://hacks.slware.com/tboard/showtopic.php?threadid=578

Eistee schrieb am 16.06.2004 um 14:42 Uhr

Warum hat mich da denn nicht schon eher jemand drauf aufmerksam gemacht? :)

[Party-Worms] Jürgen schrieb am 16.06.2004 um 21:47 Uhr

weil hier scheinbar keiner auf der seite schaut ;)

Seite 1 von 1