栏目列表的基本代码
{pc:content action="category" catid="0" num="25" siteid="$siteid" order="listorder ASC"} {loop $data $r} <a href="{$r[url]}">{$r[catname]}</a> {/loop} {/pc}
调用哪一级别的栏目列表,主要取决于参数catid的值。
一级栏目列表 catid="0" 同级栏目列表 catid="$parentid"
比较复杂的情况
如果我们的栏目有很多级,希望取到最小栏目的父栏目列表该怎么办?
<?php $school=explode(',', $CATEGORYS[$catid]['arrchildid']);$school=end($school);$school=$CATEGORYS[$school][parentid];?>
这串代码的意思是,取出当前栏目的所有子栏目ID,观察下数据库会发现,位于最右边的则是当前栏目的最小子栏目ID,所以取出最后一个栏目的ID,最后就用$CATEGORYS得出最小栏目ID的父栏目ID。
最后,我们只需要用下面代码即可调用出最小栏目的父栏目列表
{pc:content action="category" catid="$school" num="10" siteid="$siteid" order="listorder ASC"} {loop $data $r} <a href="{$r[url]}">{$r[catname]}</a> {/loop} {/pc}
原理跟基础代码相同,把catid的值变成了上面定义的$school
扩展
如果需要当前栏目高亮,则只需要用if语句判断一下即可
<li{if $r[catid]==$catid} class="current"{/if}>
在循环内的li中加入if判断,如果是当前栏目,则增加current类,然后通过CSS给这个类增加样式即可实现当前栏目高亮功能。