phpwind论坛位置导如何修改面包屑导航
2016-06-20来源:易贤网

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></em><a 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>></em><a 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></em><a href=/ title=$db_bbsname.网站首页.>$db_bbsname</a><em>></em><a href=/index-htm-m-bbs.html title=$db_bbsname.论坛首页.>论坛</a>;

修改后位置导航变成了:网站名称(/)>论坛(/index-htm-m-bbs.html)》版块名称》帖子名称。

可以测试一下,自己的论坛调用了下面哪个文件,按照上面的方法修改就可以了。

推荐信息