一级、二级、三级、四级标签嵌套法 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:type […]
一级、二级、三级、四级标签嵌套法
<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 `58pic_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 `58pic_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 `58pic_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 最下面添加
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 `58pic_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()' /}