You are here

function redirect_list_form_operations_submit in Redirect 7.2

Same name and namespace in other branches
  1. 7 redirect.admin.inc \redirect_list_form_operations_submit()

Process redirect_list_form form submissions.

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

2 string references to 'redirect_list_form_operations_submit'
redirect_list_form in ./redirect.admin.inc
@file Administrative page callbacks for the redirect module.
redirect_list_form_operations_confirm_form in ./redirect.admin.inc

File

./redirect.admin.inc, line 251
Administrative page callbacks for the redirect module.

Code

function redirect_list_form_operations_submit($form, &$form_state) {
  $operations = $form['#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);

    // We display the number of redirects the user selected, regardless of
    // how many redirects actually changed status. Eg. if 1 enabled and 1
    // disabled redirects are checked for being enabled, we'll still display
    // "Enabled 1 redirect."
    $count = count($form_state['values']['rids']);
    watchdog('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,
    )));
  }
}