Lexer->addSpecialPattern('[Bb]ug\s[0-9]+(?:\s<[a-z_,^>]+>)?', $mode, 'plugin_bugzillaint_link'); } /** * Handle matches */ public function handle($match, $state, $pos, Doku_Handler $handler){ $matches = array(); // found link if ( preg_match('/^[Bb]ug\s([0-9]+)(?:\s<([a-z_,^>]+)>)?$/', $match, $submatch) ) { $matches['link'] = array( 'id' => $submatch[1], 'extras' => isset($submatch[2]) ? trim($submatch[2]) : $this->getConf('link_default_extras') ); } return $matches; } /** * Render the output * * @param string $mode * @param Doku_Renderer $renderer * @param array $data * @return boolean */ public function render($mode, Doku_Renderer $renderer, $data) { if ($mode != 'xhtml') return false; // render link if ( isset( $data['link'] ) ) { $render = $this->loadHelper('bugzillaint_render', false); $attrs = $render->renderAttributes( $data['link'] ); $label = $data['link']['id']; $url = $this->getConf('show_baseurl') . (int) $data['link']['id']; $renderer->doc .= '' . '' . htmlspecialchars($label) . '' . ''; } return true; } }