Frontend User Logging
Frontend User Logging
Gibt es eventuell eine Erweiterung bzw. Modul für das Logging der Frontend User Zugriffe, sodass der Username und der Zeitpunkt des Logins angezeigt wird? Habe bisher nur die Logging-Funkton für die Backend-User entdeckt.
Gruss
Gruss
Re: Frontend User Logging
ähm, neingagarin hat geschrieben:Gibt es eventuell eine Erweiterung bzw. Modul für das Logging der Frontend User Zugriffe, sodass der Username und der Zeitpunkt des Logins angezeigt wird?
*** make your own tools (wishlist :: thx)
Nur die letzte Anmeldung oder Big Brother?
Gruß
HerrB
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Im Login-Modul ergänzen (nur Output):
Am Anfang:
In dem Bereich ergänzen, der "sie sind angemeldet als" ausgibt:
Bei der Ausgabe kann $dLastLogin natürlich über die date()-Funktion beliebig formatiert werden (siehe http://www.php.net/manual/de/function.date.php). Dabei sollte das Datum ggf. konvertiert übergeben werden:
Ungetestet.
Übrigens gibt es einen kleinen Haken: Du kennst das letzte Anmeldedatum nur für diese Seite (da die nächste Zeile das Datum schon durch das aktuelle ersetzt). Wenn Du es überall brauchst (bis zur nächsten Anmeldung), sag Bescheid.
Gruß
HerrB
Am Anfang:
Code: Alles auswählen
cInclude("classes", "class.frontend.users.php");
Code: Alles auswählen
$oFEUser = new FrontendUser;
$oFEUser->loadByPrimaryKey($auth->auth["uid"]);
$dLastLogin = $oFEUser->getProperty("statistics", "lastlogin");
$oFEUser->setProperty("statistics", "lastlogin", date("Y-m-d H:i:s"));
if ($dLastLogin == "") {
echo mi18n("This is your first visit");
} else {
echo sprintf(mi18n("Last login: %s"), $dLastLogin);
}
Code: Alles auswählen
echo sprintf(mi18n("Last login: %s"), date("d.m.Y H:i", strtotime($dLastLogin)));
Übrigens gibt es einen kleinen Haken: Du kennst das letzte Anmeldedatum nur für diese Seite (da die nächste Zeile das Datum schon durch das aktuelle ersetzt). Wenn Du es überall brauchst (bis zur nächsten Anmeldung), sag Bescheid.
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Code: Alles auswählen
$oFEUsers = new FrontendUserCollection;
$oFEUsers->query;
while ($oFEUser = $oFEUsers->next()) {
echo $oFEUser->get("name");
echo $oFEUser->getProperty("statistics", "lastlogin");
}
Ansonsten: In der <prefix>_properties.
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Was ich gepostet habe, wäre ein Modul, welches die Angaben ausgeben würde (kann man natürlich noch beliebig erweitern).
Ansonsten habe ich die Antwort nicht ganz verstanden, da - wenn es nur um die Speicherung von Eigenschaften geht - der Weg via Objekt->setProperty der Einfachste ist.
Die Funktionen set und getProperty sind eine Methode des Objekts ItemCollection, siehe class.genericdb.php. Das Frontend User-Objekt ist davon abgeleitet.
Man kann Eigenschaften auch manuell setzen, z.B. als Mandanteneinstellung. Dazu ist die class.properties.php einzubinden, ein Objekt zu erzeugen und über die entsprechenden Methoden der Wert zu speichern - welche Parameter dort benötigt werden, musst Du Dir aus dem Code selbst raussuchen (und für mal die Angaben für eine vorhandene Mandanteneinstellung aus der DB auslesen).
Aber zumindet die Last-Login-Zeit sollte man nicht als Mandanteneinstellung speichern, da es keine Einstellung ist und außerdem pro Nutzer ein Wert definiert werden muss (das ist bei den Mandanteneinstellungen fehl am Platze).
Gruß
HerrB
Ansonsten habe ich die Antwort nicht ganz verstanden, da - wenn es nur um die Speicherung von Eigenschaften geht - der Weg via Objekt->setProperty der Einfachste ist.
Die Funktionen set und getProperty sind eine Methode des Objekts ItemCollection, siehe class.genericdb.php. Das Frontend User-Objekt ist davon abgeleitet.
Man kann Eigenschaften auch manuell setzen, z.B. als Mandanteneinstellung. Dazu ist die class.properties.php einzubinden, ein Objekt zu erzeugen und über die entsprechenden Methoden der Wert zu speichern - welche Parameter dort benötigt werden, musst Du Dir aus dem Code selbst raussuchen (und für mal die Angaben für eine vorhandene Mandanteneinstellung aus der DB auslesen).
Aber zumindet die Last-Login-Zeit sollte man nicht als Mandanteneinstellung speichern, da es keine Einstellung ist und außerdem pro Nutzer ein Wert definiert werden muss (das ist bei den Mandanteneinstellungen fehl am Platze).
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
HerrB, nochmals danke für die Antworten.
Ich habe die setProperty-Funktion in deiner letzten Antwort übersehen, damit sollte es eigentlich möglich sein, die Frontenduser samt deren Last-Login-Zeitpunkt auf der Welcome-Seite im Backend auszugeben - mal sehen, was daraus wird) Ich werde mal die Ergebnisse nachher posten.
MfG
Ich habe die setProperty-Funktion in deiner letzten Antwort übersehen, damit sollte es eigentlich möglich sein, die Frontenduser samt deren Last-Login-Zeitpunkt auf der Welcome-Seite im Backend auszugeben - mal sehen, was daraus wird) Ich werde mal die Ergebnisse nachher posten.
MfG
Hallo,
ich habe ein ähnliches Anliegen, kann es aber mit meinen Stümperkenntnissen nicht alleine in den Griff bekommen...
Ich würde gerne abrufen können, wann sich welcher Frontenduser zuletzt eingeloggt hat.
Kann mir jemand dabei helfen? Ich fühle, die Antworten von HerrB sind der Schlüssel zur Lösung. Allein rall ich's aber nicht
Gruß, Tom
ich habe ein ähnliches Anliegen, kann es aber mit meinen Stümperkenntnissen nicht alleine in den Griff bekommen...
Ich würde gerne abrufen können, wann sich welcher Frontenduser zuletzt eingeloggt hat.
Kann mir jemand dabei helfen? Ich fühle, die Antworten von HerrB sind der Schlüssel zur Lösung. Allein rall ich's aber nicht

