*/ use dokuwiki\Extension\SyntaxPlugin; /** * Class syntax_plugin_doxycode_taglist * * This syntax plugin renders a table with all available tag files. * It can be used to inform users which tag files can be used by which names in the snippet syntax. */ class syntax_plugin_doxycode_taglist extends SyntaxPlugin { public function getType() { return 'substition'; } public function getSort() { // TODO: which sort number? return 159; } public function connectTo($mode) { $this->Lexer->addSpecialPattern('', $mode, 'plugin_doxycode_taglist'); } public function handle($match, $state, $pos, Doku_Handler $handler) { static $args; switch ($state) { case DOKU_LEXER_SPECIAL: // TODO: do we expect parameters here? // add columns like reload period, file state? // TODO: implement option for only displaying enabled configurations! // Parse the attributes and content here // $args = $this->_parseAttributes($match); return [$state, ]; } return []; } /** * */ public function render($mode, Doku_Renderer $renderer, $data) { if ($mode != 'xhtml') return; /** @var helper_plugin_doxycode_tagmanager $tagmanager */ $tagmanager = plugin_load('helper', 'doxycode_tagmanager'); $config = $tagmanager->loadTagFileConfig(); $renderer->doc .= '
'; $renderer->doc .= ''; $renderer->doc .= ''; $renderer->doc .= ''; $renderer->doc .= ''; $renderer->doc .= ''; $renderer->doc .= ''; $renderer->doc .= ''; $renderer->doc .= ''; $renderer->doc .= ''; $renderer->doc .= ''; foreach ($config as $key => $conf) { $renderer->doc .= ''; // TODO: display enabled state as locked checkbox $renderer->doc .= ''; $renderer->doc .= ''; $renderer->doc .= ''; $renderer->doc .= ''; // TODO: should we enable more information? last updated, reason for disabled state, ...? $renderer->doc .= ''; } $renderer->doc .= ''; $renderer->doc .= '
' . $this->getLang('tag_conf_enabled') . '' . $this->getLang('tag_conf_local_name') . '' . $this->getLang('tag_conf_docu_url') . '' . $this->getLang('tag_conf_remote_url') . '
' . $conf['enabled'] . '' . $key . '' . $conf['docu_url'] . '' . $conf['remote_url'] . '
'; $renderer->doc .= '
'; } }