xref: /plugin/piwiktagmanager/action.php (revision d10bec37856dd690ba3f143fe48d131b4ecfdb02)
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