menu_edit_menu_validate

Versions
mediamosa-21
menu_edit_menu_validate($form, &$form_state)

Validates the human and machine-readable names when adding or editing a menu.

Code

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

<?php
function menu_edit_menu_validate($form, &$form_state) {
  $item = $form_state['values'];
  if (preg_match('/[^a-z0-9-]/', $item['menu_name'])) {
    form_set_error('menu_name', t('The menu name may only consist of lowercase letters, numbers, and hyphens.'));
  }
  if ($form['#insert']) {
    if (strlen($item['menu_name']) > MENU_MAX_MENU_NAME_LENGTH_UI) {
      form_set_error('menu_name', format_plural(MENU_MAX_MENU_NAME_LENGTH_UI, "The menu name can't be longer than 1 character.", "The menu name can't be longer than @count characters."));
    }

    // We will add 'menu-' to the menu name to help avoid name-space conflicts.
    $item['menu_name'] = 'menu-' . $item['menu_name'];
    $custom_exists = db_query_range('SELECT 1 FROM {menu_custom} WHERE menu_name = :menu', 0, 1, array(':menu' => $item['menu_name']))->fetchField();
    $link_exists = db_query_range("SELECT 1 FROM {menu_links} WHERE menu_name = :menu", 0, 1, array(':menu' => $item['menu_name']))->fetchField();
    if ($custom_exists || $link_exists) {
      form_set_error('menu_name', t('The menu already exists.'));
    }
  }
}
?>