首頁 >CMS教程 >DEDECMS >如何取得織夢cms目前欄目的頂級欄位名稱

如何取得織夢cms目前欄目的頂級欄位名稱

藏色散人
藏色散人原創
2019-12-16 09:55:202003瀏覽

如何取得織夢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前綴改成你資料庫的前綴。

以上是如何取得織夢cms目前欄目的頂級欄位名稱的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn