我想找到一種方式爲我的模塊,安裝後,創建一個錨鏈接。Drupal的鉤子創建模塊菜單
我目前的策略是創建一個自定義菜單,類似於主菜單,輔助菜單等。 在此菜單中,我想要一個或多個由我的模塊定義的鏈接。然後,我希望我的自定義菜單會自動有一個塊,用戶可以放置在任何他們想要的位置。
當我的模塊沒有安裝,我想菜單,它的鏈接被刪除。
任何人都可以請給我一些指針來完成這個?
我想找到一種方式爲我的模塊,安裝後,創建一個錨鏈接。Drupal的鉤子創建模塊菜單
我目前的策略是創建一個自定義菜單,類似於主菜單,輔助菜單等。 在此菜單中,我想要一個或多個由我的模塊定義的鏈接。然後,我希望我的自定義菜單會自動有一個塊,用戶可以放置在任何他們想要的位置。
當我的模塊沒有安裝,我想菜單,它的鏈接被刪除。
任何人都可以請給我一些指針來完成這個?
http://api.drupal.org/api/drupal/modules--system--system.api.php/function/hook_menu/7
/**
* Implement hook_menu()
*/
function <module>_menu() {
$items = array();
$items['admin/<path>'] = array(
'title' => '<Link title>',
'description' => '<Link description>',
'page callback' => '<function from your module>',
'access arguments' => array('access administration pages'),
'type' => MENU_NORMAL_ITEM,
'weight' => 15,
'menu_name' => 'primary-links'
);
return $items;
}
「MENU_NAME」就會把鏈接在相關菜單
更新:要創建菜單首先你必須使用hook_install
或hook_enable
這將在第一次安裝運行的操作,或分別啓用。
/**
* Implement hook_install()
*/
function <module>_install() {
$menu = array(
'menu_name' => 'test-menu',
'title' => 'Test menu',
'description' => 'A test menu'
);
menu_save($menu);
cache_clear_all('*', 'cache_menu', TRUE);
drupal_set_message($message = t('The module was successfully installed. '), $type = 'status');
}
上述代碼將創建一個菜單。
注意:要運行hook_install(),必須先禁用然後在重新啓用之前卸載模塊。每次使用hook_enable()來運行它。
然後,您可以使用上面的hook_menu()
描述以編程方式將項目添加到該菜單。兩個數組中的menu_name
必須明顯匹配。
在閱讀您的評論並發現您需要創建菜單而不是添加到現有菜單中時,建議在hook_install()
調用中使用menu_link_save()而不是menu_link_save()。
請注意,您還需要使用hook_disable()或hook_uninstall()才能刪除菜單鏈接。
@siski,我只是通過我的舊回答來回答未解答的問題,並想知道你是否已經解決了這個問題?如果沒有,讓我知道,這樣我可以進一步提高我的答案/幫助。 –