织梦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} 这个代码是做了个点击切换分类标签的效果,其他的可以参考。 |