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