找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2045|回复: 0

[分享] dede:channelartlist currentstyle高亮显示

[复制链接]
发表于 2018-8-3 20:11:45 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
我们在用DEDECMS建站时,常常会做二级栏目的功能,既要用到二级栏目,也就要通过DEDE标签再套标签的方式来实现调用,而DEDECMS多层标签调用只支持channelartlist,也就是说我们只能通过dede:channelartlist标签才能调出二级栏目,我们用dede:channelartlist能顺利的将信息调出来,但是如果我们要设置当前所在栏目高亮显示的功能时,currentstyle属性将不起作用,下面我们就来解决channelartlist currentstyle高亮显示的问题。

1、找到“/include/taglib/channelartlist.php”这个文件;

2、找到这行代码:
  1. $pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
复制代码

3、在这行代码后加入代码:

  1. if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id'] || $typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['topid'] )
  2. {  
  3. $pv->Fields['currentstyle'] = $currentstyle ? $currentstyle : ' class="current"';
  4. }   
  5. else{
  6.    $pv->Fields['currentstyle'] = '';
  7. }
复制代码

4、调用方法:

  1. {dede:channelartlist typeid='top'}
  2. <li{dede:field.currentstyle/}>
  3. <a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>
  4. </li>
  5. {/dede:channelartlist}
复制代码

以上4步,完美解决dede:channelartlist标签无法使用currentstyle的问题。

另外需要注意的是<li{dede:field.currentstyle/}>这段代码中,请不要自作聪明的加上class="{dede:field.currentstyle/}",因为最先加的一段代码中就判断了,如果是当然栏目,系统就会自动输出“ class='current'”,照本文原样复制,即可解决这个问题。

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

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

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

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

关闭

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

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

GMT+8, 2024-11-22 22:44 , Processed in 0.045376 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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