xref: /plugin/googletagmanager/action.php (revision bfa47fb6fed0dfd34bfc35af66779c38ec8b74e7)
1<?php
2if(!defined('DOKU_INC')) die();
3if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
4require_once(DOKU_PLUGIN.'action.php');
5
6class action_plugin_googletagmanager extends DokuWiki_Action_Plugin {
7
8	/**
9	 * return some info
10	 */
11	function getInfo(){
12		return array(
13			'author' => 'Alexander Lehmann',
14			'email'  => 'alexlehm@gmail.com',
15			'date'   => '2014-02-01',
16			'name'   => 'Google Tag Manager Plugin',
17			'desc'   => 'Plugin to embed Google Tag Manager in your wiki.',
18			'url'    => 'http://www.lehmann.cx/wiki/projects:dokuwiki_gtm',
19		);
20	}
21
22	/**
23	 * Register its handlers with the DokuWiki's event controller
24	 */
25	function register(&$controller) {
26	    $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE',  $this, '_addHeaders');
27	}
28
29	function _addHeaders (&$event, $param) {
30		global $INFO;
31		if(!$this->getConf('GTMID')) return;
32		$event->data['noscript'][] = array (
33		  '_data' => '<iframe src="//www.googletagmanager.com/ns.html?id='.$this->getConf('GTMID').'" height="0" width="0" style="display:none;visibility:hidden"></iframe>',
34		);
35		$event->data['script'][] = array (
36		  'type' => 'text/javascript',
37		  '_data' => "(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
38new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
39j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
40'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
41})(window,document,'script','dataLayer','".$this->getConf('GTMID')."');",
42		);
43	}
44}
45?>