xref: /plugin/statistics/action.php (revision 9c19275526bd35e90994bb31c3b1f70b5cdd2f07)
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               '&amp;r='.rawurlencode($_SERVER['HTTP_REFERER']).'&rnd='.time();
48
49        echo '<noscript><img src="'.$url.'" width="1" height="1" /></noscript>';
50    }
51}
52
53