欢迎访问融科网络!我们专注于郑州网站建设郑州网站制作郑州网站设计郑州做网站等相关服务!
营销之道 干货分享
了解企业新动态,分享前沿的营销推广干货,成长路上,我们携手同行

编程代码

DedeCMS让channelartlist支持currentstyle属性

标签: 作者:融科网络 | 点击:
04

Nov
2019

导语
dedecms默认源码的channelartlist是不支持currentstyle属性的。currentstyle属性在导航中应用的比较多,可以实现循环调用栏目后,当前页li标签获得一个class=自定义命名的属性,具体作用就不做
 

dedecms默认源码的channelartlist是不支持currentstyle属性的。currentstyle属性在导航中应用的比较多,可以实现循环调用栏目后,当前页<li>标签获得一个class="自定义命名"的属性,具体作用就不做说明了,需要修改文件。

打开include\taglib\channelartlist.lib.php

找到:

$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]); 在此行代码下方增加以下代码: //让channelarclist支持currentstyle属性 if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id'] || $typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['topid'] ){ $pv->Fields['currentstyle'] = $currentstyle ? $currentstyle : 'nLi on'; } else{ $pv->Fields['currentstyle'] = 'nLi'; } //让channelarclist支持currentstyle属性end

网上找到的一般没有加$typeids[$i]['id'] ==$refObj->TypeLink->TypeInfos['topid']

添加这个后才能对二级栏目也起作用。

调用办法: {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,否则显示class='' ,也可以修改currentstyle='这里改为你需要的类名'。

导航用channelartlist调用子栏目办法 <div class="nav"> <li {dede:field name=typeid runphp="yes"}(@me=="")? @me=" class='navOn'":@me="";{/dede:field}> <a href='{dede:global.cfg_basehost/}'>首页</a> </li> <!-- 首页判断是否添加class --> {dede:channelartlist typeid='top' currentstyle='navOn'} <li class='{dede:field.currentstyle/}'> <a href=http://www.dede58.com/a/dedejq/"{dede:field name='typeurl'/}">{dede:field name='typename'/}</a> <ul> {dede:channel type='son' noself='yes'} <li><a href=http://www.dede58.com/a/dedejq/"[field:typelink/]">[field:typename/]</a></li> {/dede:channel} </ul> </li> {/dede:channelartlist} </div>

循环调用出的栏目<li>会有一个class=“navOn”属性。

配合使用 SuperSlide可以构建美观的下拉菜单功能

具体的办法可以参考官方的使用办法,我使用的时候发现,“手动或后台程序添加titOnClassName类名(默认是'on'),相当于设置参数defaultIndex:2。若同时设置参数returnDefault:true,则鼠标移走后返回当前频道。 ”这个功能失效,更新后才能正常使用,但是一定要按照以上步骤进行修改才能让channelartlist支持currentstyle属性。下面附修改办法:

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 : 'nLi on'; } else{ $pv->Fields['currentstyle'] = 'nLi';

后台调用部分修改为:

<div class="nav"> <li {dede:field name=typeid runphp="yes"}(@me=="")? @me=" class='navOn'":@me="";{/dede:field}> <a href='{dede:global.cfg_basehost/}'>首页</a> </li> <!-- 当前栏目输出<li class='nLi on'>,非当前栏目输出<li class='nLi'> --> {dede:channelartlist typeid='top' currentstyle='nLi on'} <li class='{dede:field.currentstyle/}'> <a href=http://www.dede58.com/a/dedejq/"{dede:field name='typeurl'/}">{dede:field name='typename'/}</a> <ul> {dede:channel type='son' noself='yes'} <li><a href=http://www.dede58.com/a/dedejq/"[field:typelink/]">[field:typename/]</a></li> {/dede:channel} </ul> </li> {/dede:channelartlist} </div> 郑州融科网络专注于企业网站建设、网站制作、高端网站设计,郑州荥阳、上街做网站就找融科网络!
本文章网址:http://www.ppssdd.com/code/14353.html。转载请保留出处,谢谢合作!

全网(营销型+响应式)专业定制

快速搭建高询盘+营销独立站

微信扫一扫 添加微信

推荐分享,免费SEO诊断

扫码加好友,即送价值1880元的SEO优化教程

(网站没排名,轻松让关键词上首页!专注H5企业建站+网站优化推广)

上一篇:织梦DEDECMS5.7 Tags标签网址去掉中文加密网址Encode 采用标准化UR

下一篇:织梦cms为{dede:tag}增加[field:global.autoindex/]标签

  • 网站建设咨询
  • 网站建设案例
建站流程
  • 网站需
    求分析
  • 网站策
    划方案
  • 页面风
    格设计
  • 程序设
    计研发
  • 资料录
    入优化
  • 确认交
    付使用
  • 后续跟
    踪服务
  • 151-3895-5886
  • 品牌网站建设定制
  • 营销型网站建设定制