Statusanzeige in der Verwaltung nur in Joomla! 1.5

In Joomla! 1.5 konnte man im Backend in der Übersicht der Benutzer direkt sehen, welche Benutzer gerade eingeloggt sind. In der Spalte "Angemeldet" wurde der Onlinestatus des jeweiligen Benutzers angezeigt. Das war sehr praktisch, um sich einen schnellen Überblick zu schaffen.

Benutzerverwaltung in Joomla! 1.5 - Onlinestatus

In Joomla! 2.5 ist diese Spalte nicht mehr vorhanden. Man kann zwar im Control Panel die letzten 5 eingeloggten Benutzer sehen, jedoch ist das meistens nicht ausreichend, um alle eingeloggten Benutzer zu erfassen. Die Online-Status Spalte würde hier einen viel besseren Dienst erweisen.

Online-Status in Joomla! 2.5 auch möglich

Ich habe einen kleinen Hack für Joomla! 2.5 geschrieben, der genau diese Spalte wieder verfügbar macht. Der große Vorteil bei diesem "Hack" ist, dass es eigentlich gar kein Hack, sondern ein Template Override ist. Das bedeutet, dass die Änderungen bei einem Update nicht verloren gehen.

Der Online-Status wird über die "Session"-Tabelle abgefragt und entsprechend gesetzt. Selbstverständlich müsste die Funktion in das Datenmodell (nach MVC-Muster) der Komponente, jedoch würde es sich dann um einen Core-Hack handeln, der unter allen Umständen vermieden werden sollte. Zusätzlich wurde die Ausgabe um die Online-Spalte erweitert, die mit den abgefragten Informationen befüllt wird.

So wird die Online-Status Anzeige aktiviert

Die angehängte Datei runteraden und entpacken, dann bekommt man eine default.php. Das ist die modifizierte Templatedatei der Benutzerkomponente. Diese wird in den html Ordner des aktiven Templates hochgeladen. In Joomla! 2.5 ist per Default das Template "Bluestork" aktiviert, also lädt man die default.php hier hoch:

administrator/templates/bluestork/html/com_users/users/default.php

Die Ordner com_users und users müssen ggf. manuell per FTP Programm erstellt werden. Wenn man alles richtig gemacht hat, dann sollte es in Joomla! 2.5 so aussehen:

Benutzerverwaltung in Joomla! 2.5 - Onlinestatus

Optimierungsmöglichkeit: Für jeden Benutzer wird in der Datenbank geprüft, ob eine Session für diesen Benutzer angelegt ist. Man könnte es dahingehend optimieren, dass zuerst alle Sessioneinträge geladen werden und die Daten dann mit den Benutzern abgeglichen werden. Somit bräuchte man nur einen Datenbankzugriff, statt für jeden Benutzer einen eigenen. Da es sich aber um eine Anzeige im Backend handelt, ist der Zeitfaktor, der zugegeben äußerst klein ist, nicht wirklich kritisch. Je mehr Benutzer man hat, desto vorteilhafter wäre diese Optimierung. Wer es optimieren möchte, kann es gerne tun!

Download des Template Overrides

Achtung: Diese Anpassung ist nur für Joomla! 2.5. Getestet wurde sie mit Joomla! 2.5.7!