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

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

[复制链接]
博润天下 发表于 2012-07-05 17:47:01 | 显示全部楼层 |阅读模式
    PHPWind论坛程序是PHP常用的论坛程序之一,但是它有个缺点是位置导航(又称面包屑导航)设置的非常不科学。
! S- I1 [2 m+ w& U$ F    一般网站的位置导航都是:首页>栏目页>内容页, i3 l9 }$ F1 N2 a: k2 D8 N
    而PHPWind比较特殊的是,网站首页支持两种模式,一种是门户模式,一种是论坛模式。有些是用门户模式做默认首页,那么论坛首页会变成/index.php?m=bbs,如果支持伪静态的话会变成/index-htm-m-bbs.html。
! G3 ]0 Q+ ?9 ~. w, @    现在出现的问题是,不管是否将网站设置为伪静态,那么位置导航中的首页链接都是/index.php?m=bbs,这样就造成会出现两个网址指向同样的内容。也就是不符合URL标准化的要求。9 r& j$ m3 X" ?4 Y. z
    那么怎么修改呢?
0 f. F3 t$ Y$ H! I+ ^/ R$ ~0 h+ S    而我们从模版里找的话,只会找的$msg_guide这个自定义变量的调用,但是搜这个变量的话又找不到在哪里定义的,其实只需要修改下面这两个文件的headguide就可以。! l( A) `/ L) ?; M2 g
    这个需要测试一下,在论坛目录里找到这两个文件:
8 p. L# i8 x' H2 @    require/fourm.php% }1 Z. M* o3 P
    lib/forum/fourm.class.php
- d4 m* N* v% i: e3 i& W( L    打开这两个文件,搜索function headguide,就会找到类似下面内容(不同版本不一样,这里以8.5版本来举例):
" \8 U4 p9 m' U) P    function headguide($guidename, $onmouseover = true) {
( F& Y4 C  y  @    global $db_menu, $db_bbsname, $db_bfn, $imgpath, $db_menu, $db_mode, $db_bbsurl;
* `9 V# `! o) |3 `* ^* \- k+ g    if ($db_mode == 'bbs' && $db_bfn == 'index.php‘) {
/ m/ Q; z5 [8 c* J. ]9 M, ?$ f    $db_bfn_temp = $db_bbsurl . “/index.php?m=bbs”;3 l3 f' |# Z5 n) F
    } else {
2 H- f/ M9 Q/ x' s& n' [; o$ c    $db_bfn_temp = $db_bfn;: o$ I2 v+ j% n( I# _
    }, V9 f2 x5 D+ e
    if ($db_menu && $onmouseover) {. c2 a9 p# X6 W3 R4 K, G" J
    $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>”;
) U0 J. u& q: u/ n# |4 k9 h" O5 {5 W    } else {/ B" n1 B; j6 D/ S  x
    $headguide = “<a href=\”$db_bfn\“ title=\”$db_bbsname\“>$db_bbsname</a>”;
) H8 n6 z/ Y2 f  s- e  O# G- N  c    }, ?% D. R* q5 X7 e& n/ M. e
    if (!is_array($guidename)) {
5 C1 N! i2 N& P9 k    return $headguide . '<em》</em>' . $guidename;
  v, c5 r  N1 b$ k9 L5 @7 C    }
6 s5 ~6 O) n* R4 s! e# J    foreach ($guidename as $key => $value) {# o  W. b8 e# a; H( Z+ f6 H5 a
    if ($value[1]) {
: e+ s  G$ J* O) U  W( T    $headguide .= '<em》</em><a href=“‘ . $value[1] . ’”>' . $value[0] . '</a>';
+ h7 l& Z7 M3 U' O: u    } else {2 E3 d% r  c" s9 T- L/ E; r2 d& v
    $headguide .= '<em》</em>' . $value[0];3 ?$ U5 Z0 U. `( @
    }
' q  o& Q3 F/ G    }& `* H; J8 r; i- M" |) _; z$ M
    return $headguide;: z" @! d* J; z0 C+ d: [* n* A! `7 y
    }
& [8 _0 P& \  \2 Q+ d" d' C    因为我想修改的论坛是以门户模式为默认首页的,而论坛的首页伪静态之后变成了/index-htm-m-bbs.html。在我将位置导航修改之前是(括号后为实际链接):网站名称(index.php?m=bbs)>版块名称>帖子名称。" F( g5 ]+ e% o5 N* D
    将相应的代码修改为:2 J$ x; C1 }! `4 G0 W8 D
    $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)>版块名称>帖子名称。" F4 {: A4 s: b. e* r: x* k( F
    可以测试一下,自己的论坛调用了下面哪个文件,按照上面的方法修改就可以了。" Y# E/ d9 s4 Y% T  S3 h
    require/fourm.php
7 x, f3 ^* B2 E7 T1 s    lib/forum/fourm.class.php5 @9 [5 k* x$ S. m. `+ b+ C$ G5 w: @
   本文由北京治疗牛皮癣医院http://www.lzghyy.com/整理首发!; ]8 }# `  a3 m# ]. U$ |% r6 [, b8 s

暂时无法加载帖子列表

回复

使用道具 举报

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-31 00:31 , Processed in 0.038197 second(s), 26 queries , Gzip On.

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

    Powered by Discuz! X3.5

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