找回密码
 加入怎通
查看: 807|回复: 1

[其他] 如何修改PHPWind论坛面包屑导航

[复制链接]
博润天下 发表于 2012-07-05 17:47:01 | 显示全部楼层 |阅读模式
    PHPWind论坛程序是PHP常用的论坛程序之一,但是它有个缺点是位置导航(又称面包屑导航)设置的非常不科学。- ~1 _, k" E; z( W  U2 C7 Y
    一般网站的位置导航都是:首页>栏目页>内容页
, q6 K$ S& N; |4 @) ?6 {    而PHPWind比较特殊的是,网站首页支持两种模式,一种是门户模式,一种是论坛模式。有些是用门户模式做默认首页,那么论坛首页会变成/index.php?m=bbs,如果支持伪静态的话会变成/index-htm-m-bbs.html。- R9 C  y, A- K7 S8 f
    现在出现的问题是,不管是否将网站设置为伪静态,那么位置导航中的首页链接都是/index.php?m=bbs,这样就造成会出现两个网址指向同样的内容。也就是不符合URL标准化的要求。. `3 b6 \# m1 t% {4 ~- w& ]2 s& X
    那么怎么修改呢?
9 [" J1 p: X& j8 b2 o    而我们从模版里找的话,只会找的$msg_guide这个自定义变量的调用,但是搜这个变量的话又找不到在哪里定义的,其实只需要修改下面这两个文件的headguide就可以。
; U) i% ~* h6 F& f! s$ k. X    这个需要测试一下,在论坛目录里找到这两个文件:
* f) L8 M$ x, `    require/fourm.php; E' d; c5 T( f, N$ S( h9 F
    lib/forum/fourm.class.php3 d' A" C  f! C, o$ j0 u
    打开这两个文件,搜索function headguide,就会找到类似下面内容(不同版本不一样,这里以8.5版本来举例):' D' w8 b3 Y; H/ ~& L6 \
    function headguide($guidename, $onmouseover = true) {1 u: S2 w! R4 X/ Q5 d
    global $db_menu, $db_bbsname, $db_bfn, $imgpath, $db_menu, $db_mode, $db_bbsurl;8 y$ k) [: n$ c& U, J, |3 `. U
    if ($db_mode == 'bbs' && $db_bfn == 'index.php‘) {
3 ^. }' U- z, e9 ^6 f) A" \6 C    $db_bfn_temp = $db_bbsurl . “/index.php?m=bbs”;
& Z0 }+ e1 o- Q, y    } else {8 Z2 R, d( T9 G2 u
    $db_bfn_temp = $db_bfn;
# `' j/ R2 b: p1 h7 p4 N1 e- J" S    }1 R( T" C' M: K7 W) U
    if ($db_menu && $onmouseover) {
3 k2 i8 ]$ }  M: C    $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>”;
7 n2 `8 w& ^  F- U. J9 l    } else {
4 N3 n8 F& S1 w1 e    $headguide = “<a href=\”$db_bfn\“ title=\”$db_bbsname\“>$db_bbsname</a>”;
2 W5 X/ z& h* G+ l7 N" q5 R    }
- D; j+ J5 P1 }, S2 P9 ~/ `9 p6 R    if (!is_array($guidename)) {
8 Y! {5 s  a! A    return $headguide . '<em》</em>' . $guidename;
& F, [2 e+ I5 Y5 O' x1 M    }
9 V* ^/ y) b) D' n% f    foreach ($guidename as $key => $value) {$ ^8 V8 O' V. q3 z
    if ($value[1]) {
6 @/ @$ x# O$ U4 M, J8 G5 T( p" K    $headguide .= '<em》</em><a href=“‘ . $value[1] . ’”>' . $value[0] . '</a>';
. S5 R& J3 T' r* g    } else {, J# E# @# {1 W
    $headguide .= '<em》</em>' . $value[0];
5 S' l( X1 h0 L    }7 b) R8 C6 S/ V+ `# a* ?6 r
    }' l/ ]. r. C; K! s
    return $headguide;. O5 b# f! Y* n  ^* P( `
    }
* `7 f0 f' e1 O/ |    因为我想修改的论坛是以门户模式为默认首页的,而论坛的首页伪静态之后变成了/index-htm-m-bbs.html。在我将位置导航修改之前是(括号后为实际链接):网站名称(index.php?m=bbs)>版块名称>帖子名称。; z2 d" ]# f; W/ d4 P
    将相应的代码修改为:- B  J" U- s3 n  a* L
    $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)>版块名称>帖子名称。# X- E# L, q$ q* R% O
    可以测试一下,自己的论坛调用了下面哪个文件,按照上面的方法修改就可以了。+ A0 Z  {7 Y7 _3 D# E- f- u$ @  ^
    require/fourm.php6 _' z9 D( I/ T% p' X5 r
    lib/forum/fourm.class.php4 n/ J5 T/ }/ ]- Z! \1 i
   本文由北京治疗牛皮癣医院http://www.lzghyy.com/整理首发!1 w, Y7 p0 D5 ~4 \+ v1 p% h: {
回复

使用道具 举报

Homeless 发表于 2026-03-16 10:42:32 | 显示全部楼层
说得很实在,没有夸大其词,这种真实分享太难得了
回复 支持 反对

使用道具 举报

    您需要登录后才可以回帖 登录 | 加入怎通

    本版积分规则

    QQ|手机版|小黑屋|网站地图|真牛社区 ( 苏ICP备2023040716号-2 )

    GMT+8, 2026-5-15 10:00 , Processed in 0.095499 second(s), 24 queries , Gzip On.

    免责声明:本站信息来自互联网,本站不对其内容真实性负责,如有侵权等情况请联系420897364#qq.com(把#换成@)删除。

    Powered by Discuz! X3.5

    快速回复 返回顶部 返回列表