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 * return some info 18 */ 19 function getInfo(){ 20 return confToHash(dirname(__FILE__).'/info.txt'); 21 } 22 23 /** 24 * register the eventhandlers and initialize some options 25 */ 26 function register(&$controller){ 27 28 $controller->register_hook('TPL_METAHEADER_OUTPUT', 29 'BEFORE', 30 $this, 31 'handle_metaheaders', 32 array()); 33 } 34 35 /** 36 * Extend the meta headers 37 */ 38 function handle_metaheaders(&$event, $param){ 39 global $ACT; 40 global $ID; 41 if($ACT != 'show') return; //only log page views for now 42 43 $page = rawurlencode($ID); 44 $data = "plugin_statistics.init('$page');"; 45 $event->data['script'][] = array( 'type'=>'text/javascript', 'charset'=>'utf-8', '_data'=>$data); 46 } 47 48 /** 49 * @fixme call this in the webbug call 50 */ 51 function putpixel(){ 52 global $ID; 53 $url = DOKU_BASE.'lib/plugins/statistics/log.php?p='.rawurlencode($ID). 54 '&r='.rawurlencode($_SERVER['HTTP_REFERER']).'&rnd='.time(); 55 56 echo '<noscript><img src="'.$url.'" width="1" height="1" /></noscript>'; 57 } 58} 59 60