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
в обоих массивах должно совпадать явно.
Прочитав ваш комментарий и обнаружив, что вам нужно создать свое меню, а не добавлять к существующему, для меня может быть лучше предложить вместо этого menu_link_save () в вызове hook_install()
.
Обратите внимание, что вам также потребуется использовать hook_disable () или hook_uninstall () , чтобы впоследствии удалить ссылку меню.