menu_edit_menu

6 menu.admin.inc menu_edit_menu(&$form_state, $type, $menu = array())
7 menu.admin.inc menu_edit_menu($form, &$form_state, $type, $menu = array())
8 menu.admin.inc menu_edit_menu($form, &$form_state, $type, $menu = array())

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

1 string reference to 'menu_edit_menu'

File

modules/menu/menu.admin.inc, line 432
Administrative page callbacks for menu module.

Code

function menu_edit_menu($form, &$form_state, $type, $menu = array()) {
  $system_menus = menu_list_system_menus();
  $menu += array(
    'menu_name' => '', 
    'old_name' => !empty($menu['menu_name']) ? $menu['menu_name'] : '', 
    'title' => '', 
    'description' => '',
  );
  // Allow menu_edit_menu_submit() and other form submit handlers to determine
  // whether the menu already exists.
  $form['#insert'] = empty($menu['old_name']);
  $form['old_name'] = array(
    '#type' => 'value', 
    '#value' => $menu['old_name'],
  );

  $form['title'] = array(
    '#type' => 'textfield', 
    '#title' => t('Title'), 
    '#default_value' => $menu['title'], 
    '#required' => TRUE,
    // The title of a system menu cannot be altered. 
    '#access' => !isset($system_menus[$menu['menu_name']]),
  );

  $form['menu_name'] = array(
    '#type' => 'machine_name', 
    '#title' => t('Menu name'), 
    '#default_value' => $menu['menu_name'], 
    '#maxlength' => MENU_MAX_MENU_NAME_LENGTH_UI, 
    '#description' => t('A unique name to construct the URL for the menu. It must only contain lowercase letters, numbers and hyphens.'), 
    '#machine_name' => array(
      'exists' => 'menu_edit_menu_name_exists', 
      'source' => array('title'), 
      'label' => t('URL path'), 
      'replace_pattern' => '[^a-z0-9-]+', 
      'replace' => '-',
    ),
    // A menu's machine name cannot be changed. 
    '#disabled' => !empty($menu['old_name']) || isset($system_menus[$menu['menu_name']]),
  );

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

  return $form;
}
Login or register to post comments