dedecms织梦调用所有栏目一、二、三级和无限级输出

一级、二级、三级、四级标签嵌套法

<ul>
{dede:channelartlist row=7 typeid=top}
<!-- 顶级 -->
<li class="top">
<a href="{dede:field.typeurl/}" >{dede:field name='typename'/}</a>
<ul class="sub">
{dede:channel type=son noself=yes}
<!-- 二级 -->
<li>
<a href="[field:typeurl/]"  title="[field:typename/]">[field:typename/]</a>
<ul>
<!-- 三级 -->
[field:id runphp=yes]
global $dsql;
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `dede_arctype` WHERE reid=@me And ishidden<>1 order by sortrank asc limit 0,10";
$dsql->SetQuery($sql);
$dsql->Execute('t');
$result = '';
while($row = $dsql->GetArray('t'))
{
$typename = $row['typename'];
$typeurl = GetOneTypeUrlA($row);
$result .= "<li><a href='{$typeurl}'>{$typename}</a></li>";
}
@me = $result;
[/field:id]
</ul>
</li>
{/dede:channel}
</ul>
</li>    
{/dede:channelartlist}
</ul>

上面的是输出到三级栏目,如果需要四级栏目可以这样修改三级四级

<!-- 三级/四级 -->
[field:id runphp=yes]
global $dsql;
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `dede_arctype` WHERE reid=@me And ishidden<>1 order by sortrank asc limit 0,10";
$dsql->SetQuery($sql);
$dsql->Execute('t');
$result = '';
while($row = $dsql->GetArray('t'))
{
    $row['typeurl'] = GetOneTypeUrlA($row);
$result .= "<a href='{$row[typeurl]}'>{$row[typename]}</a>";
//四级
$nsql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `dede_arctype` WHERE reid=$row[id] And ishidden<>1 order by sortrank asc limit 0,10";
$dsql->SetQuery($nsql);
$dsql->Execute('n');
while($nrow = $dsql->GetArray('n'))
{
$nrow['typeurl'] = GetOneTypeUrlA($nrow);
$result .= "<a href='{$nrow[typeurl]}'>{$nrow[typename]}</a>";
}
}
@me = $result;
[/field:id]

无限级栏目无限分类自定义函数递归法
在 include/extend.func.php 最下面添加

/**
* 取出所有分类
* @param     int   $channel  频道ID
* @return    string
* 调用{dede:global.getalltype function='getalltype()'/}
*/
 
function getalltype($channel=0,$line=10)
{
$line = empty($line) ? 10 : $line;
global $dsql,$result;
 
$dsql->SetQuery("SELECT id,typename,typenamedir,typelitpic,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
            FROM `dede_arctype` WHERE reid='$channel' And ishidden<>1 order by sortrank asc limit 0, $line ");
$dsql->Execute($channel);
if($dsql->GetTotalRow($channel)>0)
{
$result .= "<ul>\r\n"; 
while($row = $dsql->GetArray($channel))
{
$id = $row['id'];
$typename = $row['typename'];
$typelink = GetOneTypeUrlA($row);
 
$result .= " <li>\r\n";
$result .= " <a href='{$typelink}' target='_blank'>{$typename}</a>\r\n";
getalltype($id,$line);
$result .= " </li>\r\n";
}
        $result .= "</ul>\r\n";
}
return $result;
}

前台模板调用标签

{dede:global.getalltype function='getalltype()'/}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值