Dokuwiki默认模板会在页面的header中文章标题上面生成这个页面的反向链接。
如本文的反向链接就是:http://www.pythonclub.org/dokuwiki/template-backlink?do=backlink
可是我不喜欢这个设计,所以想着把Dokuwiki的这个backlink去掉,其实也很简单。
在你所用模板的main.php中查找类似下面代码的代码段:
<div class="header"> <div class="pagename"> [[<?php tpl_link(wl($ID,'do=backlink'),tpl_pagetitle($ID,true))?>]] </div> <div class="logo"> <?php tpl_link(wl(),$conf['title'], 'name="dokuwiki__top" accesskey="h" title="[ALT+H]"')?> </div> </div>
把上面的
[[<?php tpl_link(wl($ID,'do=backlink'),tpl_pagetitle($ID,true))?>]]
“do=backlink”去掉就可以了,如果你要更改header部分的内容,你也可以在这里面改。
其中涉及到三个函数:tpl_link, wl, tpl_pagetitle。
tpl_link是生成link的函数,很简单,下面是函数定义在inc/template.php文件中:
function tpl_link($url,$name,$more=''){ print '<a href="'.$url.'" '; if ($more) print ' '.$more; print ">$name</a>"; return true; }
生成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 <andi@splitbrain.org> */ 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; }
这个很好理解,就是页面的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 <andi@splitbrain.org> */ 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; } }