1<?php 2/** 3 * DokuWiki Plugin pagestats (Syntax Component) 4 * Allows using ~~PAGESTATSPAGE~~, ~~PAGESTATSMB~~, ~~MEDIASTATSPAGE~~, and ~~MEDIASTATSMB~~ to display stats. 5 */ 6 7if (!defined('DOKU_INC')) die(); 8 9class syntax_plugin_pagestats extends DokuWiki_Syntax_Plugin { 10 11 public function getType() { 12 return 'substition'; 13 } 14 15 public function getSort() { 16 return 999; 17 } 18 19 public function connectTo($mode) { 20 $this->Lexer->addSpecialPattern('~~PAGESTATSPAGE~~', $mode, 'plugin_pagestats'); 21 $this->Lexer->addSpecialPattern('~~PAGESTATSMB~~', $mode, 'plugin_pagestats'); 22 $this->Lexer->addSpecialPattern('~~MEDIASTATSPAGE~~', $mode, 'plugin_pagestats'); 23 $this->Lexer->addSpecialPattern('~~MEDIASTATSMB~~', $mode, 'plugin_pagestats'); 24 } 25 26 public function handle($match, $state, $pos, Doku_Handler $handler) { 27 return trim($match, '~'); 28 } 29 30 public function render($mode, Doku_Renderer $renderer, $data) { 31 if ($mode !== 'xhtml') return false; 32 33 /** @var helper_plugin_pagestats $helper */ 34 $helper = plugin_load('helper', 'pagestats'); 35 if (!$helper) return false; 36 37 $stats = $helper->getStats(); 38 39 if (isset($stats[$data])) { 40 $value = $stats[$data]; 41 42 // Add "MB" unit if configured and it's a size value 43 if ($this->getConf('showUnit') && in_array($data, ['PAGESTATSMB', 'MEDIASTATSMB'])) { 44 $value .= " " . $this->getLang('unit_mb'); 45 } 46 47 // Debug-Modus: Zeige die Sprachschlüssel 48 // $renderer->doc .= '<pre>Verfügbare Sprachschlüssel: ' . print_r($this->lang, true) . '</pre>'; 49 50 // Output zu renderer 51 $renderer->doc .= hsc($value); 52 } 53 54 return true; 55 } 56}