1<?php
2
3use dokuwiki\Extension\ActionPlugin;
4use dokuwiki\Extension\EventHandler;
5
6class action_plugin_piwiktagmanager extends ActionPlugin
7{
8    public const PWTMID = 'PWTMID';
9    public const PWTMHOST = 'PWTMHOST';
10
11    /**
12      * Register its handlers with the DokuWiki's event controller
13      */
14    public function register(EventHandler $controller)
15    {
16        $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, 'addHeaders');
17    }
18
19    public function addHeaders(&$event, $param)
20    {
21        $host = $this->getConf(self::PWTMHOST);
22        $id   = $this->getConf(self::PWTMID);
23
24        if (!$host || !$id) return;
25
26        $event->data['script'][] = ['type' => 'text/javascript', '_data' => <<<EOT
27            var _mtm = window._mtm = window._mtm || [];
28            _mtm.push({'mtm.startTime': (new Date().getTime()), 'event': 'mtm.Start'});
29            (function() {
30              var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
31              g.async=true; g.src='https://{$host}/piwik/js/container_{$id}.js'; s.parentNode.insertBefore(g,s);
32            })();
33            EOT
34        ];
35    }
36}
37