xref: /plugin/piwiktagmanager/action.php (revision 62ddacc3de0a318a28c1764867911aae052675eb)
1d10bec37SAlexander Lehmann<?php
2d10bec37SAlexander Lehmann
323640bc3SAlexander Lehmannuse dokuwiki\Extension\ActionPlugin;
423640bc3SAlexander Lehmannuse dokuwiki\Extension\EventHandler;
523640bc3SAlexander Lehmann
623640bc3SAlexander Lehmannclass action_plugin_piwiktagmanager extends ActionPlugin
765120627SAlexander Lehmann{
865120627SAlexander Lehmann    public const PWTMID = 'PWTMID';
965120627SAlexander Lehmann    public const PWTMHOST = 'PWTMHOST';
10d10bec37SAlexander Lehmann
11d10bec37SAlexander Lehmann    /**
12d10bec37SAlexander Lehmann      * Register its handlers with the DokuWiki's event controller
13d10bec37SAlexander Lehmann      */
1423640bc3SAlexander Lehmann    public function register(EventHandler $controller)
1565120627SAlexander Lehmann    {
1665120627SAlexander Lehmann        $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, 'addHeaders');
17d10bec37SAlexander Lehmann    }
18d10bec37SAlexander Lehmann
19f3b28a6eSAlexander Lehmann    public function addHeaders(&$event, $param)
2065120627SAlexander Lehmann    {
21*62ddacc3SAlexander Lehmann        $host = $this->getConf(self::PWTMHOST);
22*62ddacc3SAlexander Lehmann        $id   = $this->getConf(self::PWTMID);
23d10bec37SAlexander Lehmann
24*62ddacc3SAlexander Lehmann        if (!$host || !$id) return;
25d10bec37SAlexander Lehmann
26*62ddacc3SAlexander Lehmann        $event->data['script'][] = ['type' => 'text/javascript', '_data' => <<<EOT
27d10bec37SAlexander Lehmann            var _mtm = window._mtm = window._mtm || [];
28d10bec37SAlexander Lehmann            _mtm.push({'mtm.startTime': (new Date().getTime()), 'event': 'mtm.Start'});
29d10bec37SAlexander Lehmann            (function() {
30d10bec37SAlexander Lehmann              var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
31*62ddacc3SAlexander Lehmann              g.async=true; g.src='https://{$host}/piwik/js/container_{$id}.js'; s.parentNode.insertBefore(g,s);
32*62ddacc3SAlexander Lehmann            })();
33*62ddacc3SAlexander Lehmann            EOT
34*62ddacc3SAlexander Lehmann        ];
35d10bec37SAlexander Lehmann    }
36d10bec37SAlexander Lehmann}
37