*/ class action_plugin_diagrams_action extends DokuWiki_Action_Plugin { /**@inheritDoc */ public function register(Doku_Event_Handler $controller) { $controller->register_hook('DOKUWIKI_STARTED', 'AFTER', $this, 'addJsinfo'); $controller->register_hook('MEDIAMANAGER_STARTED', 'AFTER', $this, 'addJsinfo'); $controller->register_hook('DOKUWIKI_STARTED', 'AFTER', $this, 'checkConf'); } /** * Add data to JSINFO * * full service URL * digram mode * security token used for uploading * * @param Doku_Event $event DOKUWIKI_STARTED|MEDIAMANAGER_STARTED */ public function addJsinfo(Doku_Event $event) { global $JSINFO; $JSINFO['sectok'] = getSecurityToken(); $JSINFO['plugins']['diagrams'] = [ 'service_url' => $this->getConf('service_url'), 'mode' => $this->getConf('mode'), ]; } /** * Check if DokuWiki is properly configured to handle SVG diagrams * * @param Doku_Event $event DOKUWIKI_STARTED */ public function checkConf(Doku_Event $event) { $mime = getMimeTypes(); if (!array_key_exists('svg', $mime) || $mime['svg'] !== 'image/svg+xml') { msg($this->getLang('missingConfig'), -1); } } }