You are here

function node_import_add_form_submit_reload in Node import 6

4 calls to node_import_add_form_submit_reload()
node_import_add_form_submit_back in ./node_import.admin.inc
node_import_add_form_submit_next in ./node_import.admin.inc
node_import_add_form_submit_reset in ./node_import.admin.inc
node_import_add_form_submit_upload_file in ./node_import.admin.inc
1 string reference to 'node_import_add_form_submit_reload'
node_import_add_form in ./node_import.admin.inc
Creates a new import task by letting the user fill in a wizard.

File

./node_import.admin.inc, line 643

Code

function node_import_add_form_submit_reload($form, &$form_state) {
  $page = $form_state['storage']['page'];
  $form_state['storage'] = array_merge((array) $form_state['storage'], (array) $form_state['values']);
  $form_state['rebuild'] = TRUE;

  // ------------------------------------------------------------
  if ($page == 'file_options') {

    // Auto detect file format if not set.
    $files = node_import_list_files();
    $file = $files[$form_state['storage']['fid']];
    if (!isset($form_state['storage']['file_options'])) {
      $form_state['storage']['file_options'] = node_import_autodetect($file->filepath);
      drupal_set_message(t('The file options have been autodetected. If this is incorrect, fill in the correct values below.'), 'warning');
    }
    if (!isset($form_state['storage']['has_headers'])) {
      $form_state['storage']['has_headers'] = 1;
    }

    // Read some sample data with current settings.
    $samples = array();
    $i = variable_get('node_import:number_of_samples', 5);
    $num_cols = 0;
    $file_offset = 0;
    $data = array();
    while ($i > 0 && is_array($data)) {
      $i--;
      list($file_offset, $data) = node_import_read_from_file($file->filepath, $file_offset, $form_state['storage']['file_options']);
      if (is_array($data)) {
        $samples[] = $data;
        $num_cols = max($num_cols, count($data));
      }
    }
    if (!$form_state['storage']['has_headers']) {
      $header = array();
      while ($num_cols > 0) {
        $header[] = t('Column @number', array(
          '@number' => $num_cols,
        ));
        $num_cols--;
      }
      $header = array_reverse($header);
      array_unshift($samples, $header);
    }
    $form_state['storage']['samples'] = $samples;
    $form_state['storage']['headers'] = $samples[0];

    //TODO: what happens if no data?
  }

  // ------------------------------------------------------------
  if ($page == 'map') {

    // Auto detect mapping if not set.
    if (!isset($form_state['storage']['map']) && isset($form_state['storage']['headers'])) {
      $form_state['storage']['map'] = node_import_automap($form_state['storage']['type'], $form_state['storage']['headers']);
    }
  }

  // ------------------------------------------------------------
  if ($page == 'preview') {
    $files = node_import_list_files();
    $file = $files[$form_state['storage']['fid']];
    if (!isset($form_state['storage']['preview_count'])) {
      $form_state['storage']['preview_count'] = variable_get('node_import:preview_count', 5);
    }
    $previews = array();
    $preview_count = $form_state['storage']['preview_count'];
    $has_headers = $form_state['storage']['has_headers'];
    $file_offset = 0;
    $data = array();
    if ($has_headers) {
      list($file_offset, $data) = node_import_read_from_file($file->filepath, $file_offset, $form_state['storage']['file_options']);
    }
    global $node_import_can_continue;
    $node_import_can_continue = TRUE;
    $form_state['storage']['defaults'] = isset($form_state['storage']['defaults']) ? $form_state['storage']['defaults'] : array();
    $form_state['storage']['options'] = isset($form_state['storage']['options']) ? $form_state['storage']['options'] : array();
    while ($preview_count > 0 && is_array($data) && $node_import_can_continue) {
      $preview_count--;
      list($file_offset, $data) = node_import_read_from_file($file->filepath, $file_offset, $form_state['storage']['file_options']);
      if (is_array($data)) {
        $previews[] = node_import_create($form_state['storage']['type'], $data, $form_state['storage']['map'], $form_state['storage']['defaults'], $form_state['storage']['options'], TRUE);
      }
    }
    if (!$node_import_can_continue) {
      $previews[] = t('It is impossible to show more previews as a new object has been created that can be referenced by other rows.');
    }
    $form_state['storage']['previews'] = $previews;
  }
  unset($form_state['values'][$page]);
}