menu_edit_menu

Versions
mediamosa-21
menu_edit_menu($form, &$form_state, $type, $menu = array())

Menu callback; Build the form that handles the adding/editing of a custom menu.

Code

modules/menu/menu.admin.inc, line 399

<?php
function menu_edit_menu($form, &$form_state, $type, $menu = array()) {
  $system_menus = menu_list_system_menus();
  $menu += array('menu_name' => '', 'old_name' => '', 'title' => '', 'description' => '');
  if (!empty($menu['menu_name'])) {
    $menu['old_name'] = $menu['menu_name'];
  }
  $form['old_name'] = array('#type' => 'value', '#value' => $menu['old_name']);

  // The title of a system menu cannot be altered.
  if (isset($system_menus[$menu['menu_name']])) {
    $form['title'] = array('#type' => 'value', '#value' => $menu['title']);
  }
  else {
    $form['title'] = array(
      '#type' => 'textfield',
      '#title' => t('Title'),
      '#default_value' => $menu['title'],
      '#required' => TRUE,
      '#field_suffix' => ' <small id="edit-title-suffix">&nbsp;</small>',
    );
  }

  // The internal menu name can only be defined during initial menu creation.
  if (!empty($menu['old_name'])) {
    $form['#insert'] = FALSE;
    $form['menu_name'] = array('#type' => 'value', '#value' => $menu['menu_name']);
  }
  else {
    $form['#insert'] = TRUE;
    $js_settings = array(
      'type' => 'setting',
      'data' => array(
        'machineReadableValue' => array(
          'title' => array(
            'text' => t('URL path'),
            'target' => 'menu-name',
            'searchPattern' => '[^a-z0-9]+',
            'replaceToken' => '-',
          ),
        ),
      ),
    );
    $form['menu_name'] = array(
      '#type' => 'textfield',
      '#title' => t('Menu name'),
      '#maxsize' => MENU_MAX_MENU_NAME_LENGTH_UI,
      '#description' => t('This text will be used to construct the URL for the menu. The name must contain only lowercase letters, numbers and hyphens, and must be unique.'),
      '#required' => TRUE,
      '#attached' => array(
        'js' => array(drupal_get_path('module', 'system') . '/system.js', $js_settings),
      ),
    );
  }

  $form['description'] = array(
    '#type' => 'textarea',
    '#title' => t('Description'),
    '#default_value' => $menu['description'],
  );
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save'),
  );
  // Only custom menus may be deleted.
  $form['delete'] = array(
    '#type' => 'submit',
    '#value' => t('Delete'),
    '#access' => $type == 'edit' && !isset($system_menus[$menu['menu_name']]),
    '#submit' => array('menu_custom_delete_submit'),
  );

  return $form;
}
?>