在 制作DEDE 企业模板的时候经常会碰到导航要带 下拉菜单功能的!要使用下拉菜单就必须用到channelartlist 标签,那要怎么才能让channelartlist标签当前 栏目高亮呢?
熟悉dede的朋友都知道channel标签的高亮功能dede自带的。
演示代码:
{dede:channel type='top' row='10' currentstyle="<li class='hover'><a href='~typelink~' ~rel~><span>~typename~</span></a></li>"}
<li><a href='[field:typeurl/]' [field:rel/]><span>[field:typename/]</span></a></li>
|
说明:当前栏目高亮的样式是:class='hover'
下面我就跟大家分享下channelartlist标签 支持当前栏目高亮 方法:
打开include/taglib/channelartlist.lib.php
找到
$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
|
在此行代码下方增加以下代码:
// 让channelartlist支持栏目高亮 Added By dede58 2011/1/19
if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id']){
$pv->Fields['currentstyle'] = ' class="hover"';
}
else{
$pv->Fields['currentstyle'] = '';
}
|
然后在模板文件中 调用{dede:field name='currentstyle'/}即可,此字段输出的 内容就是上面$pv->Fields['currentstyle'] = ' class="hover'"';中的 class="hover'"。
举个栗子,本站的下拉 导航菜单就是这样实现的:
<div class="nav">
<div class="wrap">
<ul id="menu">
<li><a href='{dede:global.cfg_cmsurl/}/'>首 页</a></li>
{dede:channelartlist typeid='top' row='10' currentstyle="hover"}
<li {dede:field name='currentstyle'/}><a href='{dede:field name='typeurl'/}' [field:rel/]>{dede:field name='typename'/}</a>
<ul>
{dede:channel type='son' noself='yes'}
<li><a href='[field:typeurl/]' title="[field:typename/]" [field:id runphp='yes'] if(@me=='48'){ @me="target='_blank'";} else{@me="";}[/field:id]>[field:typename/]</a></li>
{/dede:channel}
</ul>
</li>
{/dede:channelartlist}
</ul>
</div>
</div>
|
效果如图:
(责任编辑:admin) |