menu_edit_menu($form, &$form_state, $type, $menu = array())Menu callback; Build the form that handles the adding/editing of a custom menu.
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"> </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;
}
?>