Contao Tipps
currentLogin korrekt anzeigen
Das Modul Auflistung wird oft genutzt, um eine Liste der Mitglieder zu sehen und was sie zuletzt angemeldet waren. (lastLogin)
Die DB enthält aber auch die Info, wann diese aktuell angemeldet sind / waren (currentLogin). Dieses Feld ist aber nicht in der DCA Definition und wird daher als timestamp angezeigt statt Datum und Uhrzeit.
Annahme, es soll angezeigt werden: Vorname, Nachname, lastLogin, currentLogin
Dazu nutzt man das Modul "Auflistung" und gibt dazu an:
- Tabelle: tl_member
- Felder: firstname,lastname,lastLogin,currentLogin
Das würde ohne Änderungen ergeben, nach Einbau des erstellten Moduls in einem Artikel:

Um nun das Feld currentLogin auch korrekt anzuzeigen und das ganze updatesicher, ergänzt man die dcaconfig.php und die langconfig.php wie folgt:
/system/config/dcaconfig.php
$GLOBALS['TL_DCA']['tl_member']['fields']['currentLogin'] = array
(
'label' => &$GLOBALS['TL_LANG']['MSC']['currentLogin'],
'sorting' => true,
'flag' => 6,
'eval' => array('rgxp'=>'datim')
);
/system/config/langconfig.php
$GLOBALS['TL_LANG']['MSC']['currentLogin'] = array('Aktuelle Anmeldung', 'Aktuelle Anmeldung: %s');
Das sieht danach dann so aus:

Noch einige Worte zum Unterschied der beiden Felder currentLogin und lastLogin.
Beim Login wird das Datum+Uhrzeit von currentLogin nach lastLogin kopiert und in currentLogin das aktuelle Datum+Uhrzeit reingeschrieben. Beim Logout ändert sich nichts.
Damit erhält man beim nächsten Login den Zeitpunkt des letzten Logins. (das eigentliche Ziel dieser beiden Felder) Es kann nie sichergestellt werden, dass sich alle auch abmelden, es könnte ja z.B. der Browser abstürzen.
Wenn currentLogin > lastlogin kann das bedeuten:
- Mitglied ist eingeloggt
- Mitglied war eingeloggt, hat sich aber nicht abgemeldet (Browser Absturz)
Testen kann man das wiederum über sie Nutzer-Session, die in anderer Tabelle abgespeichert wird. Allerdings hat man auch hier das Problem der Session Haltezeit. Wenn eine Session vorhanden ist, heißt das nur, dass der Nutzer vor einigen Minuten noch aktiv war. Ob der Nutzer bereits weg ist sieht man da nicht, woher auch.
Aber diese Auswertung geht dann nicht mehr mit dem Modul Auflistung.
Das Modul "LastLogin und MembersOnline" arbeitet nach dieses Art auf Weise.