1f125bc8dSSascha Leib<?php 2f125bc8dSSascha Leib 3f125bc8dSSascha Leibuse dokuwiki\Extension\AdminPlugin; 4f125bc8dSSascha Leib 5f125bc8dSSascha Leib/** 67bd08c30SSascha Leib * Bot Monitoring Plugin 7f125bc8dSSascha Leib* 8f125bc8dSSascha Leib* @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 9f125bc8dSSascha Leib* @author Sascha Leib <ad@hominem.info> 10f125bc8dSSascha Leib*/ 11f125bc8dSSascha Leib 12f125bc8dSSascha Leib/** 13f125bc8dSSascha Leib * All DokuWiki plugins to extend the admin function 14f125bc8dSSascha Leib * need to inherit from this class 15f125bc8dSSascha Leib**/ 167bd08c30SSascha Leibclass admin_plugin_botmon extends AdminPlugin { 17f125bc8dSSascha Leib 18f125bc8dSSascha Leib /** 19f125bc8dSSascha Leib * Return the path to the icon being displayed in the main admin menu. 20f125bc8dSSascha Leib * 21f125bc8dSSascha Leib * @return string full path to the icon file 22f125bc8dSSascha Leib **/ 23f125bc8dSSascha Leib public function getMenuIcon() { 24f125bc8dSSascha Leib $plugin = $this->getPluginName(); 25f125bc8dSSascha Leib return DOKU_PLUGIN . $plugin . '/img/admin.svg'; 26f125bc8dSSascha Leib } 27f125bc8dSSascha Leib 28f125bc8dSSascha Leib /** 29f125bc8dSSascha Leib * output appropriate html 30f125bc8dSSascha Leib */ 31f125bc8dSSascha Leib public function html() { 32f125bc8dSSascha Leib 33*ade4db36SSascha Leib global $conf; 34*ade4db36SSascha Leib 35*ade4db36SSascha Leib $pluginPath = $conf['basedir'] . 'lib/plugins/' . $this->getPluginName(); 36f125bc8dSSascha Leib 37f125bc8dSSascha Leib /* Plugin Headline */ 387bd08c30SSascha Leib echo '<div id="botmon__admin">'; 397bd08c30SSascha Leib echo '<h1>Bot Monitoring Plugin</h1>'; 40f125bc8dSSascha Leib 41f125bc8dSSascha Leib /* tab navigation */ 427bd08c30SSascha Leib echo '<nav id="botmon__tabs">'; 43f125bc8dSSascha Leib echo '<ul class="tabs" role="tablist">'; 44f125bc8dSSascha Leib echo '<li role="presentation" class="active">'; 457bd08c30SSascha Leib echo '<a role="tab" href="#botmon__panel1" aria-controls="botmon__panel1" id="botmon__tab1" aria-selected="true">Today</a></li>'; 46f125bc8dSSascha Leib echo '</ul></nav>'; 47f125bc8dSSascha Leib 48*ade4db36SSascha Leib // Beta warning message: 49*ade4db36SSascha Leib echo '<div class="info"><strong>Please note:</strong> This plugin is still in the early stages of development and does not (yet) clean up its <code>logs</code> directory.<br>To avoid taking up too much space on your server, please remove older logs manually!</div>'; 50*ade4db36SSascha Leib 51f125bc8dSSascha Leib /* Live tab */ 527bd08c30SSascha Leib echo '<article role="tabpanel" id="botmon__today"">'; 53f125bc8dSSascha Leib echo '<h2 class="a11y">Today</h2>'; 547bd08c30SSascha Leib echo '<header id="botmon__today__title">Loading …</header>'; 557bd08c30SSascha Leib echo '<div id="botmon__today__content">'; 567bd08c30SSascha Leib echo '<details id="botmon__today__visitors"><summary>Visitor log</summary>'; 577bd08c30SSascha Leib echo '<ul id="botmon__today__visitorlist"></ul>'; 589f1ee8c1SSascha Leib echo '</details></div>'; 59*ade4db36SSascha Leib echo '<footer aria-live="polite"><img src="' . $pluginPath . '/img/spinner.svg" id="botmon__today__busy" width="12" height="12" alt="busy indicator"><span id="botmon__today__status">Initialising …</span></footer>'; 609bc80cc5SSascha Leib echo '</article>'; 617bd08c30SSascha Leib echo '</div><!-- End of BotMon Admin Tool -->'; 62f125bc8dSSascha Leib 63f125bc8dSSascha Leib } 64f125bc8dSSascha Leib}