在用織夢(mèng)做一些項(xiàng)目時(shí),時(shí)常會(huì)碰到需要在當(dāng)前頁面調(diào)用頂級(jí)欄目名稱的時(shí)候,織夢(mèng)默認(rèn){dede:field name='typename' /} 可以獲取當(dāng)前欄目頁上一級(jí)欄目的名稱,而不是當(dāng)前欄目頂級(jí)欄目名稱。
使用時(shí)一定要注意是不是需要修改查詢語句表的前綴
下面拓展出一個(gè)方法來實(shí)現(xiàn)這個(gè)效果、:
在include/common.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 { $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)" /}在文章頁中用下面這個(gè)方法來調(diào)用
{dede:field name='typeid' function="GetTopTypename(@me) /}===================================
dedecms獲取頂級(jí)欄目名稱、二級(jí)欄目名稱實(shí)現(xiàn)方法
今天做站的時(shí)候碰到一個(gè)問題,需要在二級(jí)、三級(jí),甚至更多級(jí),獲取頂級(jí)欄目或者二級(jí)欄目名稱。
現(xiàn)在和大家分享下最簡(jiǎn)單的實(shí)現(xiàn)方法。找到include/common.func.php文件,在里面加入下面這段代碼:
//獲取二級(jí)欄目名 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)用欄目的二級(jí)欄目名稱,如果需要頂級(jí)欄目名稱,只要將SQL里面的reid字段改成topid就可以了。另外記得將gsh_arctype前綴改成你數(shù)據(jù)庫的前綴。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。
|
新聞熱點(diǎn)
疑難解答
圖片精選