function menu_per_role_menu_link_update in Menu Per Role 7
Implements hook_menu_link_update().
1 call to menu_per_role_menu_link_update()
- menu_per_role_menu_link_alter in ./
menu_per_role.module - Implements hook_menu_link_alter().
File
- ./
menu_per_role.module, line 117 - Allows restricting access to menu items per role.
Code
function menu_per_role_menu_link_update($link) {
if (isset($link['menu_per_role']) && user_access('administer menu_per_role')) {
// Hide but to those roles.
$rids_str = _menu_per_role_serialize_rids($link['menu_per_role']['menu_per_role_roles']);
// Show but to those roles.
$hrids_str = _menu_per_role_serialize_rids($link['menu_per_role']['menu_per_role_hide_from_roles']);
$fields = array(
'rids' => $rids_str,
'hrids' => $hrids_str,
);
$count = db_select('menu_per_role')
->condition('mlid', $link['mlid'])
->countQuery()
->execute()
->fetchField();
if ($count == 0) {
$fields['mlid'] = $link['mlid'];
db_insert('menu_per_role')
->fields($fields)
->execute();
}
else {
db_update('menu_per_role')
->fields($fields)
->condition('mlid', $link['mlid'])
->execute();
}
}
}