You are here

function path_redirect_admin_redirects_update_submit in Path redirect 6

Process path_redirect_admin_redirects form submissions.

Execute the chosen 'Update option' on the selected redirects.

2 string references to 'path_redirect_admin_redirects_update_submit'
path_redirect_admin_redirects in ./path_redirect.admin.inc
Render a list of redirects for the main admin page.
path_redirect_admin_redirects_update_confirm in ./path_redirect.admin.inc

File

./path_redirect.admin.inc, line 258
Administrative page callbacks for the path_redirect module.

Code

function path_redirect_admin_redirects_update_submit($form, &$form_state) {
  $operations = module_invoke_all('path_redirect_operations');
  $operation = $operations[$form_state['values']['operation']];

  // Filter out unchecked redirects
  $rids = array_filter($form_state['values']['rids']);
  if (!empty($operation['confirm']) && empty($form_state['values']['confirm'])) {

    // We need to rebuild the form to go to a second step. For example, to
    // show the confirmation form for the deletion of redirects.
    $form_state['rebuild'] = TRUE;
  }
  else {
    $function = $operation['callback'];

    // Add in callback arguments if present.
    if (isset($operation['callback arguments'])) {
      $args = array_merge(array(
        $rids,
      ), $operation['callback arguments']);
    }
    else {
      $args = array(
        $rids,
      );
    }
    call_user_func_array($function, $args);
    path_redirect_clear_cache();
    $count = count($form_state['values']['rids']);
    watchdog('path_redirect', '@action @count redirects.', array(
      '@action' => $operation['action_past'],
      '@count' => $count,
    ));
    drupal_set_message(format_plural(count($rids), '@action @count redirect.', '@action @count redirects.', array(
      '@action' => $operation['action_past'],
      '@count' => $count,
    )));

    //$form_state['redirect'] = 'admin/build/path-redirect';
  }
}