phpwind论坛位置导如何修改面包屑导航
PHPWind论坛位置导如何修改面包屑导航
PHPWind论坛程序是PHP常用的论坛程序之一,但是它有个缺点是位置导航(又称面包屑导
航)设置的非常不科学。
一般网站的位置导航都是:首页栏目页内容页
而PHPWind比较特殊的是,网站首页支持两种模式,一种是门户模式,一种是论坛模式。
有些是用门户模式做默认首页,那么论坛首页会变成/index.php?m=bbs,如果支持伪静态的
话会变成/index-htm-m-bbs.html。
现在出现的问题是,不管是否将网站设置为伪静态,那么位置导航中的首页链接都是
/index.php?m=bbs,这样就造成会出现两个网址指向同样的内容。也就是不符合URL标准化
的要求。
那么怎么修改呢?
而我们从模版里找的话,只会找的$msg_guide这个自定义变量的调用,但是搜这个变量的
话又找不到在哪里定义的,其实只需要修改下面这两个文件的headguide就可以。
这个需要测试一下,在论坛目录里找到这两个文件:
require/fourm.php
lib/forum/fourm.class.php
打开这两个文件,搜索function headguide,就会找到类似下面内容(不同版本不一样,这里
以8.5版本来举例):
function headguide($guidename, $onmouseover = true) { global $db_menu, $db_bbsname, $db_bfn, $imgpath, $db_menu, $db_mode, $db_bbsurl;
if ($db_mode == 'bbs' &;&; $db_bfn == 'index.php') { $db_bfn_temp = $db_bbsurl . "/index.php?m=bbs"; }else {
$db_bfn_temp = $db_bfn;
}
if ($db_menu &;&; $onmouseover) {
$headguide = "img id="td_cate" src="$imgpath/" . L::style('stylepath') . "/thread/home.gif" title="
快速跳转至其他版块" onClick="return pwForumList(false,false,null,this);" class="cp
breadHome" /em class="breadEm"/ema href="$db_bfn_temp" title="$db_bbsname"$db_bbsname/a";
} else {
$headguide = "a href="$db_bfn" title="$db_bbsname"$db_bbsname/a";
}
if (!is_array($guidename)) {
return $headguide . 'em/em' . $guidename;
}
foreach ($guidename as $key = $value) {
if ($value[1]) { $headguide .= 'em/ema href="' . $value[1] . '"' . $value[0] . '/a';
} else {
$headguide .= 'em/em' . $value[0];
}
}
return $headguide;
}
因为我想修改的论坛是以门户模式为默认首页的,而论坛的首页伪静态之后变成了
/index-htm-m-bbs.html。在我将位置导航修改之前是(括号后为实际链接):网站名称
(index.php?m=bbs)版块名称帖子名称。
将相应的代码修改为:
$headguide = "img id="td_cate" src="$imgpath/" . L::style('stylepath') . "/thread/home.gif" title="
快速跳转至其他版块" onClick="return pwForumList(false,false,null,this);" class="cp
breadHome" /em class="breadEm"/ema href="/" title="$db_bbsname"."网站首页
".""$db_bbsname/aem/ema href="/index-htm-m-bbs.html" title="$db_bbsname"."论坛首页".""
论坛/a";
修改后位置导航变成了:网站名称(/)论坛(/index-htm-m-bbs.html)》版块名称》帖子名称。
可以测试一下,自己的论坛调用了下面哪个文件,按照上面的方法修改就可以了。