xref: /dokuwiki/lib/plugins/extension/action.php (revision 72dda0b4378651b271f5fb516fb8e21a80ac3ebf)
1<?php
2/** DokuWiki Plugin extension (Action Component)
3 *
4 * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
5 * @author  Andreas Gohr <andi@splitbrain.org>
6 */
7
8// must be run within Dokuwiki
9if(!defined('DOKU_INC')) die();
10
11class action_plugin_extension extends DokuWiki_Action_Plugin {
12
13    /**
14     * Registers a callback function for a given event
15     *
16     * @param Doku_Event_Handler $controller DokuWiki's event controller object
17     * @return void
18     */
19    public function register(Doku_Event_Handler &$controller) {
20
21        $controller->register_hook('AJAX_CALL_UNKNOWN', 'BEFORE', $this, 'info');
22
23    }
24
25    public function info(Doku_Event &$event, $param){
26        global $INPUT;
27        if($event->data != 'plugin_extension') return;
28        $event->preventDefault();
29        $event->stopPropagation();
30
31        header('Content-Type: text/html; charset=utf-8');
32
33        $ext = $INPUT->str('ext');
34        if(!$ext) {
35            echo 'no extension given';
36            return;
37        }
38
39        /** @var helper_plugin_extension_extension $extension */
40        $extension = plugin_load('helper', 'extension_extension');
41        $extension->setExtension($ext);
42
43        /** @var helper_plugin_extension_list $list */
44        $list = plugin_load('helper', 'extension_list');
45
46
47        echo $list->make_info($extension);
48    }
49
50}
51
52