Benutzer-Werkzeuge

Webseiten-Werkzeuge


wiki:mods:counter
Facebook Twitter Google+

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
 
 
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) {    
    $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
wiki/mods/counter.txt · Zuletzt geändert: 2012/11/08 18:29 von Jan-Hendrik Bade