*/ class syntax_plugin_rndtxt extends DokuWiki_Syntax_Plugin { /** @inheritDoc */ public function getType() { return 'substition'; } /** @inheritDoc */ public function getPType() { return 'normal'; } /** @inheritDoc */ public function getSort() { return 155; } /** @inheritDoc */ public function connectTo($mode) { $this->Lexer->addSpecialPattern('{\?.*?\?}', $mode, 'plugin_rndtxt'); } /** @inheritDoc */ public function handle($match, $state, $pos, Doku_Handler $handler) { $match = substr($match, 2, -2); $data = explode('|', $match); $data = array_map('trim', $data); $data = array_unique($data); return $data; } /** @inheritDoc */ public function render($mode, Doku_Renderer $renderer, $data) { if ($mode !== 'xhtml') { return false; } $renderer->nocache(); $idx = array_rand($data); $renderer->cdata($data[$idx]); return true; } }