演示链接:查看演示

dedecms用arclist标签设置当前文章高亮

做网站比如一些帮助、说明类的页面可以用栏目去做,也可以用文章来做,考虑用文章是因为文章写起来比较方便,还可以用自定义的字段,比栏目要灵活得多。栏目比较好处理当前栏目高亮的问题,写法如下

{dede:channel typeid='' row='' currentstyle="<li class="on"><a href='~typelink~'>~typename~</a></li>"}

<li><a href="[field:typeurl/]">[field:title/]</li>

{/dede:channel}

注意typelink和typeurl的写法。如果用文章来做的话,就需要修改几个地方,网上有些错误的写法,dedecmsCMS模版网亲自测试过,修正后分享给大家。

 

include/taglib/arclist.lib.php

        找到

//增加对分页内容的处理

        在这段前加入

$currentstyle = $ctag->GetAtt('currentstyle');

       

 在大概135行,找到

$tagid,$pagesize,$isweight

        增加 ,$currentstyle  也就是

$tagid,$pagesize,$isweight,$currentstyle

        

大概在170行,找到

$isweight='N'

        后面增加

,$currentstyle=''

        

在519行,找到

$row['textlink'] = "<a href='".$row['filename']."'>".$row['title']."</a>";

        后面增加

//bydedecmsCMS模板 www.lol9.cn

if($currentstyle && $row['id']==$arcid){

$currentstyle = str_replace('~typelink~', $row['filename'], $currentstyle);

$row['currentstyle'] = str_replace('~typename~', $row['title'], $currentstyle);

}

 

 

模板调用,具体样式请自行修改

01 {dede:arclist currentstyle="<li class='on' ><a href='~typelink~'>~typename~</a></li>"} 02   03 [field:array runphp='yes'] 04   05  if(@me['currentstyle']){ 06   07   @me = @me['currentstyle']; 08   09  }else{ 10   11   @me = "<li><a href='{@me['arcurl']}'>{@me['title']}</a></li>"; 12   13 } 14   15 [/field:array] 16   17 {/dede:arclist}

THE END
喜欢就支持一下吧
点赞0 分享