找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1257|回复: 0

[分享] dedecms调用二级栏目并实现channelartlist支持currentstyle属性

[复制链接]
发表于 2018-7-19 20:37:46 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
dedecms默认模板的channelartlist是不支持currentstyle属性的。currentstyle属性在导航中应用的比较多,可以实现循环调用栏目后,当前页<li>标签获得一个class="自定义命名"的属性,具体作用就不做说明了,需要修改文件。
打开include\taglib\channelartlist.lib.php
找到:
  1. $pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
复制代码

在此行代码下方增加以下代码:
  1. //让channelarclist支持currentstyle属性
  2.         if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id'] || $typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['topid'] ){  
  3.              $pv->Fields['currentstyle'] = $currentstyle ? $currentstyle : 'nLi on';  
  4.          }  
  5.          else{  
  6.              $pv->Fields['currentstyle'] = 'nLi';  
  7.          }  
  8. //让channelarclist支持currentstyle属性end
复制代码

       网上找到的一般没有加$typeids[$i]['id'] ==$refObj->TypeLink->TypeInfos['topid']
       添加这个后才能对二级栏目也起作用。
调用方法:
  1. {dede:channelartlist typeid='2' currentstyle='current'}  
  2. <li class='{dede:field.currentstyle/}'>
  3. <a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a>
  4. </li>  
  5. {/dede:channelartlist}
复制代码

        如果是当前栏目则 li的class属性显示current,否则显示class='' ,也可以修改currentstyle='这里改为你需要的类名'。
导航用channelartlist调用子栏目方法
  1. <div class="nav">
  2. <li {dede:field name=typeid runphp="yes"}(@me=="")? @me=" class='navOn'":@me="";
复制代码

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-28 01:02 , Processed in 0.084076 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表