1 locale.admin.inc language_negotiation_configure_url_form_validate($form, &$form_state)

Validation handler for url provider configuration.

Validate that the prefixes and domains are unique, and make sure that the prefix and domain are only blank for the default.

File

core/modules/locale/locale.admin.inc, line 229
Admin page callbacks for the Locale module.

Code

function language_negotiation_configure_url_form_validate($form, &$form_state) {
  // Get the enabled languages only.
  $languages = language_list(TRUE);

  // Count repeated values for uniqueness check.
  $count = array_count_values($form_state['values']['prefix']);
  foreach ($languages as $langcode => $language) {
    $value = $form_state['values']['prefix'][$langcode];

    if ($value === '') {
      if (!$language->default && $form_state['values']['language_negotiation_url_part'] == LANGUAGE_NEGOTIATION_URL_PREFIX) {
        // Validation error if the prefix is blank for a non-default language, and value is for selected negotiation type.
        form_error($form['prefix'][$langcode], t('The prefix may only be left blank for the default language.'));
      }
    }
    elseif (isset($count[$value]) && $count[$value] > 1) {
      // Validation error if there are two languages with the same domain/prefix.
      form_error($form['prefix'][$langcode], t('The prefix for %language, %value, is not unique.', array('%language' => $language->name, '%value' => $value)));
    }
  }

  // Count repeated values for uniqueness check.
  $count = array_count_values($form_state['values']['domain']);
  foreach ($languages as $langcode => $language) {
    $value = $form_state['values']['domain'][$langcode];

    if ($value === '') {
      if (!$language->default && $form_state['values']['language_negotiation_url_part'] == LANGUAGE_NEGOTIATION_URL_DOMAIN) {
        // Validation error if the domain is blank for a non-default language, and value is for selected negotiation type.
        form_error($form['domain'][$langcode], t('The domain may only be left blank for the default language.'));
      }
    }
    elseif (isset($count[$value]) && $count[$value] > 1) {
      // Validation error if there are two languages with the same domain/domain.
      form_error($form['domain'][$langcode], t('The domain for %language, %value, is not unique.', array('%language' => $language->name, '%value' => $value)));
    }
  }
}