Counter

Ein Modul für Contao ab mindestens Version 3.1, welches die Zugriffe auf Seiten, Artikel und Nachrichten zählen kann.
Die hier vorliegende Version ist auf schachbund.de zwar schon im produktiven Einsatz, befindet sich aber noch in der Entwicklungsphase.

Einbindung

Counter besteht aus einem Zähler- und einem Ausgabemodul. Das Zählermodul zählt die Zugriffe und muß vor dem Ausgabemodul im Seitenlayout oder in einer Seite eingebunden werden.

Diese beiden Frontendmodule finden Sie im Bereich Counter unter Themes -> Module. Das Zählermodul müssen Sie nur einmal einbinden, das Ausgabemodul können Sie an beliebig vielen Stellen mit verschiedenen Templates einbinden.
Das Zählermodul verwaltet die Daten in der Tabelle tl_fh_counter und schreibt zusätzlich die Daten der aktuellen Inhalte (Seite, Artikel, Nachricht) in $GLOBALS['fhcounter']. Dort werden sie vom Ausgabemodul weiter verwendet.

Template-Variablen

ViewCounterinfo (boolean): Kopfdaten des Zählers vorhanden ja/nein

ViewDiagrams (boolean): Diagramme des Zählers vorhanden ja/nein. Benötigt JQuery!

CounterSource: Name des Zählers (tl_news, tl_article, tl_page)

CounterPid: ID von CounterSource

CounterStarttime: Timestamp der ersten Zählung

CounterLastcounting: Timestamp der letzten Zählung

CounterLastip: IP-Adresse des letzten Besuchers, gezählt oder nicht gezählt. In der Regel sollte das die eigene IP sein.

CounterOnline: Anzahl der aktuellen Besucher dieser URL

CounterTopOnlineCount: Spitzenwert der Anzahl der aktuellen Besucher

CounterTopOnlineTime: Timestamp des Spitzenwerts der Anzahl der aktuellen Besucher

CounterTotalhits / CounterAll: Anzahl der Gesamtzugriffe

CounterYesterday: Anzahl der Zugriffe gestern

CounterThisDay: Anzahl der Zugriffe heute

CounterAverage: Durchschnittliche Besucherzahl je Tag

Das sind bei Weitem nicht alle Template-Variablen, aber die wichtigsten. Darüberhinaus sind die Templates noch nicht ausgereift und enthalten Fehler. Variablennamen können sich noch ändern oder werden nicht mehr benutzt.

Den o.g. Variablennamen kann außerdem jeweils noch ein Präfix mitgegeben werden. So zeigt PageCounterAverage z.B. die durchschnittliche Besucherzahl je Tag für die aktive Seite, egal ob gerade ein Artikel oder eine Nachricht angezeigt wird. Die anderen Präfixe sind Article und News.
Der allgemeine Zähler ohne Präfix gewichtet die anderen Zähler in der Reihenfolge Seite, Artikel, Nachricht. Der allgemeine Zähler wird also zuerst mit den Daten der Seite gefüllt und anschließend mit den Daten des Artikels überschrieben - falls überhaupt gerade ein Artikel angezeigt wird.

Einstellungen von Contao

Counter arbeitet mit folgenden Frontend-Einstellungen offensichtlich einwandfrei:

URLs umschreiben = true Auto_item aktivieren = true Die Sprache zur URL hinzufügen = false Leere URLs nicht umleiten = false Ordner-URLs verwenden = false Keine Seitenaliase verwenden = false

Andere Einstellungen wurden noch nicht genügend getestet. Solange aber nur Seiten gezählt werden, sollte FH-Counter keine Probleme haben. Die ID der aktuellen Seite wird einem Modul von Contao zur Verfügung gestellt.

Bei der Artikelzählung holt sich der Zähler den Inhalt der GET-Variablen articles und ermittelt damit den gerade aktiven Artikel.

Die Nachrichtenzählung ist etwas komplizierter, da das Seitenalias frei wählbar ist und Contao selbst keine Informationen zu einer angezeigten Nachricht liefert. Der Zähler ermittelt deshalb für alle Nachrichten-Archive zuerst die Weiterleitungsseiten, also die Nachrichtenleser. Entspricht die aktive Seite so einem Nachrichtenleser, wird aus $_SERVER['REQUEST_URI'] der Nachrichten-Alias extrahiert und die Nachricht kann gezählt werden.

Fehler und Support

Da Counter noch in der Entwicklungsphase ist und auch noch nicht im ER von Contao eingebunden wurde, halte ich mich mit Unterstützung zur Erweiterung etwas zurück. Mich kann man aber gern im Contao-Forum (Samson1964) oder hier auf GitHub kontaktieren.

Frank Hoppe