Inhaltsverzeichnis
Seitenaufrufe zählen
Statistik macht ja Spaß. Daher hab ich nach einem Counter für DW gesucht und hier gefunden.
Verwendete DW Version
2009-12-25c "Lemming"
Eingefüge Dateien
counter.php
Verzeichnis /wikidir/data/pages/_views erstellen Unter /wikidir/inc/counter.php erzeugen. Inhalt entspricht nicht dem aus der Quelle, Nameraum Handling hab ich schon verbessert.
<?php /* * simulating file_put_contents() from PHP5 * for PHP 4.3.9 (Centos 4.3) * http://tinymailto.com/oliver */ function file_put_contents_counter($file, $views) { $written = false; if( $fp_counter = fopen($file, 'w') ) { // lock before writting if (flock($fp_counter, LOCK_EX)) { $written = fwrite($fp_counter, $views); flock($fp_counter, LOCK_UN); } fclose($fp_counter); } if($written === FALSE) { return 0; } else { return $written; } } global $ID,$ACT; // local variables $file = ""; $views = false; $read_tries = 3; $read_count = 0; $written=0; $write_tries = 3; $write_count = 0; //$file=realpath($conf['datadir']).'/_views/'.$ID; //handle Namespaces correct, replace : to $ $file=realpath($conf['datadir']).'/_views/'.str_replace(array("\\","/",":"),array("$","$","$"),$ID); if (file_exists($file)) { while ($views===FALSE) { $views=file_get_contents($file); if ($views===FALSE) { usleep(50000); } $read_count++; if($read_count > $read_tries) { $views = 0; break; } } $views = intval($views) + 1; } else { $views=1; } if (($ACT == 'show') && ($INFO['exists'])) { while(!$written) { //php4 //$written=file_put_contents_counter($file,$views); // for php5 use this line $written=file_put_contents($file,$views); if (!$written) { usleep(50000); } $write_count++; if($write_count > $write_tries) { break; } } } $fn.=" ($views Seiteabruf(e)) ";
Geänderte Dateien
/wikidir/inc/template.php
Suche:
$fn = utf8_decodeFN($fn); $date = dformat($INFO['lastmod']); // print it if($INFO['exists']){
Dahinter einfügen:
//Counter von http://wiki.erazor-zone.de/wiki:projects:php:dokuwiki:counter include('counter.php'); //Ende Counter