正常调用DEDE下拉菜单含二级栏目如下:
{dede:channelartlist typeid='top' currentstyle='on'} {dede:field name='typename'/} {dede:channel type='son' noself='yes' currentstyle="~typename~"} [field:typename/] {/dede:channel} {/dede:channelartlist}
判断是否有子栏目:
{dede:field name=typeid runphp="yes"} global $dsql; $sql = "SELECT id From `dede_arctype` WHERE reid='@me' And ishidden<>1 order by sortrank asc limit 0, 100 "; $row = $dsql->GetOne($sql); @me=is_array($row)?'有下级':'没下级'; {/dede:field}
一般上述这种就能解决大部分的问题,但也有特色的导航菜单,就需要判断顶级栏目下有无子栏目,有就显示子栏目,没有就不显示这部分的代码。
实例:
{dede:channelartlist typeid='top'} <li> <a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a> {dede:field name=typeid runphp="yes"} global $dsql; $sql = "SELECT id From `#@__arctype` WHERE reid='@me' And ishidden<>1 order by sortrank asc limit 0, 100 "; $row = $dsql->GetOne($sql); @me=is_array($row)?'<div class="navshow">':''; {/dede:field} {dede:channel type='son' noself='yes' } <a href="[field:typelink/]"><img src="[field:typeimg /]"><h2>[field:typename/]</h2></a> {/dede:channel} {dede:field name=typeid runphp="yes"} global $dsql; $sql = "SELECT id From `#@__arctype` WHERE reid='@me' And ishidden<>1 order by sortrank asc limit 0, 100 "; $row = $dsql->GetOne($sql); @me=is_array($row)?'</div>':''; {/dede:field} </li> {/dede:channelartlist}
实例效果:
原创文章,作者:管理员,如若转载,请注明出处:http://www.bajiege.com/archives/859.html