1*d10bec37SAlexander Lehmann<?php 2*d10bec37SAlexander Lehmannif(!defined('DOKU_INC')) die(); 3*d10bec37SAlexander Lehmannif(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); 4*d10bec37SAlexander Lehmannrequire_once(DOKU_PLUGIN.'action.php'); 5*d10bec37SAlexander Lehmann 6*d10bec37SAlexander Lehmannclass action_plugin_piwiktagmanager extends DokuWiki_Action_Plugin { 7*d10bec37SAlexander Lehmann 8*d10bec37SAlexander Lehmann const PWTMID = 'PWTMID'; 9*d10bec37SAlexander Lehmann 10*d10bec37SAlexander Lehmann /** 11*d10bec37SAlexander Lehmann * return some info 12*d10bec37SAlexander Lehmann */ 13*d10bec37SAlexander Lehmann function getInfo(){ 14*d10bec37SAlexander Lehmann return array( 15*d10bec37SAlexander Lehmann 'author' => 'Alexander Lehmann', 16*d10bec37SAlexander Lehmann 'email' => 'alexlehm@gmail.com', 17*d10bec37SAlexander Lehmann 'date' => '2024-04-01', 18*d10bec37SAlexander Lehmann 'name' => 'Piwik Tag Manager Plugin', 19*d10bec37SAlexander Lehmann 'desc' => 'Plugin to embed Piwik Tag Manager in your wiki.', 20*d10bec37SAlexander Lehmann 'url' => 'https://www.lehmann.cx/wiki/projects:dokuwiki_piwik', 21*d10bec37SAlexander Lehmann ); 22*d10bec37SAlexander Lehmann } 23*d10bec37SAlexander Lehmann 24*d10bec37SAlexander Lehmann /** 25*d10bec37SAlexander Lehmann * Register its handlers with the DokuWiki's event controller 26*d10bec37SAlexander Lehmann */ 27*d10bec37SAlexander Lehmann function register(Doku_Event_Handler $controller) { 28*d10bec37SAlexander Lehmann $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, '_addHeaders'); 29*d10bec37SAlexander Lehmann } 30*d10bec37SAlexander Lehmann 31*d10bec37SAlexander Lehmann function _addHeaders (&$event, $param) { 32*d10bec37SAlexander Lehmann 33*d10bec37SAlexander Lehmann if(!$this->getConf(self::PWTMID)) return; 34*d10bec37SAlexander Lehmann 35*d10bec37SAlexander Lehmann $event->data['noscript'][] = array ( 36*d10bec37SAlexander Lehmann '_data' => '', 37*d10bec37SAlexander Lehmann ); 38*d10bec37SAlexander Lehmann $event->data['script'][] = array ( 39*d10bec37SAlexander Lehmann 'type' => 'text/javascript', 40*d10bec37SAlexander Lehmann '_data' => " 41*d10bec37SAlexander Lehmann var _mtm = window._mtm = window._mtm || []; 42*d10bec37SAlexander Lehmann _mtm.push({'mtm.startTime': (new Date().getTime()), 'event': 'mtm.Start'}); 43*d10bec37SAlexander Lehmann (function() { 44*d10bec37SAlexander Lehmann var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; 45*d10bec37SAlexander Lehmann g.async=true; g.src='https://piwik.lehmann.cx/piwik/js/container_".$this->getConf(self::PWTMID).".js'; s.parentNode.insertBefore(g,s); 46*d10bec37SAlexander Lehmann })();", 47*d10bec37SAlexander Lehmann ); 48*d10bec37SAlexander Lehmann } 49*d10bec37SAlexander Lehmann} 50*d10bec37SAlexander Lehmann?> 51