You are here

function menu_per_role_form_menu_edit_item_alter in Menu Per Role 7

Implements hook_form_FORM_ID_alter().

File

./menu_per_role.module, line 59
Allows restricting access to menu items per role.

Code

function menu_per_role_form_menu_edit_item_alter(&$form, &$form_state, $form_id) {
  if (!user_access('administer menu_per_role')) {
    return;
  }
  $default_value_roles = $form['mlid']['#value'] ? _menu_per_role_get_roles($form['mlid']['#value'], 0) : array();
  $default_value_hide_from_roles = $form['mlid']['#value'] ? _menu_per_role_get_roles($form['mlid']['#value'], 1) : array();
  $form['menu_per_role'] = array(
    '#type' => 'fieldset',
    '#title' => t('Restrict item visibility'),
    '#collapsible' => TRUE,
    '#collapsed' => count($default_value_roles) + count($default_value_hide_from_roles) == 0,
    '#weight' => 5,
    '#description' => t('Check to know whether the user has proper visibility permissions to see this menu item. Note that both checks are always performed.'),
    '#tree' => TRUE,
  );
  $form['menu_per_role']['menu_per_role_roles'] = array(
    '#type' => 'checkboxes',
    '#title' => t('Show menu item only to selected roles'),
    '#options' => user_roles(),
    '#default_value' => $default_value_roles,
    '#description' => t('Check no role to leave the access permission to the default. A user who is not part of at least one of the selected roles will not see this menu item.'),
  );
  $form['menu_per_role']['menu_per_role_hide_from_roles'] = array(
    '#type' => 'checkboxes',
    '#title' => t('Hide menu item from selected roles'),
    '#options' => user_roles(),
    '#default_value' => $default_value_hide_from_roles,
    '#description' => t('Check no role to leave the access permission to the default. A user who is part of any one of these roles will not see this menu item.'),
  );
}