1<?php 2/** 3 * 4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 5 * @author Andreas Gohr <gohr@cosmocode.de> 6 */ 7 8// must be run within Dokuwiki 9if(!defined('DOKU_INC')) die(); 10 11if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); 12require_once(DOKU_PLUGIN.'action.php'); 13 14class action_plugin_statistics extends DokuWiki_Action_Plugin { 15 16 /** 17 * register the eventhandlers and initialize some options 18 */ 19 function register(&$controller){ 20 21 $controller->register_hook('TPL_METAHEADER_OUTPUT', 22 'BEFORE', 23 $this, 24 'handle_metaheaders', 25 array()); 26 } 27 28 /** 29 * Extend the meta headers 30 */ 31 function handle_metaheaders(&$event, $param){ 32 global $ACT; 33 global $ID; 34 if($ACT != 'show') return; //only log page views for now 35 36 $page = rawurlencode($ID); 37 $data = "plugin_statistics.init('$page');"; 38 $event->data['script'][] = array( 'type'=>'text/javascript', 'charset'=>'utf-8', '_data'=>$data); 39 } 40 41 /** 42 * @fixme call this in the webbug call 43 */ 44 function putpixel(){ 45 global $ID; 46 $url = DOKU_BASE.'lib/plugins/statistics/log.php?p='.rawurlencode($ID). 47 '&r='.rawurlencode($_SERVER['HTTP_REFERER']).'&rnd='.time(); 48 49 echo '<noscript><img src="'.$url.'" width="1" height="1" /></noscript>'; 50 } 51} 52 53