1<?php
2
3use dokuwiki\Extension\ActionPlugin;
4use dokuwiki\Extension\EventHandler;
5use dokuwiki\Extension\Event;
6
7/**
8 * DokuWiki Plugin networkgraph (Action Component)
9 *
10 * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
11 * @author Feralheart <dokuwiki@feralheart.dev>
12 */
13class action_plugin_networkgraph_injecter extends ActionPlugin
14{
15    /** @inheritDoc */
16    public function register(EventHandler $controller)
17    {
18        $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, 'handleTplMetaheaderOutput');
19    }
20
21    /**
22     * Event handler for TPL_METAHEADER_OUTPUT
23     *
24     * @see https://www.dokuwiki.org/devel:events:TPL_METAHEADER_OUTPUT
25     * @param Event $event Event object
26     * @param mixed $param optional parameter passed when event was registered
27     * @return void
28     */
29    public function handleTplMetaheaderOutput(Event $event, $param)
30    {
31        $pluginBase = DOKU_BASE . 'lib/plugins/networkgraph/';
32
33        $event->data['script'][] = [
34            'type' => 'text/javascript',
35            'src'  => 'https://d3js.org/d3.v7.min.js',
36        ];
37
38        $event->data['script'][] = [
39            'type' => 'text/javascript',
40            'src'  => $pluginBase . 'script.js',
41        ];
42
43        $event->data['link'][] = array(
44            'type' => 'text/css',
45            'rel' => 'stylesheet',
46            'href' => $pluginBase . '/css/style.css',
47        );
48    }
49}
50