You are here

function advanced_menu_menu_admin_form_alter in Advanced Menu 7

Same name and namespace in other branches
  1. 6.x menu_admin/advanced_menu_menu_admin.module \advanced_menu_menu_admin_form_alter()

Implementation of hook_form_alter().

File

menu_admin/advanced_menu_menu_admin.module, line 12
Provides advanced menu permissioning.

Code

function advanced_menu_menu_admin_form_alter(&$form, $form_state, $form_id) {
  switch ($form_id) {
    case 'menu_edit_menu':
      if (user_access('administer advanced menu permissions')) {
        $form['submit']['#weight'] = 2;
        $form['roles'] = array(
          '#type' => 'checkboxes',
          '#title' => t('Editors'),
          '#default_value' => _advanced_menu_menu_admin_roles($form['menu_name']['#default_value']),
          '#options' => user_roles(TRUE),
          '#description' => t('Roles that are checked will be able to administer this menu.'),
          '#weight' => 1,
        );
        $form['#submit'][] = 'advanced_menu_menu_admin_form_submit';
      }
      break;
    case 'menu_edit_item':
      $menu = menu_load($form['original_item']['#value']['menu_name']);
      $item = menu_link_load($form['mlid']['#value']);
      if (!$item) {
        $item = array(
          'link_title' => '',
          'mlid' => 0,
          'plid' => 0,
          'menu_name' => $menu['menu_name'],
          'weight' => 0,
          'link_path' => '',
          'options' => array(),
          'module' => 'menu',
          'expanded' => 0,
          'hidden' => 0,
          'has_children' => 0,
        );
      }

      // Generate a list of possible parents (not including this item or descendants).
      $menus = menu_get_menus();
      if (!user_access('administer menu')) {
        $menus = _advanced_menu_menu_admin_menus($menus);
      }
      $options = menu_parent_options($menus, $item);
      $default = $item['menu_name'] . ':' . (isset($item['plid']) ? $item['plid'] : 0);
      if (!isset($options[$default])) {
        $default = 'navigation:0';
      }
      $form['parent'] = array(
        '#type' => 'select',
        '#title' => t('Parent link'),
        '#default_value' => $default,
        '#options' => $options,
        '#description' => t('The maximum depth for a link and all its children is fixed at !maxdepth. Some menu links may not be available as parents if selecting them would exceed this limit.', array(
          '!maxdepth' => MENU_MAX_DEPTH,
        )),
        '#attributes' => array(
          'class' => array(
            'menu-title-select',
          ),
        ),
      );
      $form['submit']['#weight'] = 2;
      $form['#submit'][] = 'advanced_menu_menu_admin_form_submit';
      break;
  }
}