1<?php 2 3use dokuwiki\Extension\ActionPlugin; 4use dokuwiki\Extension\EventHandler; 5use dokuwiki\Extension\Event; 6 7/** 8 * DokuWiki Plugin umami (Action Component) 9 * 10 * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html 11 * @author Feralheart <dokuwiki@feralheart.dev> 12 */ 13class action_plugin_umami_tracker extends ActionPlugin 14{ 15 /** @inheritDoc */ 16 public function register(EventHandler $controller) 17 { 18 $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, 'injectUmamiScript'); 19 } 20 21 /** 22 * Event handler for TPL_METAHEADER_OUTPUT 23 * 24 * @see https://www.dokuwiki.org/devel:events:TPL_METAHEADER_OUTPUT 25 * @param Event $event Event object 26 * @param mixed $param optional parameter passed when event was registered 27 * @return void 28 */ 29 public function injectUmamiScript(Doku_Event $event, $param) { 30 $src = $this->getConf('script_src'); 31 $websiteId = $this->getConf('website_id'); 32 33 if (empty($src) || empty($websiteId)) return; 34 35 $event->data['script'][] = [ 36 'type' => 'text/javascript', 37 'src' => $src, 38 'data-website-id' => $websiteId, 39 'defer' => 'defer', 40 'async' => 'async' 41 ]; 42 } 43} 44