This is for hook_update_N function
If we have a default menu, use below code in install file.
/**
* Implements hook_update_N to create menu reports.
*/
function mymodule_update_7120() {
$menus = array(
'menu_name' => 'my_parent_menu',
'title' => 'My parent menu title',
'description' => 'My parent menu description',
);
$links = array(
'link_title' => 'My menu link title',
'link_path' => 'custom_path_for_menu_link',
'menu_name' => 'my_parent_menu',
'weight' => 0,
'expanded' => 0,
);
// Save menu group into menu_custom table
// Look the table first if the data does exist
$exists = db_query("SELECT title FROM {menu_custom} WHERE menu_name=:menu_name", array(':menu_name' => $menus['menu_name']))->fetchField();
// Save the record if the data does not exist
if (!$exists) {
menu_save($menu);
}
// Look the table first if the data does exist
$exists_link = db_query("SELECT mlid from {menu_links} WHERE link_title=:link_title AND link_path=:link_path", array(':link_title' => $links['link_title'], ':link_path' => $links['link_path']))->fetchField();
// Save the record if the data does not exist
if (!$exists_link) {
menu_link_save($links);
menu_item_visibility_menu_link_insert($links_menu);
}
}
If you are using a menu_visibilty module to assign menu items to particular role then.
Use below code of the above code under menu_link_save ($links):
$mlid = menu_link_save($links);
$links_menu = array (
'mlid' => $mlid,
'roles' => array ('8','11'),
);
Here 8,11 are role_id's.
If we have a default menu, use below code in install file.
/**
* Implements hook_update_N to create menu reports.
*/
function mymodule_update_7120() {
$menus = array(
'menu_name' => 'my_parent_menu',
'title' => 'My parent menu title',
'description' => 'My parent menu description',
);
$links = array(
'link_title' => 'My menu link title',
'link_path' => 'custom_path_for_menu_link',
'menu_name' => 'my_parent_menu',
'weight' => 0,
'expanded' => 0,
);
// Save menu group into menu_custom table
// Look the table first if the data does exist
$exists = db_query("SELECT title FROM {menu_custom} WHERE menu_name=:menu_name", array(':menu_name' => $menus['menu_name']))->fetchField();
// Save the record if the data does not exist
if (!$exists) {
menu_save($menu);
}
// Look the table first if the data does exist
$exists_link = db_query("SELECT mlid from {menu_links} WHERE link_title=:link_title AND link_path=:link_path", array(':link_title' => $links['link_title'], ':link_path' => $links['link_path']))->fetchField();
// Save the record if the data does not exist
if (!$exists_link) {
menu_link_save($links);
menu_item_visibility_menu_link_insert($links_menu);
}
}
If you are using a menu_visibilty module to assign menu items to particular role then.
Use below code of the above code under menu_link_save ($links):
$mlid = menu_link_save($links);
$links_menu = array (
'mlid' => $mlid,
'roles' => array ('8','11'),
);
Here 8,11 are role_id's.
Comments
Post a Comment