<?php

use dokuwiki\Extension\ActionPlugin;
use dokuwiki\Extension\EventHandler;
use dokuwiki\Extension\Event;

/**
 * DokuWiki Plugin networkgraph (Action Component)
 *
 * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
 * @author Feralheart <dokuwiki@feralheart.dev>
 */
class action_plugin_networkgraph_injecter extends ActionPlugin
{
    /** @inheritDoc */
    public function register(EventHandler $controller)
    {
        $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, 'handleTplMetaheaderOutput');
    }

    /**
     * Event handler for TPL_METAHEADER_OUTPUT
     *
     * @see https://www.dokuwiki.org/devel:events:TPL_METAHEADER_OUTPUT
     * @param Event $event Event object
     * @param mixed $param optional parameter passed when event was registered
     * @return void
     */
    public function handleTplMetaheaderOutput(Event $event, $param)
    {
        $pluginBase = DOKU_BASE . 'lib/plugins/networkgraph/';

        $event->data['script'][] = [
            'type' => 'text/javascript',
            'src'  => 'https://d3js.org/d3.v7.min.js',
        ];

        $event->data['script'][] = [
            'type' => 'text/javascript',
            'src'  => $pluginBase . 'script.js',
        ];

        $event->data['link'][] = array(
            'type' => 'text/css',
            'rel' => 'stylesheet', 
            'href' => $pluginBase . '/css/style.css',
        );
    }
}
