diff --git a/node_import.inc b/node_import.inc index 0b86334..e17eacf 100644 --- a/node_import.inc +++ b/node_import.inc @@ -602,9 +602,9 @@ function node_import_values($type, $data, $map, $defaults, $options, $fields, $p $fieldvalues[] = $value; } - if (!$fieldinfo['allow_empty']) { - $fieldvalues = array_filter($fieldvalues, 'drupal_strlen'); - } +// if (!$fieldinfo['allow_empty']) { +// $fieldvalues = array_filter($fieldvalues, 'drupal_strlen'); +// } if ($fieldinfo['has_hierarchy'] && strlen($hseparator) > 0) { foreach ($fieldvalues as $i => $value) { @@ -674,9 +674,10 @@ function node_import_values($type, $data, $map, $defaults, $options, $fields, $p } // If empty values are not allowed, filter them out. - if (!$fieldinfo['allow_empty']) { - $values[$fieldname] = array_values( array_filter((array)$values[$fieldname], 'drupal_strlen') ); - } +// if (!$fieldinfo['allow_empty']) { + ////////array_values( ) +// $values[$fieldname] = array_filter((array)$values[$fieldname], 'drupal_strlen'); +// } // Handle files specially. The preprocess function only returns // the path - we need to make sure we save the file now into the diff --git a/supported/cck/content.inc b/supported/cck/content.inc index 2312ef4..17b0345 100644 --- a/supported/cck/content.inc +++ b/supported/cck/content.inc @@ -84,29 +84,34 @@ function content_node_import_values_alter(&$values, $type, $defaults, $options, $values[$fieldinfo['cck:fieldname']] = array(); $num_values = 0; + $value_keys = array(); foreach ($fieldinfo['cck:fieldinfo']['columns'] as $colname => $colinfo) { $cck_fieldname = node_import_cck_name($fieldinfo['cck:fieldname'], $colname); if (isset($values[$cck_fieldname])) { if (!is_array($values[$cck_fieldname])) { $values[$cck_fieldname] = array(0 => $values[$cck_fieldname]); + $value_keys[] = 0; } - $num_values = max(count($values[$cck_fieldname]), $num_values); + else { + $value_keys = array_keys($values[$cck_fieldname]); + } + $num_values = max(array( count($values[$cck_fieldname]), $num_values )); } } $i = 0; - while ($i < $num_values) { + while ( $i < $num_values ) { $value = array(); foreach ($fieldinfo['cck:fieldinfo']['columns'] as $colname => $colinfo) { $cck_fieldname = node_import_cck_name($fieldinfo['cck:fieldname'], $colname); - if (isset($values[$cck_fieldname]) && array_key_exists($i, $values[$cck_fieldname])) { - $value[$colname] = $values[$cck_fieldname][$i]; + if (isset($values[$cck_fieldname]) && array_key_exists($value_keys[$i], $values[$cck_fieldname])) { + $value[$colname] = $values[$cck_fieldname][$value_keys[$i]]; } else { $value[$colname] = isset($defaults[$cck_fieldname]) ? $defaults[$cck_fieldname] : NULL; } } - $values[$fieldinfo['cck:fieldname']][$i] = $value; + $values[$fieldinfo['cck:fieldname']][$value_keys[$i]] = $value; $i++; } /*