muban大师 发表于 2015-11-27 15:01:56

织梦channelartlist标签当前栏目高亮

目前织梦模板里currentstyle只支持dede:channel,这种只能调取一层栏目,而我们制作织梦网站模板时,在导航栏里经常要调用到一级和二级栏目, 然后让当前栏目高亮,使用特殊样式,要用到dede:channelartlist,现在的织梦currentstyle在 dede:channelartlist里中无法使用的,需要我们自己添加一些代码才行。
       
        channelartlist标签完美支持currentstyle属性,实现自动加载当前栏目CSS样式,可以用来标识当前栏目位置的CSS,解决方法如下:
       
        1、打开文件include\taglib\channelartlist.lib.php
        找到:
        $pv->Fields['typeurl', = GetOneTypeUrlA($typeids[$i,);
       
        2、在此行代码下方增加以下代码:
       
        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', = '';
                }
       
        添加这个后才能对二级栏目也起作用
       
        4、调用方法:
       
        {dede:channelartlist typeid='2' currentstyle='current'}
       
        {/dede:channelartlist}
       
        如果是当前栏目则 li的class属性显示current,否则显示class='' ,也可以修改currentstyle='这里改为你需要的类名'。
       
        -------------------------------------------------------------------------------------------------------------------------
       
        5、也可以与arclist标签相结合使用,这样调用:
       
        {dede:channelartlist typeid='2' currentstyle='current'}
       
        {dede:arclist titlelen='42' row='10' currentstyle=""}
             [field:array runphp='yes',
                 if(@me['currentstyle',){
                   @me = @me['currentstyle',;
                 }else{
                   @me = "";
                 }
             [/field:array,
        {/dede:arclist}
        {/dede:channelartlist}
页: [1]
查看完整版本: 织梦channelartlist标签当前栏目高亮