导航首页 » 网站优化

dedecms列表页内容页栏目高亮和当前栏目调用二三级栏目

2023/03/11 12:26    魔司收录网    已浏览154次

在处理企业站的时候,经常发现要调用二三级栏目栏目,且需要高亮显示,具体实现方法如下。
1、打开 \include\taglib\channelartlist.lib.php 找到

1 $tpsql = " reid='$typeid' AND ispart<>2 AND ishidden<>1 ";
改成
1 if($type=='son')
2 {
3     $typeid = ( !empty($refObj->TypeLink->TypeInfos['id']) ?  GetTopid($refObj->TypeLink->TypeInfos['id']) : 0 );
4     $tpsql = " reid='$typeid' AND ishidden<>1 ";
5 }
6 else
7 {
8     $tpsql = " reid='$typeid' AND ispart<>2 AND ishidden<>1 ";
9 }
2、打开 \include\taglib\channel.lib.php 找到
1 if($type=='son' && $reid!=0 && $totalRow==0
改成
1 if($type=='son' && $reid!=0 && $totalRow==0 && $noself=='')

3、后台-系统-其它选项 模板引擎禁用标签 去掉php
调用代码如下

01 <ul>
02 {dede:php}
03 $GLOBALS['thisid'] = intval($refObj->Fields['typeid']);
04 $GLOBALS['reid'] = intval($refObj->Fields['reid']);
05 $GLOBALS['topid'] = intval($refObj->Fields['topid']);
06 {/dede:php}
07 {dede:channelartlist type=son}
08     <li{dede:field.typeid runphp=yes}(@me==$GLOBALS['thisid']||@me==$GLOBALS['reid']||@me==$GLOBALS['topid'])? @me=' class="current"':@me='';{/dede:field.typeid}><a href='{dede:field.typeurl/}' >{dede:field.typename/}</a></li>
09     <ul>
10     {dede:channel type=son noself=yes}
11     <li[field:id runphp=yes](@me==$GLOBALS['thisid'])? @me=' class="current2"':@me='';[/field:id]><a href='[field:typelink /]' title='[field:typename/]'>[field:typename/]</a></li>
12     {/dede:channel}
13     </ul>
14 {/dede:channelartlist}
15 </ul>
至此,全部完成。