xref: /plugin/statistics/action.php (revision 73051aef7afabf9238a215c2f60885bd68366027)
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               '&amp;r='.rawurlencode($_SERVER['HTTP_REFERER']).'&rnd='.time();
55
56        echo '<noscript><img src="'.$url.'" width="1" height="1" /></noscript>';
57    }
58}
59
60