You are here

function remove_duplicates_build_confirm_settings_form in Remove Duplicates 7

Form constructor for the module settings confirmation page (Step 2/2).

See also

remove_duplicates_confirm_settings_form_submit()

1 call to remove_duplicates_build_confirm_settings_form()
remove_duplicates_settings_form in ./remove_duplicates.module
Form constructor for the module.

File

./remove_duplicates.module, line 218
Remove duplicate nodes according to node fields or Custom fields.

Code

function remove_duplicates_build_confirm_settings_form($form, &$form_state) {
  if (isset($form_state['values']['remove_duplicates_node_types'])) {

    // Set node type hidden field.
    $node_type_machine_name = $form_state['values']['remove_duplicates_node_types'];
    $form['remove_duplicates_node_types'] = array(
      '#type' => 'hidden',
      '#value' => $node_type_machine_name,
    );
    if (isset($form_state['values'][$node_type_machine_name . '_node_fields'])) {
      $form[$node_type_machine_name . '_node_fields'] = array(
        '#type' => 'hidden',
        '#value' => $form_state['values'][$node_type_machine_name . '_node_fields'],
      );
      $node_field_machine_name = $form_state['values'][$node_type_machine_name . '_node_fields'];
      $prioritize_published_nodes = $form_state['values']['remove_duplicates_prioritize_published'];
      $case_sensitive = $form_state['values']['remove_duplicates_case_sensitive'];

      // Display found duplicates.
      switch ($form_state['values']['remove_duplicates_select_results_layout']) {
        case 1:
          $output = _remove_duplicates_get_table_output($node_type_machine_name, $node_field_machine_name, $prioritize_published_nodes, $case_sensitive);
          break;
        case 2:
          $output = _remove_duplicates_get_tableselect_output($node_type_machine_name, $node_field_machine_name, $prioritize_published_nodes, $case_sensitive);
          break;
        default:
          $output = _remove_duplicates_get_list_output($node_type_machine_name, $node_field_machine_name, $prioritize_published_nodes, $case_sensitive);
      }

      // The field name is not very explicit but short to insure
      // that the post size won't be too big even with a large
      // number of duplicates selected. Previously named :
      // remove_duplicates_duplicates_to_remove .
      $form['r'] = $output['#element'];

      // End Of Display.
      if (empty($output['#proceed'])) {
        $remove_duplicates_message = t('Everything went fine. No duplicates were found.');
        drupal_set_message($remove_duplicates_message);
        $form_state['storage']['confirm'] = FALSE;
      }
      if (isset($form_state['values']['remove_duplicates_prioritize_published'])) {
        $form['remove_duplicates_prioritize_published'] = array(
          '#type' => 'hidden',
          '#value' => $form_state['values']['remove_duplicates_prioritize_published'],
        );
      }
      else {
        $remove_duplicates_message = t('Priority not set. No duplicates were deleted.');
        drupal_set_message($remove_duplicates_message, 'error');
        $form_state['storage']['confirm'] = FALSE;
      }
      if (isset($form_state['values']['remove_duplicates_case_sensitive'])) {
        $form['remove_duplicates_case_sensitive'] = array(
          '#type' => 'hidden',
          '#value' => $form_state['values']['remove_duplicates_case_sensitive'],
        );
      }
      else {
        $remove_duplicates_message = t('Case sensitivity not set. No duplicates were deleted.');
        drupal_set_message($remove_duplicates_message, 'error');
        $form_state['storage']['confirm'] = FALSE;
      }
    }
    else {
      $remove_duplicates_message = t('Node field not set. No duplicates were deleted.');
      drupal_set_message($remove_duplicates_message, 'error');
      $form_state['storage']['confirm'] = FALSE;
    }
  }
  else {
    $remove_duplicates_message = t('Node type not set. No duplicates were deleted.');
    drupal_set_message($remove_duplicates_message, 'error');
    $form_state['storage']['confirm'] = FALSE;
  }
  if (!empty($form_state['storage']['confirm'])) {
    $form = confirm_form($form, t('Are you sure you want to remove duplicates ?'), 'admin/config/content/remove_duplicates', t('Found duplicates are going to be permanently removed.'), t('Remove Duplicates'), t('Cancel'));
  }
  else {
    $form['actions']['cancel'] = array(
      '#type' => 'item',
      '#markup' => l(t('Cancel'), 'admin/config/content/remove_duplicates'),
    );
  }
  return $form;
}