POST TIME:2019-05-22 23:57
由于功能需要,想在頁(yè)面中獲得當(dāng)前欄目所屬的頂級(jí)欄目的權(quán)重和二級(jí)欄目的權(quán)重(用于導(dǎo)航條自動(dòng)高亮)
在網(wǎng)上搜到了一些朋友提供的方法,但是可能是版本更新的緣故導(dǎo)致不能用了(當(dāng)時(shí)數(shù)據(jù)庫(kù)中用topid標(biāo)注頂級(jí)欄目id,用reid標(biāo)注上級(jí)欄目id,但是在5.7版本中經(jīng)確認(rèn)兩者已合一表示上級(jí)欄目id)
根據(jù)別人的方法,修改如下,5.7版可用
在include/extend.func.php中添加以下代碼:
//獲取所屬頂級(jí)欄目的名字
function GetTopTypeName($id)
{
global $dsql;
$row = $dsql->GetOne(“SELECT typename,topid FROM dede_arctype WHERE id= $id”);
if ($row['topid'] == ’0′)
{
return $row['typename'];
}
else
{
return GetTopTypeName($row['topid']);
}
}
//獲取所屬頂級(jí)欄目的sortrank
function GetTopTypeSortrank($id)
{
global $dsql;
$row = $dsql->GetOne(“SELECT sortrank,topid FROM dede_arctype WHERE id= $id”);
if ($row['topid'] == ’0′)
{
return $row['sortrank'];
}
else
{
return GetTopTypeSortrank($row['topid']);
}
}
//獲取二級(jí)欄目名
function GetSecondTypeName($id)
{
global $dsql;
$row = $dsql->GetOne(“SELECT typename,topid FROM dede_arctype WHERE id= $id”);
if ($row['topid'] == ’0′) //如果本欄目就是頂級(jí)欄目,即不存在二級(jí)欄目,則返回本級(jí)欄目
{
return $row['typename'];
}
else
{
$row2 = $dsql->GetOne(“SELECT typename,topid FROM dede_arctype WHERE id= $row[topid]“);
if ($row2['topid'] == ’0′) //如果上級(jí)欄目就是頂級(jí)欄目,即本級(jí)欄目就是二級(jí)欄目,則返回本級(jí)欄目
{
return $row['typename'];
}
else
{
return GetSecondTypeName($row['topid']);
}
}
}
//獲取二級(jí)欄目Sortrank
function GetSecondTypeSortrank($id)
{
global $dsql;
$row = $dsql->GetOne(“SELECT sortrank,topid FROM dede_arctype WHERE id= $id”);
if ($row['topid'] == ’0′)
{
return $row['sortrank'];
}
else
{
$row2 = $dsql->GetOne(“SELECT sortrank,topid FROM dede_arctype WHERE id= $row[topid]“);
if ($row2['topid'] == ’0′) //如果上級(jí)欄目就是頂級(jí)欄目,即本級(jí)欄目就是二級(jí)欄目,則返回本級(jí)欄目
{
return $row['sortrank'];
}
else
{
return GetSecondTypeSortrank($row['topid']);
}
}
}
頁(yè)面調(diào)用方法:{dede:field name=’typeid’ runphp=’yes’}@me=GetTopTypeName(@me)-1;