$fieldinfo) { if (!isset($fields[$type][$fieldinfo['module']])) { $fields[$type][$fieldinfo['module']] = array(); } $fields[$type][$fieldinfo['module']][$fieldname] = $fieldinfo; } } } if (!isset($fields[$type][$module])) { $fields[$type][$module] = array(); } return $fields[$type][$module]; } /** * Creates a unique field/column name. */ function node_import_cck_name($fieldname, $colname) { return 'cck:'. $fieldname .':'. $colname; } /** * Returns an array of default values for the field information array * for CCK fields. */ function node_import_cck_field_defaults($fieldinfo) { return array( 'group' => (count($fieldinfo['columns']) > 1 ? $fieldinfo['widget']['label'] : ''), 'tips' => array( t('Imports into %name CCK field (%type type).', array('%name' => $fieldinfo['field_name'], '%type' => $fieldinfo['type'])), ), 'has_multiple' => $fieldinfo['multiple'], 'module' => $fieldinfo['module'], 'allowed_values' => content_allowed_values($fieldinfo), 'cck:fieldname' => $fieldinfo['field_name'], 'cck:fieldinfo' => $fieldinfo, ); } /** * Implementation of hook_node_import_values_alter(). */ function content_node_import_values_alter(&$values, $type, $defaults, $options, $fields, $preview) { if (($node_type = node_import_type_is_node($type)) !== FALSE) { foreach ($fields as $fieldname => $fieldinfo) { if (isset($fieldinfo['cck:fieldname'])) { $values[$fieldinfo['cck:fieldname']] = array(); $num_values = 0; 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]); } $num_values = max(count($values[$cck_fieldname]), $num_values); } } $i = 0; 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]; } else { $value[$colname] = isset($defaults[$cck_fieldname]) ? $defaults[$cck_fieldname] : NULL; } } $values[$fieldinfo['cck:fieldname']][$i] = $value; $i++; } /* foreach ($fieldinfo['cck:fieldinfo']['columns'] as $colname => $colinfo) { $cck_fieldname = node_import_cck_name($fieldinfo['cck:fieldname'], $colname); unset($values[$cck_fieldname]); } */ } } } }