function node_import_add_form_submit_reload in Node import 6
4 calls to node_import_add_form_submit_reload()
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]);
}