DedeCms获取任意栏目N级列表链接树形菜单

2022-08-19 394

$dsql = new DedeSql(false);
$dsql->SetQuery("select ID,typedir,typename,isdefault from dede_arctype where reID = '$typeid' order by sortrank");
$dsql->Execute();
while($row=$dsql->GetObject())
{
$typelink = GetTypeUrl($row->id,MfTypedir($row->typedir),$row->isdefault,$row->defaultname,$row->
ispart,$row->namerule2,$row->moresite,$row->siteurl,$row->sitepath);
$linkList .= "\n\n\n";
$linkList .= getSonClass($row->ID);
}
$dsql->Close();
return $linkList;
}
//获得小类栏目链接
function getSonClass($parentid)
{
$linkList = "";
$dsql = new DedeSql(false);
$dsql->SetQuery("Select ID,typedir,typename,isdefault From dede_arctype where reID='$parentid' order by sortrank");
$dsql->Execute($parentid);
while($row=$dsql->GetObject($parentid))
{
$typelink = GetTypeUrl($row->id,MfTypedir($row->typedir),$row->isdefault,$row->
defaultname,$row->ispart,$row->namerule2,$row->moresite,$row->siteurl,$row->sitepath);
$linkList .= "
  • ".$row->typename."
  • \n";
    $linkList .= getSonClass2($row->ID);
    }
    return $linkList;
    }
    function getSonClass2($parentid)
    {
    $linkList = "";
    $dsql = new DedeSql(false);
    $dsql->SetQuery("Select ID,typedir,typename,isdefault From dede_arctype where reID='$parentid' order by sortrank");
    $dsql->Execute($parentid);
    while($row=$dsql->GetObject($parentid))
    {$typelink = GetTypeUrl($row->id,MfTypedir($row->typedir),$row->isdefault,$row->defaultname,$row->ispart,$row->namerule2,$row->moresite,$row->siteurl,$row->sitepath);
    $linkList .= "
  • ".$row->typename."
  • \n";
    $linkList .= getSonClass3($row->ID);
    }
    return $linkList;
    }
    function getSonClass3($parentid)
    {
    $linkList = "";
    $dsql = new DedeSql(false);
    $dsql->SetQuery("Select ID,typedir,typename,isdefault From dede_arctype where reID='$parentid' order by sortrank");
    $dsql->Execute($parentid);
    while($row=$dsql->GetObject($parentid))
    {
    $typelink = GetTypeUrl($row->id,MfTypedir($row->typedir),$row->isdefault,$row->defaultname,$row->ispart,$row->namerule2,$row->moresite,$row->siteurl,$row->sitepath);
    $linkList .= "
  • ".$row->typename."
  • \n";
    }
    return $linkList;
    }
    /*树形栏目补充*/
    ----------------------------------------------------------------------------
    2、在模板里用
    {dede:channel function='getProductTree(2)'}{/dede:channel} 
    调用即可。这里getProductTree(2)中的 2 是产品展示的栏目ID。如果你的是其他的,请作相应修改。