温馨提醒

如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢

本文最后更新于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='这里改为你需要的类名'。

历史上的今天
08月
25
    抱歉,历史上的今天作者很懒,什么都没写!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。