搜索

织梦dedecms channelartlist标签如何支持currentstyle的方法

2020-11-30 18:03| 发布者: happyxp| 查看: 1885| 评论: 0

摘要: 织梦dedecms模板网站里面默认只有channel标签支持currentstyle属性,但是今天在调整一个网站的时候channelartlist也需要使用currentstyle属性,怎么办呢?  找了很久,终于有了完美的解决办法:  打开include\tag ...
织梦dedecms模板网站里面默认只有channel标签支持currentstyle属性,但是今天在调整一个网站的时候channelartlist也需要使用currentstyle属性,怎么办呢?
  找了很久,终于有了完美的解决办法:
  打开include\taglib\channelartlist.lib.php
  找到
  $pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
  在此行代码下方增加以下代码:
  if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id'] || $typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['topid']  || $typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['reid']){
  $pv->Fields['currentstyle'] = $currentstyle ? $currentstyle : 'current';
  }
  else{
  $pv->Fields['currentstyle'] = '';
  }
  
其中 $typeids[$i]['id'] ==$refObj->TypeLink->TypeInfos['topid'] 添加这个后才能对二级栏目也起作用
其中 $typeids[$i]['id'] ==$refObj->TypeLink->TypeInfos['reid'] 添加这个后才能对上上级栏目,也就是当前栏目的上级目录判断也起作用
  调用方法:
  {dede:channelartlist typeid='2' currentstyle='current'}
<li class="{dede:field name='currentstyle'/}">
   < a href="{dede:field name='typeurl'/}" title="{dede:field name='typename'/}">{dede:field name='typename'/}< /a> < /li>
  {/dede:channelartlist}
  如果是当前栏目则 li的class属性显示current,否则显示class='' ,也可以修改currentstyle='这里改为你需要的类名'。
  这样channelartlist标签也可以使用currentstyle属性了。

本来想做的是让他支持通过文章名称来定位的,但是发现这个只支持通过目录来定位,只能再想别的办法了。思路是判断时候判断文章的栏目ID,然后再输出。
文章定位问题已经解决,现在可以配合artlist实现文章切换对应着文章标题和分类标题更换颜色。
文章标题部分参照http://www.xp6.org/article-3262-1.html
最终组合代码如下:
{dede:channelartlist  typeid='193' row='6' currentstyle='hover'}
              <dt class="menu_head {dede:field name='currentstyle'/}"><a href="javascript:;">{dede:field name='typename'/}</a></dt>
              <dd class="menu_body" {dede:field name=currentstyle runphp=yes}if(@me['currentstyle']==''){@me = "";}else{@me = "style='display: block;'";}{/dede:field}>
                <ul>
                  {dede:arclist titlelen='100' row='40' orderby='id' orderway='asc' currentstyle='1'}
                  <li> [field:array runphp='yes']
                    if(@me['currentstyle']){
                    @me = "<a href='{@me["arcurl"]}' title='{@me["title"]}' class='hover'>{@me["title"]}</a>";
                    }else{
                    @me = "<a href='{@me["arcurl"]}' title='{@me["title"]}' class=''>{@me["title"]}</a>";
                    }
                    [/field:array]</li>
                  {/dede:arclist}
                </ul>
              </dd>
              {/dede:channelartlist}
这个代码是做了个点击切换分类标签的效果,其他的可以参考。

路过

雷人

握手

鲜花

鸡蛋
本站文章如无特殊说明均为 虾皮社区 原创,可无偿使用和传播,欢迎转载分享!
转载请注明本文地址:
如有文章侵犯了您的权利,请联系本站站长,我们将在第一时间删除相关内容,谢谢!

虾皮社区,成立十年了!

站长自己也搞不懂想做个什么,反正就是一直在努力的做!

Copyright © 2007-2024 xp6.org Powered by Discuz

QQ|Archiver|手机版|小黑屋|虾皮社区 |网站地图
返回顶部