You are here

function node_revision_delete_admin_settings_form_submit in Node Revision Delete 7.3

Form submit handler for the Node Revision Delete administration form.

Parameters

array $form: The form element.

array $form_state: The form state.

File

./node_revision_delete.admin.inc, line 293

Code

function node_revision_delete_admin_settings_form_submit(array $form, array &$form_state) {
  variable_set('node_revision_delete_cron', $form_state['values']['node_revision_delete_cron']);
  variable_set('node_revision_delete_time', $form_state['values']['node_revision_delete_time']);

  // Getting the values for node_revision_delete_when_to_delete_time.
  $when_to_delete_time_max_number = $form_state['values']['node_revision_delete_when_to_delete_time_max_number'];
  $node_revision_delete_when_to_delete_time = array(
    'max_number' => $when_to_delete_time_max_number,
    'time' => $form_state['values']['node_revision_delete_when_to_delete_time_time'],
  );

  // Getting the values for node_revision_delete_minimum_age_to_delete_time.
  $minimum_age_to_delete_time_max_number = $form_state['values']['node_revision_delete_minimum_age_to_delete_time_max_number'];
  $node_revision_delete_minimum_age_to_delete_time = array(
    'max_number' => $minimum_age_to_delete_time_max_number,
    'time' => $form_state['values']['node_revision_delete_minimum_age_to_delete_time_time'],
  );

  // We need to update the max_number in the existing content type
  // configuration if the new value is lower than the actual.
  _node_revision_delete_update_time_max_number_config('when_to_delete', $when_to_delete_time_max_number);
  _node_revision_delete_update_time_max_number_config('minimum_age_to_delete', $minimum_age_to_delete_time_max_number);

  // Saving the configuration.
  variable_set('node_revision_delete_when_to_delete_time', $node_revision_delete_when_to_delete_time);
  variable_set('node_revision_delete_minimum_age_to_delete_time', $node_revision_delete_minimum_age_to_delete_time);
  if ($form_state['values']['run_now']) {

    // Set up the batch job.
    $operations = array();

    // Getting the config variable.
    $node_revision_delete_track = variable_get('node_revision_delete_track', array());
    foreach ($node_revision_delete_track as $content_type => $content_type_info) {
      $operations[] = array(
        'node_revision_delete_batch_process',
        array(
          $content_type,
          $content_type_info['minimum_revisions_to_keep'],
          $content_type_info['minimum_age_to_delete'],
          $content_type_info['when_to_delete'],
          $form_state['values']['dry_run'],
        ),
      );
    }
    $batch = array(
      'operations' => $operations,
      'title' => t('Node Revision Delete batch job'),
      'init_message' => t('Starting...'),
      'error_message' => t('An error occurred'),
      'finished' => 'node_revision_delete_batch_finish',
      'file' => drupal_get_path('module', 'node_revision_delete') . '/node_revision_delete.batch.inc',
    );
    batch_set($batch);
  }
  drupal_set_message(t('The configuration options have been saved.'));
}