温馨提醒
如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢
本文最后更新于2023年8月25日,已超过 180天没有更新
在处理企业站的时候,经常发现要调用一二三级栏目栏目,且需要高亮显示,下面给出以下几种情况的具体实现方法如下
一、官方给出的基本调用方法
{dede:channel type="top" currentactive'><a href='~typelink~'>~typename~</a></li>" }
<li><a href='[field:typeurl/]' >[field:typename/]</a></li>
{/dede:channel}
二、判断首页高亮
<li {dede:field name="typeid" runphp="yes"}(@me=="")? @me="class='active'":@me="";{/dede:field}><a href="/">首页</a></li >
三、dede:channel指定typeid子栏目调用currentstyle高亮无效的解决方法
打开include/taglib/channel.lib.php找到
$row['id']==$typeid
改成
$row['id']==$refObj->TypeLink->TypeInfos['id']
四、让channelartlist标签当前栏目高亮,即点击子栏目,父栏目高亮显示
打开文件include\taglib\channelartlist.lib.php
在此行代码下方增加以下代码:
if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id'] || $typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['topid'] ){
$pv->Fields['currentstyle'] = $currentstyle ? $currentstyle : 'active';
} else{
$pv->Fields['currentstyle'] = '';
}
添加这个后才能对二级栏目也起作用,例:判断是否是当前栏目,如果是则显示高亮;判断是否有二级栏目,如果有则显示下拉图标。调用方法:
{dede:channelartlist typeid='1,14,2,3,10,11' currentstyle="active"}
<li class='{dede:field.currentstyle/}'><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}
{dede:field name=typeid runphp="yes"}
global $dsql;
$sql = "SELECT id From `dede_arctype` WHERE reid='@me' And ishidden<>1 order by sortrank asc limit 0, 100 ";
$row = $dsql->GetOne($sql);
if(@me=is_array($row))
@me='<i class="fa fa-angle-down"></i>';
else @me = "";
{/dede:field}
</a>
<ul>
{dede:channel type='son' noself='yes'}
<li><a href="[field:typelink/]">[field:typename/]</a></li>
{/dede:channel}
</ul>
</li>
{/dede:channelartlist}
如果是当前栏目则 li的class属性显示active,否则显示class='' ,也可以修改currentstyle='这里改为你需要的类名'。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系客服QQ3387285338进行处理。


评论0+