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