Dedecms織夢做站的時(shí)候,需要在當(dāng)前頁面調(diào)用頂級欄目名稱的時(shí)候,織夢默認(rèn){dede:field name='typename' /} 可以獲取當(dāng)前欄目頁上一級欄目的名稱,而不是當(dāng)前欄目頂級欄目名稱。
下面這個(gè)方法可以實(shí)現(xiàn)這個(gè)效果:
在include/common.func.php的最下方加入:
//獲取頂級欄目名
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
{
$row1 = $dsql->GetOne("SELECT typename FROM dede_arctype WHERE id= $row[topid]");
return $row1['typename'];
}
}
在文章頁或者欄目列表頁調(diào)用時(shí),在所要調(diào)用 名稱的位置加上下面這行代碼即可實(shí)現(xiàn)。
{dede:field name='typeid' function="GetTopTypename(@me)" /}
===================================
Dedecms獲取頂級欄目名稱、二級欄目名稱實(shí)現(xiàn)方法:
需要在二級、三級,甚至更多級,獲取頂級欄目或者二級欄目名稱。
現(xiàn)在和大家分享下最簡單的實(shí)現(xiàn)方法,找到include/common.func.php文件,在里面加入下面這段代碼:
//獲取二級欄目名
function GetTopTypename($id)
{
global $dsql;
$row = $dsql->GetOne("SELECT typename,reid FROM gsh_arctype WHERE id= $id");
if ($row['reid'] == '0')
{
return $row['typename'];
}
else
{
$row2 = $dsql->GetOne("SELECT typename FROM gsh_arctype WHERE id= $row[reid]");
return $row2['typename'];
}
}
然后在任意列表頁、內(nèi)容頁需要調(diào)用名稱的地方加入:
{dede:field.typeid fuction="GetToypename(@me)"/}
如果在Dede標(biāo)簽里面,就用下面這句調(diào)用:
[field:typeid fuction="GetToypename(@me)"/]
上面這個(gè)方法是調(diào)用欄目的二級欄目名稱,如果需要頂級欄目名稱,只要將SQL里面的reid字段改成topid就可以了。另外記得將gsh_arctype前綴改成你數(shù)據(jù)庫的前綴。
版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會員發(fā)布,如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除!謝謝!
轉(zhuǎn)載請注明: Dedecms獲取當(dāng)前頁面頂級欄目名稱方法