[gelöst] Login Datum
am 09.03.2010 - 12:36 Uhr in
Hallo zusammen,
ich würde gerne den Usern meiner Seite anzeigen, wann sie sich zuletzt eingeloggt haben.
$user->login liefert mir das Datum und mit format_date() kann ich's formatiert anzeigen.
Soweit so gut.
Lieber wäre mir aber eine Anzeige wie 'Letzter Besuch vor 3 Tagen'.
Wäre schön, wenn mir jemand einen Hinweis geben könnte.
Grüße, Broerello
- Anmelden oder Registrieren um Kommentare zu schreiben

Hi $user->login sollte eine
am 09.03.2010 - 12:46 Uhr
Hi
$user->login sollte eine timestamp sein.
Die kannst du einfach in dieser Funktion verwenden und ausgeben.
http://api.drupal.org/api/function/format_date/6
TimeAgo
am 09.03.2010 - 14:14 Uhr
Die Ausgabe des Login Datums mit format_date ist soweit kein Problem.
Lieber würde ich aber ausgeben, wie lange es her ist, daß der User sich zuletzt angemeldet hat. (Timeago)
Sowas 'Letzer Besuch vor drei Tagen'
Hat Drupal eine Funktion, die das berechnen kann?
Sonst müßte ich wohl das Login Datum vom aktuellen Datum abziehen und nach Tagen umrechnen. Wär natürlich schön, wenn's einfacher ginge...
Grüße, Broerello
Ach so, ich hatte dich so
am 09.03.2010 - 14:28 Uhr
Ach so, ich hatte dich so verstanden das es garnicht geht :)
In Google oder hier im Center einfach in der Art wie "Time ago PHP" eingeben. Wird dir bestimmt eine Menge Source geben. Das ist eine beliebte PHP Aufgabe.
Hab's jetzt
am 12.03.2010 - 01:19 Uhr
Drupal hat die passende Funktion.
Mit
http://api.drupal.org/api/function/format_interval/6
kann man das sehr schön lösen: Timestamps subtrahieren und mit dieser Funktion ausgeben.
Für meine Anzeige 'Letzter Besuch vor 3 Tagen' war aber noch mehr zu tun.
Da $user->login jedesmal aktualisiert wird, wenn sich ein User einloggt, ist es für diese Anzeige ungeeignet.
Hab mir dann ein Minimodul gebaut, das den Zeitpunkt des letzten Login als $user->last_login_display im User Objekt sichert.
Mit
format_interval($user->login - $user->last_login_display, 1)bekomme ich dann den formatierten und lokalisierten Zeitraum zwischen letztem und aktuellen Login.Cheers, Broerello
Hallo Broerello, genau das
am 22.05.2011 - 16:24 Uhr
Hallo Broerello,
genau das was du beschreibst brauche ich auch. Genauer gesagt die Ausgabe des letzten Logins. Kannst du mir netterweise dein Mini Modul zukommen lassen bzw. hier den Code posten?
Das wäre super nett :)
Danke,
viele Grüße Stefan
LastLogin
am 25.05.2011 - 00:29 Uhr
Klar,
ich hab's mal angehangen.
Wie oben schon angedeutet, sichert das Modul den Zeitpunkt des (vor)letzten Einloggens eines Users als timestamp im User Objekt.
Es ist also möglich, dem aktuell angemeldeten User auszugeben, wann er sich vorher das letzte mal angemeldet hat.
$user->last_login_displayliefert diesen timestamp. Je nachdem, wo Du das ausgeben willst, musst Du noch einglobal $user;davor setzen.Zur formatierten Ausgabe kannst Du [api:format_date] benutzen. Zum Beispiel so in der Art:
<?phpprint $user->last_login_display ? t('Last visit') . ': ' . format_date($user->last_login_display) : t('First visit');
?>
Ich wollte ja den Zeitraum angeben, à la "Ihr letzter Besuch liegt drei Tage zurück". Dazu eignet sich [api:format_interval]:
<?phpprint format_interval($user->login - $user->last_login_display, 1);
?>
Bei mir funktioniert das einwandfrei, dennoch: Benutzung auf eigene Gefahr.
Wenn Du das Modul deaktivierst, solltest Du danach noch Deinstallieren, sonst bleiben Einträge in der Datenbank zurück.
Hoffe das bringt Dir was und viel Spaß damit.
Grüße, Broerello
Danke
am 01.06.2011 - 16:12 Uhr
Hallo Broerello,
vielen Dank für das Modul + der tollen Erklärung.
Damit werde ich es mal probieren :)
DANKE!
Viele Grüße Stefan