找回密码
 加入怎通
查看: 852|回复: 3

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

[复制链接]
博润天下 发表于 2012-07-05 17:47:01 | 显示全部楼层 |阅读模式
    PHPWind论坛程序是PHP常用的论坛程序之一,但是它有个缺点是位置导航(又称面包屑导航)设置的非常不科学。# y  v7 u' T/ L3 k
    一般网站的位置导航都是:首页>栏目页>内容页
, P$ m) M# C% W/ L3 T9 z' a3 N* S0 x" l    而PHPWind比较特殊的是,网站首页支持两种模式,一种是门户模式,一种是论坛模式。有些是用门户模式做默认首页,那么论坛首页会变成/index.php?m=bbs,如果支持伪静态的话会变成/index-htm-m-bbs.html。8 `9 m2 m7 B& B: @. b, W
    现在出现的问题是,不管是否将网站设置为伪静态,那么位置导航中的首页链接都是/index.php?m=bbs,这样就造成会出现两个网址指向同样的内容。也就是不符合URL标准化的要求。9 e% L1 {+ T3 b
    那么怎么修改呢?
9 b6 ^# L% B! ?; N$ O/ b    而我们从模版里找的话,只会找的$msg_guide这个自定义变量的调用,但是搜这个变量的话又找不到在哪里定义的,其实只需要修改下面这两个文件的headguide就可以。
# S7 Y9 V" l+ f    这个需要测试一下,在论坛目录里找到这两个文件:5 g" L) w3 Z# N2 g5 {
    require/fourm.php3 ]- p* u+ c$ b! ~
    lib/forum/fourm.class.php
' w, K$ w. p' y% B$ d    打开这两个文件,搜索function headguide,就会找到类似下面内容(不同版本不一样,这里以8.5版本来举例):
, d  |3 j- A5 d/ K) e6 R    function headguide($guidename, $onmouseover = true) {: _" K# w' |9 V9 u) J6 \( A
    global $db_menu, $db_bbsname, $db_bfn, $imgpath, $db_menu, $db_mode, $db_bbsurl;
2 b7 s# R4 W9 T% N/ W    if ($db_mode == 'bbs' && $db_bfn == 'index.php‘) {- T5 i! T& `' O/ R2 a  b1 u
    $db_bfn_temp = $db_bbsurl . “/index.php?m=bbs”;
1 G! N9 {- c' r    } else {) [4 e7 s1 d- u2 a1 o  J' L
    $db_bfn_temp = $db_bfn;
+ Q4 P/ ^! D& v% s) G7 A* v" b) x    }
+ Q, q# @+ r6 k8 G; m2 h    if ($db_menu && $onmouseover) {' V5 O1 S, Q3 ]  S' U9 k
    $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>”;, k- x4 A( ^9 j$ e5 s
    } else {
; @2 f2 f4 q/ v' ~2 S    $headguide = “<a href=\”$db_bfn\“ title=\”$db_bbsname\“>$db_bbsname</a>”;+ j/ b$ J7 b, W4 Q( s
    }
8 s; w! t! N! @    if (!is_array($guidename)) {
2 c2 E# [1 C0 o( z) c0 ]; k9 d    return $headguide . '<em》</em>' . $guidename;) ?4 ?3 r/ j! |, |
    }
( ?! H, H  \! {6 ~. u0 c    foreach ($guidename as $key => $value) {/ r6 C- W! t/ B6 y' g
    if ($value[1]) {& a& q2 `  `1 v) n! |
    $headguide .= '<em》</em><a href=“‘ . $value[1] . ’”>' . $value[0] . '</a>';
0 l/ u7 z. l% r, c2 t$ `* r    } else {/ f1 ?3 _. `: @3 [/ A; o  I
    $headguide .= '<em》</em>' . $value[0];
7 P% t: E/ `# J    }
8 d0 Y) ?- [" b    }
5 I8 D; Z! r1 Y" C    return $headguide;
+ O1 L- ]( f+ V8 A) {    }
  c9 G. s+ B5 [4 m    因为我想修改的论坛是以门户模式为默认首页的,而论坛的首页伪静态之后变成了/index-htm-m-bbs.html。在我将位置导航修改之前是(括号后为实际链接):网站名称(index.php?m=bbs)>版块名称>帖子名称。. {7 L, _/ c  X* O% U& Z
    将相应的代码修改为:
0 G8 G: m6 X7 |5 p/ `! S$ y2 U0 R    $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)>版块名称>帖子名称。
" W7 I: ]+ k+ y1 Z# q# Y: I1 {    可以测试一下,自己的论坛调用了下面哪个文件,按照上面的方法修改就可以了。% v  e! G- n7 C. o- T7 v+ l: M
    require/fourm.php) @. H. S' a" j) T# H0 J
    lib/forum/fourm.class.php7 ~2 k2 h% }! Z6 S
   本文由北京治疗牛皮癣医院http://www.lzghyy.com/整理首发!
6 M3 S! ?1 i: D; W6 B$ c

暂时无法加载帖子列表

回复

使用道具 举报

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

使用道具 举报

叫什么好呢 发表于 2026-06-08 01:26:49 | 显示全部楼层
完全赞同,我也是这么认为的,英雄所见略同~
回复

使用道具 举报

寒梅子 发表于 2026-10-21 08:53:15 | 显示全部楼层
这个思路很新颖,打开了新世界的大门,谢谢分享
回复

使用道具 举报

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

    本版积分规则

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

    GMT+8, 2026-10-30 22:11 , Processed in 0.048345 second(s), 25 queries , Gzip On.

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

    Powered by Discuz! X3.5

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