1 path.admin.inc path_admin_form_validate($form, &$form_state)

Form validation handler for path_admin_form().

See also

path_admin_form_submit()

path_admin_form_delete_submit()

File

core/modules/path/path.admin.inc, line 244
Admin page callbacks for the Path module.

Code

function path_admin_form_validate($form, &$form_state) {
  $source = &$form_state['values']['source'];
  $source = backdrop_get_normal_path($source);
  $alias = $form_state['values']['alias'];
  $pid = isset($form_state['values']['pid']) ? $form_state['values']['pid'] : 0;
  // Language is only set if language.module is enabled, otherwise save for all
  // languages.
  $langcode = isset($form_state['values']['langcode']) ? $form_state['values']['langcode'] : LANGUAGE_NONE;

  $query = db_select('url_alias', 'ua')
    ->fields('ua', array('langcode'))
    ->condition('pid', $pid, '<>')
    ->condition('alias', $alias);
  if ($langcode != LANGUAGE_NONE) {
    $query->condition('langcode', array($langcode, LANGUAGE_NONE), 'IN');
  }
  $existing = $query->execute()->fetchCol();

  if (count($existing)) {
    form_set_error('alias', t('The alias %alias conflicts with existing alias(es) for %languages.', array(
      '%alias' => $alias,
      '%languages' => _path_get_language_names($existing),
    )));
  }
  if (!backdrop_valid_path($source)) {
    form_set_error('source', t('The path <code>@link_path</code> is either invalid or you do not have access to it.', array(
      '@link_path' => $source,
    )));
  }
}