(c) 2004-2006 Carsten Meier
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Count-Clever ist ein PHP geschriebener Webcounter, der zusätzlich die Anzahl der Besucher ausgibt, die sich zur Zeit auf Ihrer Website aufhalten. Außerdem können Zähler für beliebige Kategorien angelegt und gleichzeitig angezeigt werden. Das Aussehen wird über Templates festgelegt und läßt sich daher leicht an eigene Bedürfnisse anpassen.
Das Archiv enthält folgende Dateien:
Bei der vorliegenden Fassung handelt es sich um Version 1.2 vom 14.5.2006.
Die jeweils aktuelle Version können Sie auf der
Count-Clever-Homepage
herunterladen. Es wird PHP >= 4.1.0 benötigt. Das Skript wurde unter
PHP 4.3.3 und PHP 4.3.10 mit den Laufzeit-Optionen
register_globals off und
allow_call_time_pass_reference off getestet.
Kopieren Sie die Bibliotheksdatei 'count-clever.php' in ein Verzeichnis innerhalb Ihres PHP-Include-Pfades. Falls das File-Locking auf Ihrem System nicht richtig funktioniert, ändern Sie bitte zuvor die Zeile 53 von
define('COUNTCLEVER_GUARD', COUNTCLEVER_GUARD_FILE_LOCKING);
auf
define('COUNTCLEVER_GUARD', COUNTCLEVER_GUARD_SEMAPHORE);
ab. Dies ist nötig, wenn der Webserver mit einer Multithreaded-API arbeitet,
auf den meisten Linux-PHP-Installationen dürfte dieser Schritt jedoch nicht
notwendig sein. Details dazu entnehmen Sie bitte der
PHP-Dokumentation zu flock().
Danach legen Sie bitte die Datei 'counterdb' an einer beliebigen Stelle des
Dateisystems ab. Diese enthält den Zählerstand und muß anschließend noch via
chmod 0666 counterdb für den Webserver beschreibbar gemacht
werden.
Die folgenden Dateien werden nach einer weiter unten beschriebener Anpassung unterhalb des Document-Root-Verzeichnisses erwartet:
Alternativ können Sie auch alle Dateien in einem entsprechenden Verzeichnis unterhalb von Document-Root ablegen.
Passen Sie den Pfad zu Ihrer 'counterdb'-Datei in der Variablen
$counterdb_filename der Datei 'counter.php' entsprechend an.
Nun müssen Sie noch folgendes SSI-Statement an der Stelle in Ihre
.shtml-Datei einfügen, an der der Counter erscheinen soll:
<!--#include virtual="counter.php" -->
Erzeugen Sie für jede Zählerkategorie eine eigene Counter-Datenbank-Datei durch Kopieren und Umbenennen der Datei 'counterdb', und machen Sie diese wie oben angegeben beschreibbar. Nun verändern Sie die Datei 'multicounter.php' bitte folgendermaßen:
$counterdb_prefix. (Abschließenden / nicht vergessen!)$counters jeweils den Namen der
Counter-Datenbank-Datei als Schlüssel und den dazu darzustellenden Titel
als Wert an.Fügen Sie bitte jetzt noch folgendes SSI-Statement in Ihre .shtml-Datei ein. Ersetzen Sie dabei COUNTER durch die für diese Seite zu benutzende Counter-Datenbank-Datei (ohne Pfad!).
<!--#include virtual="multicounter.php?counter=COUNTER" -->
Der erste Eintrag im $counters-Array wird als Master-Counter
angesehen und unabhängig vom übergebenen Counter immer hochgezählt.
Passen Sie die Datei 'counter.php' bzw. 'multicounter.php' wie oben
beschrieben an. In der Datei 'multicounter.php' ersetzen Sie bitte noch
die Variable $_GET['counter'] (in Zeile 35) durch
$counter. Nun können Sie den Counter mit folgenden
include-Statements einbinden:
include 'counter.php';
bzw.
$counter = 'COUNTER';
include 'multicounter.php';
Wenn Sie die Ausgabe selbst erledigen möchten, verfahren Sie bitte wie im Abschnitt Bibliotheksfunktionen beschrieben.
Setzen Sie in dem Skript 'init-counter.php' die Variablen
$counterdb_filename auf den zu setzenden Zähler, sowie
$initial_counter_value auf den gewünschten Zählerstand. Rufen Sie
nun das Skript in Ihrem Webbrowser auf. Sie sollten das Skript nach Gebrauch
wieder löschen oder es in einem geschützten Bereich speichern, da ansonsten
jeder durch einen Aufruf der URL den Zählerstand zurücksetzen kann!
Das Aussehen des Counters wird durch Templates festgelegt, welche als
Arrays angelegt sind. In der Datei 'counter.php' ist ein Template für den
einfachen Counter definiert. Es ist in der Variablen
$counter_template abgelegt und enthält die folgende Elemente:
'format'sprintf-Format-String mit %1$s für die
Besucheranzahl und %2$s für die Online-Anzeige'visits_format'sprintf-Format-String für die Besucheranzahl'online_format'sprintf-Format-String für die Onlineanzeige'gfx''prefix''suffix''attrib'<IMG>-Element, z.B.
Breiten- und Höhenangaben.Ist 'gfx' nicht gesetzt, werden den Ziffern textuell
ausgegeben. Das $multicounter_template in der Datei
'multicounter.php' enthält folgende zusätzliche Elemente:
'prefix'<table>)'postfix'</table>)'format'sprintf-Format-String der für jede Kategorie ausgegeben wird.
%1$s für die Besucheranzahl, %2$s für die
Online-Anzeige, %3$s für den Namen der KategorieDie einzelnen Elemente können Sie nach eigenen Bedürfnissen abändern.
Details zu
sprintf-Format-Strings finden Sie in der
PHP-Dokumentation.
In der Datei 'count-clever.php' werden die folgenden Funktionen zur Verarbeitung von Counter-Datenbank-Dateien definiert:
boolean countclever_init_counter(string counterdbname, integer
initial_counter_value)true, im Fehlerfall false zurück.mixed countclever_get_counter_values(string
counterdbname)'signature', 'visitshi'
und 'visits'. Im Fehlerfall wird false geliefert.mixed countclever_process_counter(string counterdbname,
integer entrylivetimeinsecs, boolean isvisit)'visits''online''entry_found'Um Besuche nach Kategorien getrennt auszuwerten, wird für jede Kategorie
eine eigene Counter-Datenbank-Datei angelegt und
countclever_process_counter() darauf ausgeführt. Für die aktuelle
Kategorie wird dabei isvisit auf true gesetzt. Die
Daten der andenen Kategorien können durch entsprechende Aufrufe von
countclever_process_counter() mit isvisit = false in Erfahrung gebracht werden.
Neben der Verarbeitung der Counter-Dateien werden die Zählerwerte von diesen Funktionen zusätzlich formatiert und als druckbarer String zurückgegeben. Es werden dabei zu den oben beschriebenen Parametern weitere, wie z.B. ein Template, angegeben.
string countclever_get_counter(string counterdbname,
integer entrylivetimeinsecs, boolean isvisit, array template)countclever_process_counter() auf und
liefert einen, mit Hilfe des Templates formatierten, String.string countclever_get_multi_counter(string counterdbprefix,
array counters, integer entrylivetimeinsecs, string currentcounterkey,
array template)Zusätzlich sind noch die Funktionen countclever_print_counter()
und countclever_print_multi_counter() enthalten, die den Counter
via print direkt ausgeben.
Zur Kompatibilität mit Vorgängerversionen sind die Funktionen
init_counter(), get_counter() und
process_counter() enthalten. Diese sollten nicht mehr benutzt
werden, und können, falls es zu Namenskollisionen kommen sollte, gelöscht
werden.
Aktuelle Informationen finden Sie auf der Count-Clever-Homepage. Wenn Sie Fragen zu dem Skript stellen, oder einen Kommentar abgeben möchten, können Sie dies im Count-Clever-Forum tun. Bitte geben Sie bei Problemen immer die verwendeten PHP- und Skript-Versionen an!
Unterstützen Sie die Entwicklung weiterer, frei verfügbarer Skripte durch das Setzen eines Links zu www.internalscripts.de. Vielen Dank!
Fragen zur Benutzung des Skripts bitte im Forum stellen!