1 redirect.module redirect_validate(Redirect $redirect, $form, &$form_state)

Validate a redirect.

Parameters

Redirect $redirect: The Redirect object to be validated.

File

core/modules/redirect/redirect.module, line 639

Code

function redirect_validate(Redirect $redirect, $form, &$form_state) {
  // Check that there there are no redirect loops.
  if (url($redirect->source) == url($redirect->redirect)) {
    form_set_error('redirect', t('You are attempting to redirect the page to itself. This will result in an infinite loop.'));
  }

  redirect_hash($redirect);
  if ($existing = redirect_load_by_hash($redirect->hash)) {
    if ($redirect->rid != $existing->rid) {
      form_set_error('source', t('The source path %source is already being redirected. Do you want to <a href="@edit-page">edit the existing redirect</a>?', array('%source' => redirect_url($redirect->source, $redirect->source_options), '@edit-page' => url('admin/config/urls/redirect/edit/' . $existing->rid))));
    }
  }

  // Allow other modules to validate the redirect.
  foreach (module_implements('redirect_validate') as $module) {
    $function = $module . '_redirect_validate';
    $function($redirect, $form, $form_state);
  }
}