Gruß, Tom
War noch ein kleiner Bug drin (den man über einen Blick in die DB leicht auch selbst hätte fixen können...) und das Include muss natürlich rein...
Aber ich bin ja nicht so:
Gruß
HerrB
Aber ich bin ja nicht so:
Code: Alles auswählen
cInclude("classes", "class.frontend.users.php");
$oFEUsers = new FrontendUserCollection;
$oFEUser->setOrder("username");
$oFEUsers->query;
while ($oFEUser = $oFEUsers->next()) {
echo $oFEUser->get("username");
echo $oFEUser->getProperty("statistics", "lastlogin");
}
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Hallo HerrB,
ist mir fast schon ein bischen peinlich
Wenn ich deinen Code in ein Modul packe, bekomme ich folgende Fehlermeldung:
Sorry, wenn meine Unwissenheit nervt 
ist mir fast schon ein bischen peinlich

Wenn ich deinen Code in ein Modul packe, bekomme ich folgende Fehlermeldung:
Code: Alles auswählen
Fatal error: Call to a member function on a non-object in ...

-
- Beiträge: 3626
- Registriert: Di 12. Okt 2004, 20:00
- Wohnort: Voerde (Niederrhein)
- Kontaktdaten:
Dann versuch mal:silicone hat geschrieben:Wenn ich deinen Code in ein Modul packe, bekomme ich folgende Fehlermeldung:Sorry, wenn meine Unwissenheit nervtCode: Alles auswählen
Fatal error: Call to a member function on a non-object in ...
Code: Alles auswählen
cInclude("classes", "class.frontend.users.php");
$oFEUsers = new FrontendUserCollection;
$oFEUsers->setOrder("username");
$oFEUsers->query;
while ($oFEUser = $oFEUsers->next()) {
echo $oFEUser->get("username");
echo $oFEUser->getProperty("statistics", "lastlogin");
}
Es liefert allerdings folgende Fehlermeldung im Backend:
Hilft das weiter? (Mir leider nicht)
Code: Alles auswählen
[16-Jun-2006 12:27:57] /bios/cms/front_content.php?idcat=54 next_record called with no query pending in Module ID 49.