*/ // must be run within DokuWiki if(!defined('DOKU_INC')) die(); /** * All DokuWiki plugins to extend the parser/rendering mechanism * need to inherit from this class */ class syntax_plugin_brmburo extends DokuWiki_Syntax_Plugin { public function getType() { return 'substition'; } public function getSort() { return 32; } public function connectTo($mode) { $this->Lexer->addSpecialPattern('\[BRMDOOR\]',$mode,'plugin_brmburo'); } public function handle($match, $state, $pos, Doku_Handler $handler) { return array($match, $state, $pos); } public function render($mode, Doku_Renderer $renderer, $data) { // $data is what the function handle return'ed. if($mode == 'xhtml'){ $spaceapi_status_json = $this->getConf("spaceapijson"); $str = file_get_contents($spaceapi_status_json); /** @var Doku_Renderer_xhtml $renderer */ $status = "UNKNOWN"; if ($str == FALSE) { $status = "ERROR:FILE"; } else { $json = json_decode($str, true); if ($json == NULL) { $status = "ERROR:JSON"; } else { $opened = $json['state']['open']; $lastchange = $json['state']['lastchange']; if ($opened == TRUE) { $status = '

' . '

OPEN

'; } elseif ($opened == FALSE) { $status = '

' . '

CLOSED

'; } else { $status = "ERROR:DECODE"; } } } $renderer->doc .= $status; return true; } return false; } }