====== 取消Dokuwiki中的反向链接backlink ====== ===== 什么是Dokuwiki的反向链接 ===== Dokuwiki默认模板会在页面的header中文章标题上面生成这个页面的反向链接。 如本文的反向链接就是:http://www.pythonclub.org/dokuwiki/template-backlink?do=backlink 可是我不喜欢这个设计,所以想着把Dokuwiki的这个backlink去掉,其实也很简单。 ===== 取消Dokuwiki反向链接backlink ===== 在你所用模板的main.php中查找类似下面代码的代码段:
[[]]
把上面的 [[]] "do=backlink"去掉就可以了,如果你要更改header部分的内容,你也可以在这里面改。 其中涉及到三个函数:tpl_link, wl, tpl_pagetitle。 ==== tpl_link ==== tpl_link是生成link的函数,很简单,下面是函数定义在inc/template.php文件中: function tpl_link($url,$name,$more=''){ print '$name"; return true; } ==== wl ==== 生成wiki页面的link,在inc/common.php中定义的: /** * This builds a link to a wikipage * * It handles URL rewriting and adds additional parameter if * given in $more * * @author Andreas Gohr */ function wl($id='',$more='',$abs=false,$sep='&'){ global $conf; if(is_array($more)){ $more = buildURLparams($more,$sep); }else{ $more = str_replace(',',$sep,$more); } $id = idfilter($id); if($abs){ $xlink = DOKU_URL; }else{ $xlink = DOKU_BASE; } if($conf['userewrite'] == 2){ $xlink .= DOKU_SCRIPT.'/'.$id; if($more) $xlink .= '?'.$more; }elseif($conf['userewrite']){ $xlink .= $id; if($more) $xlink .= '?'.$more; }elseif($id){ $xlink .= DOKU_SCRIPT.'?id='.$id; if($more) $xlink .= $sep.$more; }else{ $xlink .= DOKU_SCRIPT; if($more) $xlink .= '?'.$more; } return $xlink; } ==== tpl_pagetitle ==== 这个很好理解,就是页面的title,在inc/template.php中定义: /** * Prints or returns the name of the given page (current one if none given). * * If useheading is enabled this will use the first headline else * the given ID is used. * * @author Andreas Gohr */ function tpl_pagetitle($id=null, $ret=false){ global $conf; if(is_null($id)){ global $ID; $id = $ID; } $name = $id; if ($conf['useheading']) { $title = p_get_first_heading($id); if ($title) $name = $title; } if ($ret) { return hsc($name); } else { print hsc($name); return true; } }