官方的[!—newsnav–]有什么不足?1、样式死板 输出的样式写死在程序里 要修改只能改官方源码 升级时会痛苦不堪2、有的栏目用的二级域名,比如资讯页面,我想[!—newsnav–]显示的是 资讯首页>xxx>xxx 而不是 首页>资讯>xxx>xxx,用[!—newsnav–]就实现不了所以要改进,如何改进?第一步:在e/class/userfun.php中加入下面的函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//当前位置导航
function
user_linknav(
$classid
){
global
$empire
,
$dbtbpre
,
$navclassid
,
$class_r
,
$public_r
;
//当前栏目
if
(
$classid
==
"selfinfo"
){
if
(
empty
(
$navclassid
)){
$classid
=0;
}
else
{
$classid
=
$navclassid
;
//终极类别则显示同级类别
if
(
$class_r
[
$classid
][islast]&&
$class_r
[
$classid
][bclassid]){
$classid
=
$class_r
[
$classid
][bclassid];
}
if
(
$class_r
[
$classid
][islast]&&
empty
(
$class_r
[
$classid
][bclassid])){
$classid
=0;
}
}
}
$query
=
"select classname,bclassid,classpath from {$dbtbpre}enewsclass where classid="
.
$classid
;
$sql
=
$empire
->query(
$query
);
//echo "<a href = \&;/\&;>首页</a>";
while
(
$r
=
$empire
->fetch(
$sql
)){
findparent(
$r
[bclassid]);
echo
" > <a href =\&;/"
.
$r
[classpath].
"\&;>"
.
$r
[classname].
"</a>"
;
}
}
//当前位置导航,递归查询父栏目
function
findparent(
$classid
){
global
$empire
,
$dbtbpre
;
$query
=
"select classname,bclassid,classpath from {$dbtbpre}enewsclass where classid="
.
$classid
;
$sql
=
$empire
->query(
$query
);
while
(
$r
=
$empire
->fetch(
$sql
)){
findparent(
$r
[bclassid]);
$prefix
=
""
;
if
(
$r
[bclassid]){
$prefix
=
" > "
;}
echo
$prefix
.
"<a href =\&;/"
.
$r
[classpath].
"\&;>"
.
$r
[classname].
"</a>"
;
}
}
第二步:在模板里,以前写[!—newsnav–]的地方,直接替换成<?user_linknav($GLOBALS[navclassid]);?>这里代码直接照搬了前辈的代码,只是有些小改动,较之于前辈的贴子,这篇里的代码改动了1、findparent函数里加了一行判断,如果是顶级栏目了,则前面不加“ > ”,否则再加2、调用该功能时,不使用标签,直接写php代码,省去一步麻烦前辈的贴子blackq:[原创]完美替换“当前位置导航” [!—newsnav–]http://bbs.phome.net/ShowThread/?threadid=80000&forumid=31lcj110:{最新版}完美替换“当前位置导航” [!—newsnav–]http://bbs.phome.net/ShowThread/?threadid=126337&forumid=31
一直觉得人应该去旅行,在年轻的时候,趁着有脾气装潇洒,