1d10bec37SAlexander Lehmann<?php 2d10bec37SAlexander Lehmann 365120627SAlexander Lehmannclass action_plugin_piwiktagmanager extends DokuWiki_Action_Plugin 465120627SAlexander Lehmann{ 565120627SAlexander Lehmann public const PWTMID = 'PWTMID'; 665120627SAlexander Lehmann public const PWTMHOST = 'PWTMHOST'; 7d10bec37SAlexander Lehmann 8d10bec37SAlexander Lehmann /** 9d10bec37SAlexander Lehmann * return some info 10d10bec37SAlexander Lehmann */ 1165120627SAlexander Lehmann public function getInfo() 1265120627SAlexander Lehmann { 13d10bec37SAlexander Lehmann return array( 14d10bec37SAlexander Lehmann 'author' => 'Alexander Lehmann', 15d10bec37SAlexander Lehmann 'email' => 'alexlehm@gmail.com', 16df3494edSAlexander Lehmann 'date' => '2026-01-02', 17ea5fd02aSAlexander Lehmann 'name' => 'Piwik (Matomo) Tag Manager', 18ea5fd02aSAlexander Lehmann 'desc' => 'Plugin to embed Piwik/Matomo Tag Manager in your wiki.', 19ea5fd02aSAlexander Lehmann 'url' => 'https://wiki.lehmann.cx/projects:dokuwiki_piwik', 20d10bec37SAlexander Lehmann ); 21d10bec37SAlexander Lehmann } 22d10bec37SAlexander Lehmann 23d10bec37SAlexander Lehmann /** 24d10bec37SAlexander Lehmann * Register its handlers with the DokuWiki's event controller 25d10bec37SAlexander Lehmann */ 2665120627SAlexander Lehmann public function register(Doku_Event_Handler $controller) 2765120627SAlexander Lehmann { 2865120627SAlexander Lehmann $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, 'addHeaders'); 29d10bec37SAlexander Lehmann } 30d10bec37SAlexander Lehmann 31*f3b28a6eSAlexander Lehmann public function addHeaders(&$event, $param) 3265120627SAlexander Lehmann { 33d10bec37SAlexander Lehmann 34d10bec37SAlexander Lehmann if (!$this->getConf(self::PWTMID)) return; 35d10bec37SAlexander Lehmann 36d10bec37SAlexander Lehmann $event->data['script'][] = array ( 37d10bec37SAlexander Lehmann 'type' => 'text/javascript', 38d10bec37SAlexander Lehmann '_data' => " 39d10bec37SAlexander Lehmann var _mtm = window._mtm = window._mtm || []; 40d10bec37SAlexander Lehmann _mtm.push({'mtm.startTime': (new Date().getTime()), 'event': 'mtm.Start'}); 41d10bec37SAlexander Lehmann (function() { 42d10bec37SAlexander Lehmann var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; 4365120627SAlexander Lehmann g.async=true; g.src='https://" . 4465120627SAlexander Lehmann $this->getConf(self::PWTMHOST) . 4565120627SAlexander Lehmann "/piwik/js/container_" . 4665120627SAlexander Lehmann $this->getConf(self::PWTMID) . 4765120627SAlexander Lehmann ".js'; s.parentNode.insertBefore(g,s); 48d10bec37SAlexander Lehmann })();", 49d10bec37SAlexander Lehmann ); 50d10bec37SAlexander Lehmann } 51d10bec37SAlexander Lehmann} 52