diff --git a/inc/html.php b/inc/html.php index 42aba69653b6be226a3a80b16adc8594473c754d..06060e2db20677e414e17e4bb3d9ee5d5570e9cd 100644 --- a/inc/html.php +++ b/inc/html.php @@ -15,19 +15,14 @@ * * @author Andreas Gohr <andi@splitbrain.org> */ -function html_wikilink($url,$name='',$search=''){ - global $conf; - $link = array(); - $link['url'] = $url; - $link['name'] = $name; - $link = format_link_wiki($link); - - if($search){ - ($conf['userewrite']) ? $link['url'].='?s=' : $link['url'].='&s='; - $link['url'] .= urlencode($search); +function html_wikilink($id,$name='',$search=''){ + require_once(DOKU_INC.'inc/parser/xhtml.php'); + static $xhtml_renderer = NULL; + if(is_null($xhtml_renderer)){ + $xhtml_renderer = new Doku_Renderer_xhtml(); } - return format_link_build($link); + return $xhtml_renderer->internallink($id,$name,$search); } /** diff --git a/inc/parser/xhtml.php b/inc/parser/xhtml.php index 52efa9f7261e0211841b494587db0c5a842350c8..0b1531a653d3a7e564deaef261e1a6dca7794759 100644 --- a/inc/parser/xhtml.php +++ b/inc/parser/xhtml.php @@ -388,7 +388,7 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $this->internallink($link,$link); } - function internallink($id, $name = NULL) { + function internallink($id, $name = NULL, $search=NULL) { global $conf; $name = $this->_getLinkTitle($name, $this->_simpleTitle($id), $isImage, $id); @@ -415,6 +415,12 @@ class Doku_Renderer_xhtml extends Doku_Renderer { $link['name'] = $name; $link['title'] = $id; + //add search string + if($search){ + ($conf['userewrite']) ? $link['url'].='?s=' : $link['url'].='&s='; + $link['url'] .= urlencode($search); + } + //output formatted echo $this->_formatLink($link); }