DedeCMS栏目判断是否有子栏目,有就显示,无则不显示

正常调用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}

实例效果:

DedeCMS栏目判断是否有子栏目,有就显示,无则不显示

原创文章,作者:管理员,如若转载,请注明出处:https://www.bajiege.com/soft/dedecms/dedecms-columns-determine-whether-subtopic-display-no-is-not-displayed.html

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据