温馨提醒
如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢
本文最后更新于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='这里改为你需要的类名'。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论0+