register_hook( "TPL_METAHEADER_OUTPUT", "BEFORE", $this, "addScripts", ); $controller->register_hook( "CSS_STYLES_INCLUDED", "BEFORE", $this, "addTemporaryInputStyles", ); $controller->register_hook( "TOOLBAR_DEFINE", "AFTER", $this, "addToolbarButton", ); } /** * Add plugin JavaScript files in a deterministic order. * * @param Event $event * @param mixed $param * @return void */ public function addScripts(Event $event, $param) { $base = DOKU_BASE . "lib/plugins/luxtools/js/"; $scripts = [ "lightbox.js", "gallery-thumbnails.js", "open-service.js", "scratchpads.js", "main.js", ]; foreach ($scripts as $script) { $event->data["script"][] = [ "type" => "text/javascript", "src" => $base . $script, ]; } } /** * Include temporary global input styling via css.php so @ini_* placeholders resolve. * * @param Event $event * @param mixed $param * @return void */ public function addTemporaryInputStyles(Event $event, $param) { if (!isset($event->data['mediatype']) || $event->data['mediatype'] !== 'screen') { return; } if (!isset($event->data['files']) || !is_array($event->data['files'])) { return; } $event->data['files'][DOKU_PLUGIN . 'luxtools/temp-input-colors.css'] = DOKU_BASE . 'lib/plugins/luxtools/'; } /** * Add custom toolbar button for code blocks. * * @param Event $event * @param mixed $param * @return void */ public function addToolbarButton(Event $event, $param) { $event->data[] = [ "type" => "format", "title" => $this->getLang("toolbar_code_title"), "icon" => "../../plugins/luxtools/images/code.png", "key" => "C", "open" => "", "sample" => $this->getLang("toolbar_code_sample"), "close" => "", "block" => false, ]; } }