<?php

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

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

    /**
     * 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 injectUmamiScript(Doku_Event $event, $param) {
        $src = $this->getConf('script_src');
        $websiteId = $this->getConf('website_id');

        if (empty($src) || empty($websiteId)) return;

        $event->data['script'][] = [
            'type' => 'text/javascript',
            'src'  => $src,
            'data-website-id' => $websiteId,
            'defer' => 'defer',
            'async' => 'async'
        ];
    }
}
