Vorwort
Auf der Suche nach einem Counter für meine Homepage, fand ich damals das Joomla - Modul von Vianora mod_vvisit_counter.Da ich noch ein paar Wünsche hatte und damals seitens Vinaora niemand mehr auf Anfragen reagierte, habe ich dieses kurzerhand selber weiter entwickelt. Mittlerweile ist ein komplett eigenständiges Modul entstanden, welches nicht mehr viel mit dem Originalen Modul zu tun hat. Auf den folgenden Seiten findet ihr das Modul zum Download, eine umfangreiche Anleitung sowie die Möglichkeit bei Problemen Anfragen stellen zu können.
Der Counter kann als : "Counter", erweitertes "Who-Is-Online" , "IP to Country" Tool, einfacher Datumsanzeiger, und vielem mehr eingesetzt werden.
Inhalt
Features
Eine Zusammenfassung was der Counter bietet:
- View - Design :
---------------------------- 9 Counter Styles
- weitere Styles zum download
- Zeigt Counter
- Zeigt Heute - Gestern - Woche - Monat - Alle
- Zeigt Maximale Besucher an einem Tag aus den Statistikdaten
- Zeigt ein Detail- oder Einfaches Statistik Bild
- Zeigt Angemeldete User ( Anzahl )
- Zeigt Angemeldete User ( Name, Account, ... )
- Zeigt Registrierte Users ( Anzahl )
- Zeigt Heute Registrierte Users ( Anzahl )
- Zeigt Heute Registrierte Users ( Name, Account, ... )
- Zeigt Gäste ( Anzahl )
- Zeigt Besucher ( Gäste + Eingeloggt )( Expression )
- Auf die Account-Anzeigen kann ein Link auf z.B. ein Userprofile gesetzt werden
- Zeigt Datum für "Von - Bis" bei MouseOver
- Jede View kann abgeschalten werden ( unsichtbarer Counter )
- Die Reihenfolge der Views kann beliebig verändert werden
- Es können beliebig "Spacer" zwischen den Views eingefügt werden
- Auf die Views kann ein Link gesetzt werden
- In PRE-und-POST View kann beliebiger eigener HTML Code eingefügt werden, so dass ein komplett eigenes Layout erstellt werden kann
- Komplett anpassbar per CSS ( intern, extern, seperat wählbar für jeden Counter )
- Mit Expressions in Pre- and Post Textfield komplett 'anpassbar'
- Zeigt Besucher Daten: IP Address, Country, Flagge,...
- Genaueres 'Who-Is-Online' Modul durch z.B. eine User/Gäste Inaktiv Zeit bei welcher Besucher nicht mehr als Online angezeigt werden wenn diese Besuchszeit überschritten wird
- Sprachsupport: Autotranslate Aus(Manuell), per Browser-Sprache , per Joomla-Sprache (JoomFish)
- Technisch :
---------------------------- Einstellbarer Startwert
- Einstellbare Zählzeit wann ein Besucher als Neu gezählt wird ( Täglich oder Nach Zeitablauf )
- Löscht Automatisch Alte Datenbankeinträge, komplett konfigurierbar nach Anzahl der Einträge und Anzahl an Tagen in der Datenbank
- Ip-Adresse wird verschleiert gespeichert, einstellbar auch im Klartext
- Filterung Auto Block Bots / Robots
- Erstelle eigene Filterlisten: by IP-Adress oder by UserAgent ( Textfeld oder aus Datei )
- Filterung nach Membertype ( Users oder Gäste )
- UserAgent kann optional gespeichert werden
- Eigener Wochenanfang: Montag, Sonntag, Samstag
- Jeder Counter (Countermodul) kann seine eigene Datentabelle erhalten um mehrere Counter erstellen zu können
- Ein Counter kann im Read-Only Modus arbeiten und dient so nur als Anzeige für eine bestehende Datentabelle (Counter)
- Events: Trigger abhängiges Ausfühen von eigenem PHP-Scripten ( alle x )
- Events: Trigger abhängiges Versenden von EMail ( alle x )
- Besucher kann per IP-Adress und Cookie idenifizierbar
- Besucher IP kann aus FORWARDER Tag gelesen werden ( behind a proxy )
- IPv6 vorbereited
Änderungen - Releasenotes
PHP4 Nutzer:
Aus zeitlichen Gründen habe ich mich entschieden ab Version 1.9.18 keine PHP4-Version mehr zu erstellen. Sehr viele Systeme setzen mittlerweile auf PHP5, was aus Sicherheitsgründen auch vollkommen i.O. ist. Für mich bedeutet die Erstellung einer extra Version einiges an Arbeit und benötigt viel Zeit, welche ich leider nicht habe.
aktuelle Versionen:
für Joomla 1.5 : 2.0.3
für Joomla 1.6 / 1.7 / 2.5 : 2.0.4_j16
für Joomla 3 : 2.0.4_j3
Version 2.0.4_j3
- New: Joomla 3 kopatible Version. Getestet auf Joomla 3.3.6
Version 2.0.4_j16
- Fix: behebt ein kleines Problem mit dem Sprachfile. Wer bis dahin keine Probleme hatte, muss nicht updaten.
Dieses Release dient hauptsächlich als Vorbereitung für eine Joomla 3 Version. Offene Bugs sollten abgeschlossen werden, bevor mit arbeiten begonnen wird.
Version 2.0.3 und 2.0.3_j16
- Fix: behebt ein Problem das bei neueren MySQL Versionen auftritt und dazu führt, dass der Counter nicht mehr zählt. ( wer keine Probleme hat, muss nicht updaten :) )
Version 2.0.2 und 2.0.2_j16
- Fix: ds Statistikbild wurde bei Installationen in denen Joomla im Root installiert ist, nicht gefunden ( durch Änderung relative URLs in 2.0.1 )
Version 2.0.1 und 2.0.1_j16
- Neu: Gruppenfilter für Who-Is-Online Anteil ( nur die _j16 Version )
- Neu: Flagge CS
- Change: Relative URLs
- Change: Optimierung SQL für tägliche Sperrzeit
- Fix: E_Strict Meldung in ip2country entfernt
- Fix: CSS enthielt Styles doppelt
- Fix: Datenbankspalte für zukünftige Werte wurde mit Char "NULL" belegt, anstatt NULL als Value
Version 2.0.0 und 2.0.0_j16
Ein neues Major-Release welches einige Erweiterungen, Änderungen und Optimierungen enthält.
- Neu: IP-Adressen werden verschleiert gespeichert ( Gesetze ), können aber auch wie bisher in Raw abgelegt werden
- Neu: für die autom. Übersetzung kann nun als Referenzsprache auch die Joomla-Einstellung dienen, zusätzlich zur eingestellten Browsersprache. Dies benötigen z.B. JoomFish Nutzer ( Anm.: funktioniert wirklich super )
- Neu: neue Berechnungsansicht für Maximale Besucherzahl an Tag X aus der Statistik
- Neu: mehr Bilder für die Tabelle und Counter
- Neu: IPv6 Adressen 'ready'
- Änderung: mehr Platz für den UserAgent in der Datenbank
- Änderung: Vermeidung von hoher Last der MySQL bei mehr als Einträgen ( SQL Optimierungen )
- Neu: für die Joomla 1.6/7 Version kann nun das Update-Feature genutzt werden
- kleinere Änderungen z.B. am CSS
Anzeige aller ÄnderungenAnzeige aller Änderungen
Installation und Update
Voraussetzung : Joomla 1.5.x mit PHP5 Voraussetzung : Joomla 1.5.x mit PHP4.4 ( Patch ) ( bis Counter 1.9.18 ) Voraussetzung : Joomla 1.6.x mit PHP5 ( _j16 ) Voraussetzung : Joomla 1.7.x mit PHP5 ( _j16 ) ab MySQL 4.1
Überblick
Im folgenden Video wird dargestellt wie die Installation des Counters erfolgt. Dabei werden bereits verschiedene allgemeine Situationen gezeigt, wie z.B. das Anlegen eines Footer-Zähl-Counters und viele Dinge mehr.Installation
Das Modul kann per Joomla - Modul - Installation installiert werden.Ab Version 1.9.3 kann eine Datenbasis zu Ermittlung von IP-Adresse zu Ländercode eingespielt werden. Beachtet Bitte, das dies beim ersten Aufruf ( wenn Aktiviert ) durchgeführt wird und dieser somit etwas länger dauern könnte.
Nach der Installation ist das Modul ggf. zu aktivieren und natürlich einzustellen.
Update
Ein Update kann durch den Joomla-Upgrade Vorgang ( einfaches erneutes Installieren ) erfolgen.Auch möglich ein manuelles Update durch Überschreiben der Dateien im Modulverzeichnis /module/mod_vvisit_counter mit der neuen Version zu überschreiben ( beachtet dabei den Hinweis zu den Sprachfiles ).
Ab Version 2.0.0 für Joomla 1.6/7 steht zusätzlich ein Update-Server zur Verfügung. Damit kann einfach innerhalb von Joomla auf Update des Counters geprüft werden.
Nach einem Update sollten immer die Parameter kontrolliert und einmalig Gespeichert werden.
Folgend wird auf einige Besonderheiten bei Versionswechseln hingewiesen. Bitte beachtet auch immer die Kommentare bei den Änderungsmeldungen.
Nachtrag zum Update von Version 1.9.x auf Version 2.0.x :
Dies wird notwendig, da sich durch Erweiterungen des Counters Änderungen an der Datenbank ergeben haben.
Nachdem die Datenbanktabellen migriert wurden, kann der Counter einfach mittels Joomla-Installer geupdated und konfiguriert werden.
Vor Beginn des Updates sollte die Applikation in den Offline-Modus geschalten werden !
Datenbank Update von v1.9.xx zu v2.0.xx
Das Installationsfile des Counters enthält ein SQL Script "upgradeFrom1_9.sql" welches alle notwendigen Kommandos enthält. Dieses Script muss mit einem Datenbanktool ausgeführt werden, z.B. phpMyAdmin.
Das Script sichert die aktuelle Tabelle nach xxx_tmp , erstellt eine neue Datentabelle und migriert die alten Daten in diese neue Tabelle.
Somit sind im Fehlerfall eure Daten in der xxx_tmp Datei gesichert und ein einfaches 'Rename' stellt den Zustand wieder her.
Zu beachten dabei ist:
habt ihr Eure Tabelle anders benannt, müsst ihr im SQL-Script diesen Tabellennamen ersetzen.
Update Einspielen und Konfigurieren von v1.9.xx zu v2.0.xx
Vor Beginn des Updates sollte die Applikation in den Offline-Modus geschalten werden !
Update des Counters mittels Joomla-Installer
Da eine neue View hinzugekommen ist, muss im Parameter Reihenfolge dies ";16" zugefügt werden ( ohne " ).
Weiterhin ist das Tabellenbild zu setzen, da nun eine Auswahl möglich ist. Und natürlich sind die neuen Parameter bei Bedarf zu konfigurieren.
CSS: die neue View bringt auch zusätzliche CSS-Klassen mit (mvc_max_user_day). Diese befinden sich am Ende des mvc.css Files und sind evt. den eigenen CSS-Files hinzuzufügen.
die Version enthält im allgemeinen optimierte CSS-Einstellungen
Update Einspielen und Konfigurieren von v1.9.xx zu v2.0.xx
funktiniert alles Reibungslos, kann die xxx_tmp Tabelle gelöscht werden. Der Befehl dazu ist ebenfalls im Script enthalten.
Optional:
benötigt ihr die alten IP-Adresse nicht mehr im Klartext, könnt ihr diese direkt mit
UPDATE jos_vvisitcounter SET ipraw = NULLlöschen lassen.
HowTo Update Video v1.9.xx zu v2.0.xx
Ältere ÄnderungsmeldungenÄltere Änderungsmeldungen
PHP 4
PHP4 Nutzer:Aus zeitlichen Gründen habe ich mich entschieden keine PHP4-Version mehr zu erstellen. Sehr viele Systeme setzen mittlerweile auf PHP5, was aus Sicherheitsgründen auch vollkommen i.O. ist. Für mich bedeutet die Erstellung einer extra Version einiges an Arbeit und vor allem einiges an Zeit, welche ich leider nicht habe.
Der PHP4-Patch 1.9.16 ist somit bis zur Counter-Version 1.9.18 nutzbar !
PHP4 Installation bis 1.9.18PHP4 Installation bis 1.9.18
Anwendung
Der Counter arbeitet als Aufrufzähler, d.h. er wird in die aufgerufene Webseite eingebettet um zu Zählen. Wird der Counter (das Modul) auf einigen Seiten ausgeblendet, werden diese Seiten nicht vom Counter erfasst. Soll der Zähler also die komplette Webseite erfassen, muss das Modul in einem Bereich integriert werden, welcher immer dargestellt wird - dies wird meist der Footer sein. Will man dort nichts anzeigen, kann man alle Anzeigen des Counters abschalten und ein zweites (oder mehr ) Countermodul(e) zur Anzeige verwenden ( Nur-Lese-Betrieb ) z.B. zur Darstellung nur auf der Startseite.Am Beispiel dieser Homepage könnt ihr die Praktische Anwendung sehen :
- In der Fussleiste, und damit auf allen Seiten, sieht man den Zähl-Counter welcher so konfiguriert ist, das nur der "Counter" angezeigt wird. Das Counter-Modull an dieser Stelle arbeitet im Schreib-Modus - also als Zähler-Updater.
- Auf der Startseite, und nur dort, sieht man den um einige Anzeigen erweiterten Anzeigecounter ( Statistik, Image, usw. ). Dieses Modul arbeitet im ReadOnly-Modus und wird nur auf der Startseite dargestellt ( es zählt also nicht ! ). Es liest seine Daten aus der gleichen Datentabelle wie das Countermodul der Fussleiste, stellt also dessen Daten dar.
- Als Drittes und komplett unabhängiges Counter-Modul, ist der Demo-Counter installiert. Dieser nutzt zusätzlich eine eigene Datentabelle ( und eigens Statistik-Ausgabe-Image ). Da der Counter nur auf der Demo-Seite aktiviert ist, werden auch nur die Aufrufe dieser Seite erfasst und dargestellt.
- Zusätzlich gibt es noch weitere ReadOnly-Counter-Module für die Extended Demo Page Joomla-Counter. Diese Counter lesen wiederum aus der Datentabelle des Demo-Counters.
Zur Erzeugung eines weiteren Countermodules erstellt man, von dem vorher installierten Counter-Modul, einfach eine Kopie. So erhält man beliebige Countermodule, welche unabhängig konfiguriert und eingesetzt werden können.
Denkt daran, dass der Counter auch als einfacher IP-Adress-Anzeiger genutzt werden kann, wobei man alles abschaltet außer die IP-Anzeige.
Anm.: aus aktuellem Anlass möchte ich nochmals obigen Hinweis wiederholen:
Seiten auf welchen der Counter nicht angezeigt wird, werden auch nicht gezählt !
Möchte man auch "Quereinsteiger" zählen die nicht von der Startseite kommen, muss der Counter in einem Bereich angebracht werden, welcher IMMER angezeigt wird z.B. dem Footer. Andere Counter können als Copy des Hauptzählcounters erstellt, auf Read-Only gesetzt und somit nur zur Anzeige mit evt erweiterten Informationen genutzt werden.
Beispiele UserAgents auswerten
Ab Version 1.9.0 ist es Möglich UserAgents speichern zu lassen. Da es z.Z. im Counter dahingehend noch keine Auswertung gibt, möchte ich allen Interessierten ein Script zur Verfügung stellen um die verschiedenen Agenten pro Tag in der Datenbank anzeigen zu lassen :SELECT date(from_unixtime(tm)) tag, count(*) c, useragent agent FROM jos_vvisitcounter WHERE userAgent IS NOT NULL GROUP BY tag , agent
Nachtrag:
mit Version 1.9.12 ist es nun möglich mit den Pre- PostText Expressions auch Daten zum UserAgent anzeigen zu lassen. Eine Statistische Auswertung direkt im Counter wird allerdings noch nicht vorgenommen. Dies soll in die in Entwicklung stehende Counter Komponente com_vvisit_counter einfliesen.
Parameter
Caching | Cache für Counter - Never | |
CSS-Suffix ( Module Class Suffix ) |
hier wird dem CSS Klassennamen ein Suffix angehängt um Counter mit verschiedenen Styles auszustatten. z.B. wird aus class="mvc_main" mit dem Suffix "_sfx" dann class="mvc_main_sfx" |
|
CSS File | hier wird die Counter CSS-Style-Datei ausgewählt. Als Default ist das mitgelieferte mvc.css File eingestellt. Ihr könnt ein beliebiges File auswählen, welches sich im Modul Ordner befinden muss ( Endung css ). Wählt ihr "Nicht verwenden" werden die CSS-Klassen im Template gesucht ( verhalten wie in Versionen vor 1.9.13 ). |
|
Wann soll ein User (IP) der erneut auf die Seite kommt, also neu gezählt werden. Nur Täglich neu (also einmal pro Tag) oder nach Ablauf von Sperrzeit. Beachtet bei Täglich, dass einige User über einen Proxy Server gehen und damit mehrere User auf ein und dergleichen IP bei euch ankommen und so nicht gezählt würden. |
||
Sperrzeit | Wie lang wird eine IP nicht als neu gezählt ( Minuten ). Gültig wenn Besucher zaehlt neu auf Sperrzeit gesetzt ist. | |
Startwert des Counters falls dieser nicht bei Null beginnen soll. | ||
Einträge in der Datenbank gibt es in der Datenbank mehr als X Datensätze, werden die Daten gerollt, d.h. es entstehen keinen neuen Datenzeilen mehr in der Datenbank da ältere Datensätze gelöscht werden. Anm.: Benötigt ihr überhaupt keine Daten in der Datenbank, also z.B. ihr wollt gar kein Statistik-Diagramm anzeigen oder macht eure Auswertungen eh über ein anderes Tool und zeigt damit nur die Counter-Zahlen an, dann setzt den Wert auf 1. Das spart Platz in der Datenbank ! |
||
Wieviel Tage sollen in der Datenbank gehalten werden Mit diesem Parameter kann man einstellen, dass der Counter X Tage in seiner Datenbank vorhält, ältere Daten werden bereinigt. Anm.: soll dennoch einmal "außer Plan" eine Prüfung erfolgen, müsst ihr einfach in euerer Datenbank die Tabelle jo s_mod_vvisit_counter_memo löschen. Dies ist eine Memory Tabelle, wird also auch nach einem DB-Server gedropt und es wird dann ebenfalls einen Prüfung vorgenommen. |
||
nach dem ersten Start eines Countermodules, wird die Datentabelle angelegt. Danach kann der zusätzliche Test ob die Tabelle schon vorhanden ist, durch diesen Schalter eingespart werden (Performance) ( also immer nach dem ersten Start abschalten ). | ||
Datentabelle des Counters ( ohne Joomla Prefix ). In dieser Tabelle legt das aktuelle Countermodul seine Daten ab. |
||
hier kann der Counter als 'nur Anzeiger' konfiguriert werden - Aufrufe werden nicht gezählt. ( wozu, z.B. verschiendene Ansichten auf einen Schreibcounter ) | ||
hier kann der Counter zur Ermittlung eindeutiger User Cookies verwenden ( z.B. um das AOL Reverse Proxy Problem zu umgehen ). | ||
liegt der Counter hinter einem nicht transparentem Proxy (Strato Problem), kann hier die Forwarder IP-Adresse genutzt werden, anstatt der (dann falschen) Client-IP-Adresse | ||
Speichere IP sichtbar | hier kann bei Bedarf die IP-Adresse zusätzlich im Klartext abgespeichert werden ( Systemanalyse etc. ) ( achtet auf die Gesetze in Eurem Land ). | |
soll die IP-Adresse des Aufrufers anzeigt werden | ||
IP Pre Text | dieser Text wird vor der IP-Adresse angezeigt | |
Auswahl des Anzeige Styles der IP-Adresse ( siehe auch Parameter Display Type ) | ||
Filter IPs | hat der Aufrufer die IP aus der Liste ( durch Semikolon getrennt ) wird dieser weder gezählt noch gespeichert.
die IP-Adresse wird in Kurzform angegeben : 127.0.0.1 statt 127.000.000.001 ! |
|
will man Ländercodes/.name oder -flagge darstellen, braucht es eine Datenbasis aus der dies ermittelt wird. Dazu wird in der Datenbank eine Tabelle angelegt und wenn ein Datenfile vorhanden ist, diese Daten eingespielt. Nach Einspielung sollte der Schalter wieder auf Nein gesetzt werden (Performance). Anm: alle Countermodule verwenden die gleiche IPtoCountry Datentabelle. Beachtet das dies etwas dauern kann ! |
||
soll der Ländercode der CallerIP angezeigt werden beachtet die besondere Lizenz IP to Country |
||
soll der Ländername der CallerIP angezeigt werden beachtet die besondere Lizenz IP to Country |
||
soll der Länderflagge der CallerIP angezeigt werden beachtet die besondere Lizenz IP to Country |
||
Größe der Länderflagge | ||
Die Datenbasis welche mit dem Counter ausgeliefert wird, erfordert die Ausgabe der Lizenz ( wird an an POST Text angehangen ) ( siehe IP to Country) . Dies kann bei Verwendung von Alternativen hier abgeschalten werden. Die Ausgabe der License ist nur notwendig wenn Country, CountryFlag oder CountryCode angezeigt wird. |
||
Text der License (HTML) ( wird an an POST Text angehangen ). | ||
hierbei werden automatisch Robots nicht gezählt ( gespeichert ). Dies vereinfacht ab V1.9.6 die Nutzung des Filter UserAgents Parameters da bereits viele Robots abgedeckt werden. Siehe auch: Liste |
||
enthält der UserAgent-Wert einen Text aus der Liste, durch Semikolon getrennt, wird dieser weder gezählt noch gespeichert. Beispiel wären: Googlebot;Slurp;msnbot;Eurobot;Baiduspider ... etc. ( Achtung: Case sensitive ! ) |
||
Entspricht dem vorigen Parameter nur das die Werte hier aus einem File geladen werden. Es werden alle Files mit der Endung .bot gelistet. Das File muss die Werte im gleichen Format enthalten - durch Semikolon getrennte UserAgents. Die File Daten werden dem Textfelddaten hinzugefügt. Kann das Handling bei vielen Robots vereinfachen. |
||
gibt an, ob der UserAgent für den zu speicherden Zählerstand mit gesichert werden soll. ( Bild ) Beachtet die Datenmenge und die Versionskompatibilität |
||
hier kann nach Usertypen gefiltert werden - sollen Gäste oder Mitglieder nicht gezählt werden. Meist wird wohl Mitglieder nicht zählen genutzt werden. Möglich ist aber auch eben nur Mitglieder auf bestimmten Sites zu zählen. |
||
Die Reihenfolge der Anzeige - Views kann hier verändert werden. Ebenso können "Spacer" eingefügt werden. Der Default ist 1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16 : PRE / Counter / PeopleTable / Highest / Statistik / IP / IP_CountryCode / IP_CountryName / IP_Flagge / Users / Guests / Reg Users / Reg Users Today / UserNames / Reg Today Usernamens / POST Man kann mittels eines "-" ein einfügen lassen, welches ebenfalls per CSS einen besonderen Style erhalten kann. |
||
Hier kann auf beliebige Views ein Link gesetzt werden. Beispiel: 1;2;15 Beachtet das dies nicht auf jeder View sinnvoll ist und unter Umständen Änderungsbedarf am CSS notwendig wird. |
||
Link | Der eigentliche http://... Link | |
der HTML Target Parameter um Link z.B. in neuem Fenster öffnen zu lassen. | ||
Hiermit wird versucht die Texte in den Parametern automatisch überstzen zu lassen : Möglich ist dabei die Auswahl der Zielsprache aus der Einstellung des Besucher-Browsers oder der in Joomla gemachten Spracheinstellung zu beziehen. Wenn eingeschalten, gelten die eingegebenen Texte in den Parametern als KEYs im Sprachfile. Wird keine Übersetzung zum jeweiligen Key gefunden, wird der eingestellte Text 1:1 angezeigt. ( Anm.: man kann also eigene Key=Values im Sprachfile einfügen bzw. vorhandene nutzen ) . ( z.B. Today im Parameter, TODAY=Heute im Sprachfile ) Wenn ausgeschalten, werden die eingegebenen Texte direkt ausgegeben und keine Übersetzung 'versucht'. Beispiel: ruft ein Client mit eingestellter Browser-Sprache DE die Seite auf, wird die Deutsche Übersetzung angezeigt, usw.. Die Einstellung "aus Joomla" ist besonders für Joomfish-Nutzer interessant. Anm.: beachtet: es wird das jeweilige Language File nachgeladen - das kostet Performance ! |
||
Zeige X ... | Anzeigen von X | |
Text für X ... | Darzustellender Text für X | |
Welcher Tag gilt als Wochenanfang ( Sonntag/Montag/Samstag ) | ||
Anzeige der kleinen Bilder in der linken Tabellenspalte ( Auswahl verschiedener Styles möglich:peoples,calendar,... ) |
||
Zeige hoechsten Besuchertag |
Zeigt den Tag und den Wert des höchsten Besucheraufkommens aus den vorhandenen Statistikdaten an
Beachten: dieser Parameter ist ein SCHREIB-Parameter und somit abhängig vom Parameter "Nur Lese Modus" !
|
|
Titel fuer hoechsten Besuchertag | Titel | |
Trennzeichen | Trennzeichen Titel - Werte Spalte | |
Update Intervall | Neuberechnungsintervall | |
Dies bestimmt die Anzeige des Wertes. Hierbei ist eigenes HTML erlaubt. Die Ersetzungszeichen werden im Text dann entsprechend ausgefüllt. Tag : $d Wert: $v |
||
Anzeigen der Counter-Digits ( also des Counterstands ) | ||
Mindest Stellenanzahl | ||
Maximale Stellenanzahl | ||
Anzuzeigendes Bild bei Überlauf ( einige Styles enthalten dafür das W.gif Bild ) |
||
Style der Digits oder reiner Text ( zeigt alle vorhandenen Ordner im counter../image Ordner an ) |
||
Display Type (M) | manueller Verzeichnisname für Digit-Images | |
Größe der Tabelle ( People Tabelle ! ) | ||
Anzeigen eines Statistik Images ( Einfach und Detailiert möglich ) | ||
Anzahl der Tage für Statistik Image | ||
wo soll das Statistikimage abgelegt werden ( jeder Counter sein eigenes ! ) |
||
Wieviel Zeit muss bis neu Erstellung des Statistikimages vergehen ( Stunden ) ( auch Kommawerte erlaubt 0.5 = halbe Stunde ).
Anm.: Stellt den Wert nicht zu hoch, 1-2mal am Tag ist vollkommen ausreichend. |
||
Breite ( Pixel ) | ||
Höhe ( Pixel ) | ||
Farben |
die Farben ( HTML Format z.B. #DDDDDD ) Hier im Detail: Klick zur Anzeige |
|
Anzahl Eingeloggter Benutzer anzeigen | ||
der Titel | ||
Anzahl Gäste anzeigen | ||
der Titel | ||
Anzeige Gesamtzahl Registrierter Benutzer | ||
der Titel | ||
Anzeige der Anzahl Heute Registrierter Benutzer | ||
der Titel | ||
die Möglichkeit ein Trennzeichen zwischen Titel und Anzahl einzugeben, z.B. ":" | ||
Eingeloggter Benutzer Info ( Name, Account, s.u. ) anzeigen | ||
der Titel für vorriges | ||
Heute Registrierte Benutzer Info ( Name, Account, s.u. ) anzeigen | ||
der Titel für vorriges | ||
Format der User-Anzeige ( in Klammern wird per MouseOver angezeigt ) | ||
User Link | Hier kann ein Link pro User erstellt werden, welcher z.B auf ein Userprofile zeigen kann. Dabei werden Ersetzungen vorgenommen : $$id = UserId , $$name = Username, $$account = Useraccount. Am Beispiel fuer Kunena Forum: index.php?option=com_kunena&func=profile&userid=$$id&Itemid=115 |
|
Wann (Wem) soll der UserLink angezeigt werden: Nur angemeldeten Usern oder Allen Besuchern ( auch Gäste ) |
||
Nur für die _j16 Version ( Joomla > 1.5 ) Hiermit kann ein Gruppenfilter für diesen Bereich gesetzt werden. |
||
Wenn vorheriger Paramter "Only this Groups" auf "Ja" eingestellt ist, werden nur die hier ausgewählten Gruppen angezeigt. | ||
sollen Benutzer des Backends nicht mit erfasst werden. Gilt für Eingeloggte User und Gäste. | ||
Hiermit wird festgelegt das ein Gast nach einer inaktiven Zeit (in Sekunden) nicht mehr in der 'Who-Is-Online' Zählung enthalten sein soll. Dies verhindert die hohe Gäste Anzahl bedingt durch die Joomla-Session Zeit. Ein Wert 0 bedeutet, dass die Joomla Session Time genutzt wird. Der Default ist auf 5Minten (300Sek) gesetzt. Der Unterschied in der Genauigkeit ist deutlich zu erkennen ! Ein aktuelles Beispiel: Joomla-Who-Is-Online: Wir haben 22 Gäste ... |
||
Hiermit wird festgelegt das ein User nach einer inaktiven Zeit (in Sekunden) nicht mehr in der 'Who-Is-Online' Zählung enthalten sein soll. Ein Wert 0 bedeutet, dass die Joomla Session Time genutzt wird. Der Default: 0 siehe auch vorigen Paramter ! |
||
Pre-Text | Text am Anfang 'des Counter' ( in Default Reihenfolge ) Hier kann eigener Text (auch HTML) eingetragen werden. Ab Version 1.9.12 sind in PRE and POST Expression erlaubt, welche dann durch Echt-Daten ersetzt werden. Expressions werden hier speziell behandelt. ( !! Damit kann ein komplett eigenes Layout reallisiert werden !! ) |
|
Post-Text | Text am Ende 'des Counters' ( in Default Reihenfolge ) Hier kann eigener Text (auch HTML) eingetragen werden. Ab Version 1.9.12 sind in PRE and POST Expression erlaubt, welche dann durch Echt-Daten ersetzt werden. Expressions werden hier speziell behandelt. ( !! Damit kann ein komplett eigenes Layout reallisiert werden !! ) |
|
Senden von Status EMail anschalten. Achtung das Joomla-Mail-System muss dazu eingerichtet sein ! |
||
Trigger | Sende eine EMail alle X mal. | |
IDs der Benutzer welche die Email empfangen sollen. Hier ist die ID und nicht der Username einzutragen, durch Semikolon getrennt. |
||
Body | Der Mail-Text kann beliebig gesetzt werden. Es stehen zusätzlich zwei Variablen zur Verfügung die ersetzt werden : $a für Zählerstand und $d für aktuelles Datum. |
|
Datums Format , z.B. d.m.Y | ||
Hier kann ein beliebiges eigenes PHP Script ausgeführt werden welches, analog zu Mailversenden, zu jeden X-ten Counterstand ausgeführt wird. ( z.B. für ein Gewinnspiel ) Ein Beispiel für solch ein kleines Script findet ihr in den Downloads.. Ein kleines Tutorial Video zum Thema könnt ihr hier anschauen.. ( Doppelklick für Groß ) |
||
Trigger | Führe das Script alle X mal ( zu jedem Xten Counterstand ) aus | |
Script Name | Der Name des Scriptes ohne .php ! Das Script MUSS sich im Ordner Trigger befinden. |
Expressions für PRE und POST
Ab Version 1.9.12 sind für die Texte PRE und POST Expressions möglich. Diese bieten Zugriff auf alle Felder welche auch so anzeigbar sind und noch einigen mehr.Eine Übersicht der möglichen Expressions findet ihr hier:
Beschreibung | Beispiel | Ausdruck |
---|---|---|
Aktuelles Datum | 27.03.2010 | $today$ |
Gesamt | 8012 | $countAll$ |
Heute | 100 | $countToday$ |
Gestern | 220 | $countYesterday$ |
Woche | 4000 | $countWeek$ |
Monat | 789 | $countMonth$ |
kleinstes Datum in DB | 01.01.2010 | $minDate$ |
IP Adresse | 10.33.70.01 | $callerIP$ |
Country | DE | $callerCountryCode$ |
ISO2 Country | GERMANY | $callerCountry$ |
Country Flag | ein bekanntes Flaggenbild | $callerCountryFlag$ |
Browser (Joomla) | msie | $browser$ |
Browser Version (Joomla) | 7.0 | $versionBrowser$ |
Browser Platform (Joomla) | win | $platformBrowser$ |
Browser (PHP) | IE | $phpbrowser$ |
Browser Version (PHP) | 8.0 | $phpversionBrowser$ |
Browser Platform (PHP) | WinVista | $phpplatformBrowser$ |
UserAgent | der komplette UserAgent String wie er in der Datenbank abgelegt wird | $userAgent$ |
Angemeldete User (Joomla) | 3 | $loggedIn$ |
Gäste (Joomla) | 3 | $guests$ |
Online ( Gäste + Angemeldete User ) | 6 | $visitors$ |
Registrierte User (Joomla) | 3 | $regUsers$ |
Registrierte User Heute(Joomla) | 3 | $regUsersToday$ |
Vielleicht fragt ihr Euch wo der Unterschied zwischen den Browser-Expression (Joomla)-(PHP) liegt ?
Bei den (PHP) Attributen werden die Browser Werte mittels einer PHP Grundfunktion ermittelt. Dies setzt aber eine eingerichtete 'browsercap' Datei vorraus, sonst gibt es Warnunmeldungen von PHP. Die Werte hängen von der Aktualität der browsercap.ini ab. Auf meinem Testsystem passten diese sehr gut,im Gegensatz zur Joomlaausgabe.
Wie ? - ihr schaltet einfach alle Ausgaben außer Pre und/oder Post ab und fügt in diesen in der Modulkonfiguration Eurer komplett eigenes HTML ein. An Stellen wo Werte ausgegeben werden sollen, nutzt Ihr dann die Expressions.
Today is $today$ an you are the $countAll$ Visitor on my site.
erhaltet Ihr folgende Ausgabe :
CSS
Um den Counter der eigenen Seite anpassen zu können, steht für jedes vordefinierte Element eine ensprechende CSS-Class zur eigenen Anpassung zur Verfügung.( Anm.: mit den Expressions ist es möglich einen komplett eigenen Counter zu designen, welcher keine der vordefinierten Elemente nutzt )
Die CSS-Styles werden per Default in der Datei mvc.css hinterlegt ( Parameter "CSS-File: mvc.css" ).
Weiterhin ist es möglich, wie in Versionen vor 1.9.13, eigene CSS-Styles direkt im Template einzubinden. Dies empfehle ich allerdings nicht ( Parameter "CSS-File: Nicht verwenden" ).
Eine Dritte Möglichkeit ergibt sich, wenn man seine eigene Style Datei (xxx.css) im Counter Pfad abgelegt. Dieses ist dann im Parameter CSS-File auswählbar. Dies ist das von mir empfohlene Vorgehen.
Dazu erstellt man eine Kopie des mvc.css Files und wählt dieses aus. Das verhindert, dass bei einem Update evt Eure eigenen Styles überschrieben werden.
Bei Verwendung mehrerer Counter sollte für jeden Counter ein eigenes CSS-File erstellt und für diesen Counter ausgewählt werden.
Es ist aber ebenfalls möglich Alle Counter-Styles in einem CSS-File abzulegen und mit den CSS-Suffixen zu arbeiten. Diese werden dann an die entsprechende CSS Class angehängt ( z.B. _counter1 ergibt div.mvc_main_counter1 ).
Zu Beachten: ebenfalls mit CSS-Suffixen muss man arbeiten, wenn man Counter auf der gleichen Seite anzeigen möchte. Es würde sonst immer das erste geladene CSS-File gelten.
CSS Video Tuorial:
IP to Country
Hier gebe ich ein paar Hintergrundinfo's über das IP to Country Feature.Grundlegendes :
Zum Ermitteln aus welchem Land eine IP-Adresse kommt, braucht es eine Mapping Tabelle welche IP-Bereiche zu Ländeercodes abbildet. Diese Tabelle wird im Counter aus einer CSV-Datei importiert.Grundsätzlich kann jede beliebige Datenbasis verwendet werden, wichtig ist der Aufbau des CSV-Datenfiles wie unten beschrieben.
Die Datenbasis welche dem Counter beiliegt, wird dabei von http://ip-to-country.webhosting.info/ zur Verfügung gestellt - Bitte beachtet also deren Lizenz
( nur notwendig wenn Country, CountryFlagge oder CountryCode angezeigt wird - nicht bei reiner IP-Adress Anzeige ).
Aufbau CSV-Datenfiles:
Name des Datenfiles: ip-to-country.csvDas Datenfile besteht aus fünf Spalten:
- IP-Bereich Start Int ( ip2long/long2ip ) Bsp. "0094585424"
- IP-Bereich Ende Int ( ip2long/long2ip ) Bsp. "0094585439"
- ISO 3166 Country Code2 char(2) Bsp. "SE"
- ISO 3166 Country Code3 char(3) Bsp. "SWE"
- ISO 3166 Counry Name char(50) Bsp. "SWEDEN"
Datenzeilen werden mit Enter abgeschlossen
Update der Datenbasis :
Die Datenbasis von http://ip-to-country.webhosting.info/ unterliegt regelmäßigen Updates. Um dieses in seine Counter Installation zu übernehmen, sind folgende Schritte notwendig- Download des neuen Datenfiles
- ersetzen des alten Datenfiles in joomla/modules/mod_vvisit_counter/ip2country/
- wenn nicht sowieso bereits geschehen Create Table auf NO
- löschen der Datenbanktabelle TRUNCATE jos_mvc_iptocountry
- Create Table auf YES
- einen Seitenaufruf ausführen und die Einspielung abwarten
- Create Table wieder auf NO
Performance
Sicherungsparameter Max Tage/Datensätze
Wenn Statistikdaten über einen längeren Zeitraum dargestellt werden sollen, kann dies nur durch Speicherung dieser Daten erfolgen. Dabei fallen, je nach Zeitraum oder Speichervolumen unterschiedliche Datenmengen an, welche die Datenbank halten und Auswerten muss. Bei sehr vielen Daten, kann sich dies auf der Performance auswirken. Ein paar Hintergründe dazu möchte ich hier darlegen.Am Beispiel meiner Datenbasis zeige ich hier ein mögliches Datenaufkommen:
Ich speichere maximal 160(+1) Tage und maximal 100.000 Einträge. Bis jetzt benötige ich für diesen Zeitraum im Durchschnitt echte 60.000 Datenbankeinträge( PS.. dies ist sehr einfach mit der Counter-Manager-Komponente zu kontrollieren, welche die Anzahl der Tag und die Datenmengen anzeigt ). Für diese Datensätze benötigt die Datenbank, durch Indizes usw. , mit der Speicherung der UserAgents ca. 10 MegaByte Platz.
Der Demo-Counter dagegen hält nur 60(+1) Tage mit einer Einstellung von maximal 40.000 Einträgen und einer wirklichen Datensatzanzahl von 7.000 Datensätzen. Dazu wird in der Datenbank dann ca. 1500 KiloByte benötigt ( ebenfalls mit Speicherung UserAgent ).
Hier kann man sehr gut erkennen, ungeachtet von Laufzeiten, dass unbedingt mindestens einer der beiden Sicherungsparameter auf einen sinnvollen Wert zu setzen ist.
Benötigt ihr keine Langzeitstatistik, kann man maximale Tage und/oder max. Einträge sogar auf 1 setzen damit keine bzw. nur wenig Daten gespeichert werden.
Auch wenn ihr nun sagt 'ach, genug Platz ist da' , solltet ihr aber beachten, dass je mehr Daten in die Datenbank kommen die Datenbank sehr viel mehr leisten muss - also die Performance leidet. Aufgrund der vielen verschiedenen Webplattformen macht es keinen Sinn hier Performance-Messungen zu posten - die würden bei Euch eh extrem anders ausschaun ( könnt ihr sehr einfach selber machen durch Einschalten des Joomla-DEBUG-Modus ).
Meine Empfehlung ist IMMER beide Sicherungsparameter in Kombination zu setzen.
Folgende Fragen solltet ihr Euch zur Emittlung der Werte stellen:
- wieviel Platz habe ich auf meiner Homepage, genauer in meiner Datenbank ( z.B. 250MB )
- über wieviele Tage benötige ich die Statistikdaten ( z.B. nur 3 Monate ? )
- WAS möchte ich speichern, brauche ich die UserAgents wirklich
- habe ich einen eigenen Server oder eine 'einfache' Website ( Performance )
Seid ihr nicht sicher, kann man z.B. erst einmal nur mit dem Parameter maximale Datensätze anfangen und beobachet mittels der Counter-Komponente die Anzahl der Datensätze über einen Zeitraum. Später kann man dann seinen gewünschten Zeitraum einstellen und nimmt zur Sicherheit das Doppelte der ermittelten Datensätze über seinen Testzeitraum.
die Bereinigung nach Tagen erfolgt einmalig am Tag und macht bei 'großen' Aktionen auch gleich ein OPTIMIZE Table .
Laufzeit
Je mehr Daten der Counter gespeichert hat, desto aufwändiger ist die Berechnung des Statistikbildes - dies sollte klar sein. Hier kann man auf der einen Seite Abhilfe schaffen, in dem man die Berechnung des Statistikbildes verzögert. Per Default wird dieses nur alle 6 Stunden neu berechnet, sinnvoll sind aber auch Werte von 12 oder gar 24Stunden. Zusätzlich sollte man, wie im vorigen Abschnitt dargestellt, genau überlegen Was man Wie lang speichern möchte.FAQ
- Symptom :
Fehlermeldung : Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in .. helper.php on line 27
Hintergrund :
es wird PHP4 verwendet
Lösung :
Patch PHP4-5 downloaden und einspielen
- Symptom :
Fehlermeldung : Fatal error: Cannot redeclare getrgb() (previously declared in ...joomla/templates/bicolor/lib.php:182) in ...joomla/modules/mod_vvisit_counter/diagram.php on line 25
Hintergrund :
mehrfaches Vorhandensein des Methodenname in diagramm.php Library
Lösung :
Es gibt einen speziellen für dieses Problem (mvcR_patch_DiagrammLib_getrgb)
- Symptom :
Datenbankproblem ( anlegen der Tabellen scheitert, keine Daten im Statistikbild, etc. )
Hintergrund :
es wird MySQL ab Version 4.1.xx benötigt
Lösung :
Upgrade der Datenbank
- Symptom :
Gesamtzählerstand ist im ersten Monat um Eins zu hoch (Versionen vor 1.9.0)
Hintergrund :
das ist ein Problem in den Vorgabewerten des Modules. Dort liegt dieser bei +1 anstatt auf 0
Lösung :
nach der Installation des Counters, direkt VOR der Aktivierung !, im Konfigurationsmenu den Startwert auf 0 setzen
( ändere ich in der nächsten Version, z.Z. ist es aber nicht notwendig für diese kleine Problem eine Extra-Version zu erstellen )
- Frage :
Wie kann der Zähler komplett auf Null gesetzt werden ?
Hintergrund :
dies kann nur in der Datenbank durchgeführt werden
Lösung :
TRUNCATE TABLE `jos_vvisitcounter`
DELETE TABLE `jos_vvisitcounter` würde nur die Daten löschen, aber beim aktuellen Zählerstand weiterzählen
- Symptom :
Fehlermeldung : Warning: Invalid argument supplied for foreach() in .../modules/mod_vvisit_counter/helper.php on line 400
Hintergrund :
es werden keine Daten für das Statistikbild geliefert (DatenbankVersion kleiner 4.1.x ) und PHP4 wird verwendet. Dies führt durch einen PHP4-Bug zu obiger Fehlermeldung.
Lösung :
Upgrade der Datenbank
(den PHP4 Bug kann man umgehen, es bringt aber nix da es niemals Daten für das Bild gibt)
- Symptom :
Der Zähler für 'Gestern' steht am 1.1. eines Jahres auf 0
Hintergrund :
Der Counter bezieht sich bei der Auswertung von Gestern/Woche/Monat IMMER auf das aktuelle Jahr (Performance). Somit ist am 1.1. das "Gestern" nicht vorhanden, also 0. Am 2.1 sollten dann wieder Werte angezeigt werden. Bei den Werten Woche/Monat ist dies nicht von Belang.
Lösung :
nicht notwendig..
Nachtrag: ab v2.0.0 wird nicht mehr Jahresbasierend begrenzt
- Frage :
Wie kann ich den Zähler unsichtbar machen ?
Hintergrund :
viele wollen den Counter 'normalen' Besuchern nicht zeigen
Lösung :
dies ist in den Szenarien beschrieben.
Anm.: ich habe lang überlegt eine Rollen-Auswahl in den Counter einzubauen mit welchem man direkt wählen könnte bei welchen Rollen der Counter angezeigt wird. Da dies aber in Joomla und dessen Modulberechtigungen schon einfach möglich ist, wäre das doppelt. Zusätzlich ist man in Kombination mit Lese- und Schreibmodus des Counters um einiges flexibler (Readonly) : z.B. Abbildung eines Schreibcounter im Footer, welcher nur die Digits anzeigt und einen Lese-Counter der nur für Rollen X angezeigt wird und viel mehr Informationen darstellt.
- Frage :
Wie kann ich Bots vom Zählen ausschließen ?
Lösung :
Wenn der Parameter "Auto FilerRobots" aktiviert ist, werden alle Joomla bekannten Bots automatisch nicht mitgezählt.
Weiterhin gibt es die Möglichkeit im Parameter "Filter UserAgents" eigene Bots zur Filterung anzugeben. Wird die Liste zu lang, können alle Bots auch in einer Datendatei abgelegt werden ( Parameter "Filter UserAgents from File" ).
Anm. mittels des Parameters "Filter IP" ist es auch möglich direkt IP-Adressen zur Filterung anzugeben. - Frage :
Wie kann ich eigene Scripte je nach Zähglerstand ausführen lassen ?
Lösung :
Dies wird mit dem Parameter "Trigger" gelöst. Dabei kann zu jeden x-ten Counterstand eine Aktion ausgelöst werden.
- Frage :
Wo finde ich ein Übersicht der Reihenfolge (Order) der einzelnen Ansichten (Views) ?
Lösung :
Dies wird im Parameter ( siehe Parametertabelle ) beschrieben. Am deutlichsten ist die Reihenfolge an diesem Bild zu sehen.
Alternative Websites
Links auf welchen der Counter gehostet ist und von mir regelmäßig kontrolliert werden :
JoomlaCode
JoomlaExtensions
Joomlaos ( Version Joomla 1.5 )
Joomlaos ( Version Joomla 1.6 )
Direct:
mod_vvisit_counter_2_0_4_j3.zip : V2.0.4_MMA Joomla 3
mod_vvisit_counter_2_0_4_j16.zip : V2.0.4_MMA Joomla 1.6/7/2.5
mod_vvisit_counter_2_0_3_j16.zip : V2.0.3_MMA Joomla 1.6/7/2.5
mod_vvisit_counter_2_0_3.zip : V2.0.3_MMA Joomla 1.5
triggerExample.zip : Beispiel Trigger Script ab V1.9.18
mod_vvisit_counter_1_9_18_j16.zip : V1.9.18_MMA Joomla 1.6
mod_vvisit_counter_1_9_18.zip : V1.9.18_MMA]
mod_vvisit_counter_php4_patch_1_9_16a.zip : Patch V1.9.16a PHP5 zu PHP4
mvcR_patch_DiagrammLib_getrgb.zip : Patch Doppelte Methode GetRGB ( Problem von Bob )
Übersetzungen - Sprachfiles
Deutsch | im Download enthalten | Majunke Michael | All | |
Englisch | im Download enthalten | Majunke Michael | All | |
Alle aktuellen Sprachversionen sind hier zu finden Joomlacode z.B. | |
||||
Wer "Lust und Laune" hat, kann helfen und weitere Übersetzungen erstellen. |