2010-04-24 29 views
0

我有一個包含重要的「創建」日期字段的內容類型。我有 菜單鏈接(在主鏈接),這是鏈接到頁面,顯示我的內容類型的所有節點列表 。 (http://example.com/mycontenttype) 我想在每年顯示 節點的內容類型 (http://example.com/mycontenttype/2010)時有菜單鏈接(在主鏈接中可見)。並且我想添加這些菜單 鏈接從mymodule_nodeapi函數,當節點正在創建和 只有它有一個「創建」日期的新年。 我知道我可以在mymodule_menu函數中創建路徑,但它不會創建可見的菜單項。 (也許我可以以某種方式設置 parent_link_id還是其他什麼東西做的?)如何從php代碼(drupal)中添加可見的菜單項

回答

0

,如果你設置它的「類型」,以MENU_NORMAL_ITEM您可以創建hook_menu()可見的菜單項。此外,可以通過定義包含父項目路徑的路徑來嵌套這些菜單項。例如,'mycontenttype/2010'將是'mycontenttype'的子菜單項(我相信你也可以使用Drupal的菜單管理表單手動設置父/子關係,也可以設置項目應該添加到的菜單「菜單項」的值自動添加到主鏈接而不是導航

至於創建一個新的菜單項,每當一個節點創建一個新的一年,你將不得不玩耍一下。我認爲可以很容易地確定這種類型的節點有哪些獨特的年份(使用視圖或手動查詢數據庫)。添加新菜單項時更新菜單表,可以撥打menu_rebuild()

我認爲將它們連接在一起的方法是編寫你的hook_菜單功能查詢數據庫以查找唯一創建的日期年份併爲每年創建一個菜單項。在你的hook_nodeapi中,檢查創建的年份是否是新的(必須有方法來優化這個,所以每次創建節點時都不會調用它,但我會把它留給你)。如果是新年,則清除菜單表(menu_rebuild)以重新創建菜單項並在新的一年中添加一個菜單項。

相關問題