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

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

[复制链接]
博润天下 发表于 2012-07-05 17:47:01 | 显示全部楼层 |阅读模式
    PHPWind论坛程序是PHP常用的论坛程序之一,但是它有个缺点是位置导航(又称面包屑导航)设置的非常不科学。
: [5 Q- |1 [+ ^8 K9 R6 ~7 H    一般网站的位置导航都是:首页>栏目页>内容页
0 e) l6 I* \( j4 g7 K    而PHPWind比较特殊的是,网站首页支持两种模式,一种是门户模式,一种是论坛模式。有些是用门户模式做默认首页,那么论坛首页会变成/index.php?m=bbs,如果支持伪静态的话会变成/index-htm-m-bbs.html。: K9 ?+ Z; M; i0 C5 z) G0 |3 y
    现在出现的问题是,不管是否将网站设置为伪静态,那么位置导航中的首页链接都是/index.php?m=bbs,这样就造成会出现两个网址指向同样的内容。也就是不符合URL标准化的要求。9 g6 I8 x/ C% M2 O
    那么怎么修改呢?2 N/ W3 S. p. K( h9 }. A
    而我们从模版里找的话,只会找的$msg_guide这个自定义变量的调用,但是搜这个变量的话又找不到在哪里定义的,其实只需要修改下面这两个文件的headguide就可以。( C; q7 e0 N7 J' e& s8 W1 Y9 Z3 `
    这个需要测试一下,在论坛目录里找到这两个文件:$ p0 g1 T2 }9 i1 o2 f0 S' m5 m
    require/fourm.php
/ \5 u# X' ~1 n7 a    lib/forum/fourm.class.php
$ V  D: ~* N. m- O9 c  [0 b    打开这两个文件,搜索function headguide,就会找到类似下面内容(不同版本不一样,这里以8.5版本来举例):
4 O5 u/ U9 O7 p* E* a- H8 @( O    function headguide($guidename, $onmouseover = true) {
/ n# Z" h6 g  O  l    global $db_menu, $db_bbsname, $db_bfn, $imgpath, $db_menu, $db_mode, $db_bbsurl;
0 D4 e$ [( R( n# p! w7 }    if ($db_mode == 'bbs' && $db_bfn == 'index.php‘) {
) }- T& s: W: A/ @9 ^( {    $db_bfn_temp = $db_bbsurl . “/index.php?m=bbs”;
  ?3 R" {2 m+ S. e  m. X    } else {: m  d& P- x$ Q: a% g( K
    $db_bfn_temp = $db_bfn;2 ^  C  N8 P/ w
    }' p' C) O  J) D1 H6 T' w: [' p
    if ($db_menu && $onmouseover) {
$ L! b6 M4 `7 q' {# c1 c! ~/ {) f    $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>”;
1 G1 H0 e6 y3 ^5 u6 t4 r% K    } else {: `" R/ a% f7 l" X  ?
    $headguide = “<a href=\”$db_bfn\“ title=\”$db_bbsname\“>$db_bbsname</a>”;
0 r+ O6 W4 o: T1 n    }
1 J7 e; r. P5 Q; J; Q    if (!is_array($guidename)) {( |* o0 S: J8 r0 j+ M' g" u: E0 l
    return $headguide . '<em》</em>' . $guidename;3 C+ x2 O* }- _6 V1 k' ?
    }4 V: F; E2 {- ]' `. a, Z2 [
    foreach ($guidename as $key => $value) {  q; x' ~3 @# R9 a7 _9 i
    if ($value[1]) {
$ T2 Y2 m' `4 H4 w; \    $headguide .= '<em》</em><a href=“‘ . $value[1] . ’”>' . $value[0] . '</a>';
" Q# S3 B; t2 E    } else {7 G$ i/ e8 F9 s0 G: Q. {0 K- I
    $headguide .= '<em》</em>' . $value[0];1 P1 ]% i6 }, t! N" V4 r
    }
0 Y& k- q" x- m  J0 `, a* K    }
7 x/ F3 Z4 p, t6 o    return $headguide;
; \. S( z1 U  f1 M    }3 ?: S: [$ ~- ^6 K' S
    因为我想修改的论坛是以门户模式为默认首页的,而论坛的首页伪静态之后变成了/index-htm-m-bbs.html。在我将位置导航修改之前是(括号后为实际链接):网站名称(index.php?m=bbs)>版块名称>帖子名称。- R8 ~% p9 B) ]7 r
    将相应的代码修改为:
' O) V6 f: T" ~    $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)>版块名称>帖子名称。  w/ P) B9 t# t) H
    可以测试一下,自己的论坛调用了下面哪个文件,按照上面的方法修改就可以了。
5 A& K) N5 X) p6 z+ D/ G2 V' m  \    require/fourm.php
# ~$ K5 c: y$ @8 ?    lib/forum/fourm.class.php* ^" ^1 P  R. P5 H
   本文由北京治疗牛皮癣医院http://www.lzghyy.com/整理首发!$ a- [3 u* E  }
回复

使用道具 举报

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

使用道具 举报

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

    本版积分规则

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

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

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

    Powered by Discuz! X3.5

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