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