1f125bc8dSSascha Leib<?php 2f125bc8dSSascha Leib 3f125bc8dSSascha Leibuse dokuwiki\Extension\AdminPlugin; 4f125bc8dSSascha Leib 5f125bc8dSSascha Leib/** 6f125bc8dSSascha Leib * Trafic 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**/ 16f125bc8dSSascha Leibclass admin_plugin_monitor 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 33f125bc8dSSascha Leib $svg = '<svg width="60" height="60" id="monitor__today__busy" viewBox="0 0 38 38"><g transform="translate(19 19)"><g transform="rotate(0)"><circle cx="0" cy="12" r="3" opacity="0.125"><animate attributeName="opacity" from="0.125" to="0.125" dur="1.2s" begin="0s" repeatCount="indefinite" keyTimes="0;1" values="1;0.125"></animate></circle></g><g transform="rotate(45)"><circle cx="0" cy="12" r="3" opacity="0.25"><animate attributeName="opacity" from="0.25" to="0.25" dur="1.2s" begin="0.15s" repeatCount="indefinite" keyTimes="0;1" values="1;0.25"></animate></circle></g><g transform="rotate(90)"><circle cx="0" cy="12" r="3" opacity="0.375"><animate attributeName="opacity" from="0.375" to="0.375" dur="1.2s" begin="0.3s" repeatCount="indefinite" keyTimes="0;1" values="1;0.375"></animate></circle></g><g transform="rotate(135)"><circle cx="0" cy="12" r="3" opacity="0.5"><animate attributeName="opacity" from="0.5" to="0.5" dur="1.2s" begin="0.45s" repeatCount="indefinite" keyTimes="0;1" values="1;0.5"></animate></circle></g><g transform="rotate(180)"><circle cx="0" cy="12" r="3" opacity="0.625"><animate attributeName="opacity" from="0.625" to="0.625" dur="1.2s" begin="0.6s" repeatCount="indefinite" keyTimes="0;1" values="1;0.625"></animate></circle></g><g transform="rotate(225)"><circle cx="0" cy="12" r="3" opacity="0.75"><animate attributeName="opacity" from="0.75" to="0.75" dur="1.2s" begin="0.75s" repeatCount="indefinite" keyTimes="0;1" values="1;0.75"></animate></circle></g><g transform="rotate(270)"><circle cx="0" cy="12" r="3" opacity="0.875"><animate attributeName="opacity" from="0.875" to="0.875" dur="1.2s" begin="0.9s" repeatCount="indefinite" keyTimes="0;1" values="1;0.875"></animate></circle></g><g transform="rotate(315)"><circle cx="0" cy="12" r="3" opacity="1"><animate attributeName="opacity" from="1" to="1" dur="1.2s" begin="1.05s" repeatCount="indefinite" keyTimes="0;1" values="1;1"></animate></circle></g></g></svg>'; 34f125bc8dSSascha Leib 35f125bc8dSSascha Leib /* Plugin Headline */ 36f125bc8dSSascha Leib echo '<div id="monitor__admin">'; 37f125bc8dSSascha Leib echo '<h1>Monitor Plugin</h1>'; 38f125bc8dSSascha Leib 39f125bc8dSSascha Leib /* tab navigation */ 40f125bc8dSSascha Leib echo '<nav id="monitor__tabs">'; 41f125bc8dSSascha Leib echo '<ul class="tabs" role="tablist">'; 42f125bc8dSSascha Leib echo '<li role="presentation" class="active">'; 43f125bc8dSSascha Leib echo '<a role="tab" href="#monitor__panel1" aria-controls="monitor__panel1" id="monitor__tab1" aria-selected="true">Today</a></li>'; 44f125bc8dSSascha Leib echo '</ul></nav>'; 45f125bc8dSSascha Leib 46f125bc8dSSascha Leib /* Live tab */ 47*9bc80cc5SSascha Leib echo '<article role="tabpanel" id="monitor__today"">'; 48f125bc8dSSascha Leib echo '<h2 class="a11y">Today</h2>'; 49*9bc80cc5SSascha Leib echo '<header id="monitor__today__title">Loading …</header>'; 509f1ee8c1SSascha Leib echo '<div id="monitor__today__content">'; 519f1ee8c1SSascha Leib echo '<details id="monitor__today__visitors"><summary>Visitor log</summary>'; 529f1ee8c1SSascha Leib echo '<ul id="monitor__today__visitorlist"></ul>'; 539f1ee8c1SSascha Leib echo '</details></div>'; 549f1ee8c1SSascha Leib echo '<footer aria-live="polite">' . $svg . '<span id="monitor__today__status">Initialising …</span></footer>'; 55*9bc80cc5SSascha Leib echo '</article>'; 56f125bc8dSSascha Leib echo '</div><!-- End of Monitor Admin Tool -->'; 57f125bc8dSSascha Leib 58f125bc8dSSascha Leib } 59f125bc8dSSascha Leib}