如何獲取織夢cms當前欄目的頂級欄目名稱

如何獲取織夢cms當前欄目的頂級欄目名稱

如何獲取織夢cms當前欄目的頂級欄目名稱?

在用織夢做一些項目時,時常會碰到需要在當前頁面調用頂級欄目名稱的時候,織夢默認{dede:field name=’typename’ /} 可以獲取當前欄目頁上一級欄目的名稱,而不是當前欄目頂級欄目名稱。

推薦學習:織夢cms

使用時一定要注意是不是需要修改查詢語句表的前綴

下面拓展出一個方法來實現這個效果、:

在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']; ?? } ?? }

在文章頁或者欄目列表頁調用時,在所要調用 名稱的位置加上下面這行代碼即可實現。

{dede:field?name='typeid'?function="GetTopTypename(@me)"?/}

在文章頁中用下面這個方法來調用

{dede:field?name='typeid'?function="GetTopTypename(@me)?/}

===================================

dedecms獲取頂級欄目名稱、二級欄目名稱實現方法

今天做站的時候碰到一個問題,需要在二級、三級,甚至更多級,獲取頂級欄目或者二級欄目名稱。

現在和大家分享下最簡單的實現方法。找到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']; ?? ??}? }

然后在任意列表頁、內容頁需要調用名稱的地方加入:

{dede:field.typeid?fuction="GetToypename(@me)"/}

如果在dede標簽里面,就用下面這句調用:

[field:typeid?fuction="GetToypename(@me)"/]

上面這個方法是調用欄目的二級欄目名稱,如果需要頂級欄目名稱,只要將SQL里面的reid字段改成topid就可以了。另外記得將gsh_arctype前綴改成你數據庫的前綴。

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享