1<?php
2/**
3 * DokuWiki Plugin top (Action Component)
4 *
5 * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
6 * @author  Andreas Gohr <gohr@cosmocode.de>
7 */
8
9// must be run within Dokuwiki
10if(!defined('DOKU_INC')) die();
11
12class action_plugin_top extends DokuWiki_Action_Plugin {
13
14    /**
15     * Registers a callback function for a given event
16     *
17     * @param Doku_Event_Handler $controller DokuWiki's event controller object
18     * @return void
19     */
20    public function register(Doku_Event_Handler $controller) {
21        global $ACT;
22        global $JSINFO;
23        $JSINFO['act'] = $ACT;
24        $controller->register_hook('AJAX_CALL_UNKNOWN', 'BEFORE', $this, 'handle_ajax_call_unknown');
25
26    }
27
28    /**
29     * [Custom event handler which performs action]
30     *
31     * @param Doku_Event $event  event object by reference
32     * @param mixed      $param  [the parameters passed as fifth argument to register_hook() when this
33     *                           handler was registered]
34     * @return void
35     */
36
37    public function handle_ajax_call_unknown(Doku_Event &$event, $param) {
38        if($event->data != 'plugin_top') return;
39        $event->preventDefault();
40        $event->stopPropagation();
41
42        global $INPUT;
43        $page = cleanID($INPUT->str('page'));
44        if(!$page) return;
45
46        /** @var helper_plugin_top $hlp */
47        $hlp = plugin_load('helper', 'top');
48        $hlp->add($page);
49        header('Content-Type: text/plain; charset=utf-8');
50        echo 'counted';
51    }
52
53}
54
55// vim:ts=4:sw=4:et:
56