$fieldinfo) { foreach ($fieldinfo['columns'] as $colname => $colinfo) { $cck_fieldname = node_import_cck_name($fieldname, $colname); $fields[$cck_fieldname] = node_import_cck_field_defaults($fieldinfo); switch ($colname) { case 'uid': $fields[$cck_fieldname]['title'] = $fieldinfo['widget']['label']; $fields[$cck_fieldname]['input_format'] = 'user_reference'; $fields[$cck_fieldname]['output_format'] = ($fieldinfo['widget']['type'] == 'userreference_autocomplete' ? 'name' : 'uid'); $fields[$cck_fieldname]['map_required'] = $fieldinfo['required']; break; default: $fields[$cck_fieldname]['title'] = t('Unsupported: ') . $fieldinfo['widget']['label'] .' - '. $colname; break; } } } return $fields; } /** * Implementation of hook_node_import_values_alter(). */ function userreference_node_import_values_alter(&$values, $type, $defaults, $options, $fields, $preview) { foreach (node_import_cck_fields($type, 'userreference') as $fieldname => $fieldinfo) { if ($fieldinfo['widget']['type'] == 'userreference_autocomplete') { foreach ($values[$fieldname] as $i => $value) { // This is just braindead - because of some wrapper, the value // needs to be: // array(0 => array('uid' => array('uid' => 'name'))) // instead of: // array(0 => array('uid' => 'name')). $values[$fieldname][$i]['uid'] = array('uid' => $values[$fieldname][$i]['uid']); } } } }