栏目列表的基本代码

{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给这个类增加样式即可实现当前栏目高亮功能。

版权声明:本文为李维亮博主的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:http://www.liweiliang.com/514.html

标签: PHPCMS栏目

评论已关闭