You are here

function node_type_form_validate in Drupal 6

Same name and namespace in other branches
  1. 5 modules/node/content_types.inc \node_type_form_validate()
  2. 7 modules/node/content_types.inc \node_type_form_validate()

Validates the content type submission form generated by node_type_form().

File

modules/node/content_types.inc, line 218
Content type editing UI.

Code

function node_type_form_validate($form, &$form_state) {
  $type = new stdClass();
  $type->type = trim($form_state['values']['type']);
  $type->name = trim($form_state['values']['name']);

  // Work out what the type was before the user submitted this form
  $old_type = trim($form_state['values']['old_type']);
  $types = node_get_types('names');
  if (!$form_state['values']['locked']) {
    if (isset($types[$type->type]) && $type->type != $old_type) {
      form_set_error('type', t('The machine-readable name %type is already taken.', array(
        '%type' => $type->type,
      )));
    }
    if (!preg_match('!^[a-z0-9_]+$!', $type->type)) {
      form_set_error('type', t('The machine-readable name must contain only lowercase letters, numbers, and underscores.'));
    }

    // 'theme' conflicts with theme_node_form().
    // '0' is invalid, since elsewhere we check it using empty().
    if (in_array($type->type, array(
      '0',
      'theme',
    ))) {
      form_set_error('type', t("Invalid machine-readable name. Please enter a name other than %invalid.", array(
        '%invalid' => $type->type,
      )));
    }
  }
  $names = array_flip($types);
  if (isset($names[$type->name]) && $names[$type->name] != $old_type) {
    form_set_error('name', t('The human-readable name %name is already taken.', array(
      '%name' => $type->name,
    )));
  }
}