我有一個節點,我想它的菜單。據我所知,node_load不包括它。顯然,編寫一個查詢來查找基於路徑node/nid
的查詢是微不足道的,但有沒有Drupal的方法來做到這一點?有沒有一種方法(sql除外)來獲取didpal中給定nid的mlid?
5
A
回答
3
Menu Node module公開了一個API來執行此操作。 您可以閱讀代碼中的文檔(Doxygen)。我認爲你需要的功能是由menu_node_get_links($nid, $router = FALSE)
方法提供:
/**
* Get the relevant menu links for a node.
* @param $nid
* The node id.
* @param $router
* Boolean flag indicating whether to attach the menu router item to the $item object.
* If set to TRUE, the router will be set as $item->menu_router.
* @return
* An array of complete menu_link objects or an empy array on failure.
*/
的mlid => menu object
關聯數組返回。你可能只需要第一個,所以可能看起來是這樣的:
$arr = menu_node_get_links(123);
list($mlid) = array_keys($arr);
否則,你可以嘗試在thread in the Drupal Forums建議:
使用node/[nid]
作爲$ path參數:
function _get_mlid($path) {
$mlid = null;
$tree = menu_tree_all_data('primary-links');
foreach($tree as $item) {
if ($item['link']['link_path'] == $path) {
$mlid = $item['link']['mlid'];
break;
}
}
return $mlid;
}
6
如果菜單樹有多個級別的sql似乎是一個更好的選擇。 一個爲Drupal 7樣品給出波紋管,其中路徑是一樣的東西「節點/ X」
function _get_mlid($path, $menu_name) {
$mlid = db_select('menu_links' , 'ml')
->condition('ml.link_path' , $path)
->condition('ml.menu_name',$menu_name)
->fields('ml' , array('mlid'))
->execute()
->fetchField();
return $mlid;
}
+1
輝煌,謝謝。 – 2013-12-05 07:49:25
相關問題
- 1. 有沒有另外一種方法來做重定向頁面?
- 2. 有沒有一種方法來確定是否刪除用戶?
- 3. 有沒有一種方法來獲取@Embedded領域懶惰?
- 4. 有沒有一種方法來確定語法中的歧義?
- 5. 有沒有一種有效的方法來避免SQL中的固定值UNION?
- 6. TStringGrid - 有沒有一種簡單的方法來獲取「當前/選定」行?
- 7. 有沒有一種方法來讀取在java中的Internet Explorer
- 8. 有沒有一種標準的方法來從給定的URL獲取Ruby on Rails中的ActiveRecord項目?
- 9. 有沒有一種有效的方法來確定距離?
- 10. 有沒有一種簡單的方法來獲取URL中的URL
- 11. 有沒有一種簡單的方法來獲取Symfony中的ServerName?
- 12. 有沒有一種專門的方法來獲取python`Enum`中的項目數?
- 13. 有沒有一種簡單的方法來獲得android APK的外部屬性?
- 14. 有沒有另外一種方法來啓動遠程jvm?
- 15. 有沒有一種更有效的方法來獲得註釋的方法?
- 16. 有沒有一種方法返回給定URL的System.Web.UI.Page類?
- 17. 有沒有一種方法來獲得整個'ScrollView'的高度?
- 18. 有沒有一種方法來優化這個SQL Server查詢?
- 19. 有沒有一種方法來定位前一個元素?
- 20. 有沒有一種方法來確定在Java方法中使用的變量?
- 21. 有沒有一種方法來定製Html.EditorFor生成的HTML?
- 22. Apiary:有沒有一種方法來定義參數的選項?
- 23. gSOAP - 有沒有一種方法來指定soap_wsse_add_UsernameTokenDigest的時間?
- 24. 有沒有一種方法來定位的div容器
- 25. 有沒有一種方法來定義鍵值的大小?
- 26. 有沒有一種很好的方法來獲取當前的屬性名稱?
- 27. 有沒有一種方法可以獲得給定$$ hashKey的DOM對象?
- 28. 有沒有一種方法來讀取使用數據流
- 29. 有沒有一種方法來獲取用戶的位置不是IP
- 30. 有沒有一種方法可以使用Smoke來獲取類的註釋?
看起來像會做到這一點,但我認爲SQL是更容易...謝謝,雖然。 – sprugman 2010-05-18 19:03:00
沒問題。確實,SQL可能更容易。 :) – sirhc 2010-05-18 19:08:48