云主机测评网云主机测评网云主机测评网

云主机测评网
www.yunzhuji.net

如何实现在织梦cms中使用channelartlist标签让当前栏目高亮显示?

织梦CMS中,要让当前栏目高亮显示,可以在channelartlist标签中使用以下代码:,,“html,{dede:field name='typename'/},“,,这段代码会根据当前栏目的typeid和顶级栏目的typeid进行比较,如果相等,则给当前栏目添加高亮样式。

织梦CMS(DedeCMS)是一款广泛应用于企业级网站构建的内容管理系统,它通过强大的标签功能来实现灵活的内容调用和展示,非常适合新手快速上手并使用,在众多标签中,channelartlist 标签是一个功能强大且常用的标签,用于获取当前频道的下级栏目内容列表,本文将详细介绍如何使用channelartlist 标签实现当前栏目高亮,并提供一些常见问题的解答。

实现当前栏目高亮的方法

1、修改文件:要实现当前栏目高亮,首先需要修改channelartlist 标签的核心文件,打开includetaglibchannelartlist.lib.php 文件,找到以下代码行:

   $pv>Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);

在这行代码下方增加以下代码:

   if($typeids[$i]['id'] == $refObj>TypeLink>TypeInfos['id'] || $typeids[$i]['id'] == $refObj>TypeLink>TypeInfos['topid']){
       $pv>Fields['currentstyle'] = $currentstyle ? $currentstyle : 'current';
   } else {
       $pv>Fields['currentstyle'] = '';
   }

2、调用方法:接下来是模板中的调用方法,可以使用如下代码实现当前栏目的高亮显示

   {dede:channelartlist typeid='2' currentstyle='current'}
   <li class='{dede:field.currentstyle/}'><a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a></li>
   {/dede:channelartlist}

如果当前栏目是激活状态,则li 标签的class 属性会显示为current,否则显示为空字符串,也可以根据需要修改currentstyle 参数来自定义类名。

3、与arclist标签结合使用:可以将channelartlist 标签与arclist 标签结合使用,以实现更复杂的显示效果。

   {dede:channelartlist typeid='2' currentstyle='current'}
   <dt ><a class='{dede:field.currentstyle/}' href='{dede:fieldname='typeurl'/}'>{dede:field name='typename'/}</a></dt>
   {dede:arclist titlelen='42' row='10' currentstyle="<dd><a class='current' href='~typelink~'>~typename~</a></dd>"}
   [field:array runphp='yes']
   if(@me['currentstyle']){
       @me = @me['currentstyle'];
   }else{
       @me = "<dd ><a href='{@me['arcurl']}'>{@me['title']}</a></dd>";
   }
   [/field:array]
   {/dede:arclist}
   {/dede:channelartlist}

常见问题解答

问题1:如何修改高亮样式?

答:可以通过修改currentstyle 参数来自定义高亮样式,将currentstyle 设置为active

   {dede:channelartlist typeid='2' currentstyle='active'}
   <li class='{dede:field.currentstyle/}'><a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a></li>
   {/dede:channelartlist}

问题2:如何实现二级栏目的高亮?

答:上述方法同样适用于二级栏目的高亮显示,只需确保在调用channelartlist 标签时正确设置typeid 参数即可,对于包含多个二级栏目的主栏目,可以这样调用:


   {dede:channelartlist typeid='1,14,2,3,10,11' row='6' currentstyle="active"}
   <li class='{dede:field.currentstyle/}'>
       <a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>
       {dede:field name=typeid runphp="yes"}
       global $dsql;
       $sql = "SELECT id Fromdede_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 faangledown"></i>';
       else @me = "";
       {/dede:field}
   </li>
   {/dede:channelartlist}
打赏
版权声明:主机测评不销售、不代购、不提供任何支持,仅分享信息/测评(有时效性),自行辨别,请遵纪守法文明上网。
文章名称:《如何实现在织梦cms中使用channelartlist标签让当前栏目高亮显示?》
文章链接:https://www.yunzhuji.net/internet/255297.html

评论

  • 验证码