POST TIME:2020-03-29 11:29
想給自己的網站添加一個網站導航欄目,大家知道,這需要我們調用各個欄目的菜單,而且是多級菜單??棄裟0搴孟駴]有提供這一標簽,只好動手進行嘗試,經過一些努力,還真得實現了,方法如下:
首先,請大家在includechannelunit.func.php文件底部添加如下代碼:
-----------------------------------------------------
/*樹形欄目補充,獲取二級,san級,四級欄目列表/
function getProductTree($typeid)
{
$linkList = "";
$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 .= " <div class=&;firsttype&;><a href=&;$typelink&;><b>".$row->typename."</b></a></div> ";
$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 .= "<li class=&;secondtype&;><a href=&;$typelink&;>".$row->typename."</a></li> ";
$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 .= "<li class=&;thirdtype&;><a href=&;$typelink&;>".$row->typename."</a></li> ";
$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 .= "<li class=&;fourthtype&;><a href=&;$typelink&;>".$row->typename."</a></li> ";
}
return $linkList;
}
/*樹形欄目補充*/
----------------------------------------------------------------------------
2、在模板里用
{dede:channel function='getProductTree(2)'}{/dede:channel}
調用即可。這里getProductTree(2)中的 2 是產品展示的欄目ID。如果你的是其他的,請作相應修改。
最后,我還要提示大家注意一下:本文中的修改方法,只適用于織夢模板默認的表前綴,如果你安裝的時候修改了,請注意修改。