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