1*186dbc61SMark Prins<?php 2*186dbc61SMark Prins// phpcs:disable Squiz.Classes.ValidClassName.NotCamelCaps 3*186dbc61SMark Prins// phpcs:disable PSR1.Files.SideEffects 4*186dbc61SMark Prins/* 5*186dbc61SMark Prins* Copyright (c) 2022 Mark C. Prins <mprins@users.sf.net> 6*186dbc61SMark Prins* 7*186dbc61SMark Prins* Permission to use, copy, modify, and distribute this software for any 8*186dbc61SMark Prins* purpose with or without fee is hereby granted, provided that the above 9*186dbc61SMark Prins* copyright notice and this permission notice appear in all copies. 10*186dbc61SMark Prins* 11*186dbc61SMark Prins* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 12*186dbc61SMark Prins* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 13*186dbc61SMark Prins* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 14*186dbc61SMark Prins* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 15*186dbc61SMark Prins* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 16*186dbc61SMark Prins* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 17*186dbc61SMark Prins* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 18*186dbc61SMark Prins* 19*186dbc61SMark Prins*/ 20*186dbc61SMark Prins 21*186dbc61SMark Prinsuse Composer\InstalledVersions; 22*186dbc61SMark Prins 23*186dbc61SMark Prinsrequire_once __DIR__ . '/vendor/autoload.php'; 24*186dbc61SMark Prins 25*186dbc61SMark Prins/** 26*186dbc61SMark Prins * DokuWiki Plugin geophp (Action Component). 27*186dbc61SMark Prins * 28*186dbc61SMark Prins * @author Mark Prins 29*186dbc61SMark Prins */ 30*186dbc61SMark Prinsclass action_plugin_geophp extends DokuWiki_Plugin { 31*186dbc61SMark Prins /** 32*186dbc61SMark Prins * plugin should use this method to register its handlers with the DokuWiki's event controller 33*186dbc61SMark Prins * 34*186dbc61SMark Prins * @param $controller DokuWiki's event controller object. Also available as global $EVENT_HANDLER 35*186dbc61SMark Prins */ 36*186dbc61SMark Prins final public function register(Doku_Event_Handler $controller): void { 37*186dbc61SMark Prins $controller->register_hook('PLUGIN_POPULARITY_DATA_SETUP', 'AFTER', $this, 'popularity'); 38*186dbc61SMark Prins } 39*186dbc61SMark Prins 40*186dbc61SMark Prins /** 41*186dbc61SMark Prins * add popularity data for this plugin. 42*186dbc61SMark Prins * 43*186dbc61SMark Prins * @param Doku_Event $event 44*186dbc61SMark Prins * the DokuWiki event 45*186dbc61SMark Prins */ 46*186dbc61SMark Prins final public function popularity(Doku_Event $event): void { 47*186dbc61SMark Prins global $updateVersion; 48*186dbc61SMark Prins $geoPHP = InstalledVersions::getPrettyVersion('phayes/geophp'); 49*186dbc61SMark Prins $plugin_info = $this->getInfo(); 50*186dbc61SMark Prins $event->data['geophp']['version'] = $plugin_info['date']; 51*186dbc61SMark Prins $event->data['geophp']['geophp'] = $geoPHP; 52*186dbc61SMark Prins $event->data['geophp']['dwversion'] = $updateVersion; 53*186dbc61SMark Prins $event->data['geophp']['combinedversion'] = $updateVersion . '_' . $plugin_info['date'] . '_' . $geoPHP; 54*186dbc61SMark Prins } 55*186dbc61SMark Prins}