如何实现在织梦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

如何实现在织梦cms中使用channelartlist标签让当前栏目高亮显示?
   {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}

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1230916.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-10-22 00:14
下一篇 2024-10-22 00:18

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入