在dedecms二级栏目分类,使用channelartlist标签实现当前栏目高亮,估计你没试过!不过开发的时候需要了,也就记下来分享给大家!
使用channel也可以,但是我们需要dede二级栏目下拉的时候就要用到这个了,呵呵,使用还是非常简单的
修改一个channelartlist类就可以了
下面介绍如何使用channelartlist标签实现当前栏目高亮
1.首先找到“include\taglib\channelartlist.lib.php”文件,打开
2.搜索代码 " $pv = new PartView($typeids[$i]['id']); " 大概了92行,看你的版本了
3.在$pv = new PartView($typeids[$i]['id']); 下面增加入以下代码:
1
2
3
4
5
6
7
|
//php脚本开始
if
(
$typeids
[
$i
][
'id'
] ==
$refObj
->TypeLink->TypeInfos[
'id'
]){
$pv
->Fields[
'currentstyle'
] =
' class="m_hover"'
;
//输出当前栏目样式
}
else
{
$pv
->Fields[
'currentstyle'
] =
''
;
}
|
4.到这里基本完成,我们在模板上添加代码就OK,DEDE二级栏目模版代码也分享给大家!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
//html脚本开始
{dede:channelartlist row=6 typeid='top'}
<
li
><
a
href
=
"{dede:field name='typeurl'/}"
class
=
"nav{dede:field name='currentstyle'/}"
><
ins
>{dede:field name='typename'/}</
ins
></
a
>
{dede:field name='id' runphp='yes'}
global $dsql;
$sql = "Select typedir,typename from dede_arctype where reid=".@me." order by sortrank limit 0,5";
$dsql->SetQuery($sql);//将SQL查询语句格式化
$dsql->Execute();//执行SQL操作
$ns = $dsql->GetTotalRow();
if($ns>0){
//通过循环输出执行查询中的结果
$xinfo='<
ul
>';
while($row = $dsql->GetArray()){
$xinfo.='<
li
><
a
href
=
"'.str_replace('{cmspath}','',$row['typedir']).'"
>'.$row['typename'].'</
a
></
li
>';
}
$xinfo.='</
ul
>';
@me=$xinfo;
}else{@me='';}
{/dede:field}
</
li
>
{/dede:channelartlist}
</
ul
>
|
dede channelartlist标签实现当前栏目高亮完成了,如果要下拉,加上CSS和JS 就完成啦!
本文转自 gutaotao1989 51CTO博客,原文链接:http://blog.51cto.com/taoyouth/1765417