function location_cck_node_import_values_alter in Node import 6
Implementation of hook_node_import_values_alter().
File
- supported/
location/ location_cck.inc, line 77 - Support file for contrib Location CCK Field module.
Code
function location_cck_node_import_values_alter(&$values, $type, $defaults, $options, $fields, $preview) {
// Get location_cck fields for this node type
foreach (node_import_cck_fields($type, 'location_cck') as $field => $settings) {
//dsm($values);
//$settings = content_fields('field_location', $node_type);
// $values['locations_cck'] = array();
$cck_field = 'location_cck:' . $field;
$all_location_field_names = array();
foreach (array_keys(location_field_names()) as $fieldname) {
if (isset($settings['location_settings']['form']['fields'][$fieldname]) && $settings['location_settings']['form']['fields'][$fieldname]['collect']) {
$all_location_field_names[] = $fieldname;
}
}
$all_location_field_names[] = 'latitude';
$all_location_field_names[] = 'longitude';
$num_values = 0;
foreach ($all_location_field_names as $fieldname) {
if (!is_array($values[$cck_field . ':' . $fieldname])) {
$values[$cck_field . ':' . $fieldname] = array(
0 => $values[$cck_field . ':' . $fieldname],
);
}
$num_values = max(count($values[$cck_field . ':' . $fieldname]), $num_values);
}
$i = 0;
while ($i < $num_values && $i <= $settings['multiple']) {
$value = array();
foreach ($all_location_field_names as $fieldname) {
if (array_key_exists($i, $values[$cck_field . ':' . $fieldname])) {
$value[$fieldname] = $values[$cck_field . ':' . $fieldname][$i];
}
else {
$value[$fieldname] = $defaults[$cck_field . ':' . $fieldname];
}
}
$value['locpick'] = array(
'user_latitude' => isset($value['latitude']) ? $value['latitude'] : '',
'user_longitude' => isset($value['longitude']) ? $value['longitude'] : '',
);
$value['location_settings'] = $settings;
$values[$field][] = $value;
$i++;
}
foreach ($all_location_field_names as $fieldname) {
if (isset($values[$cck_field . ':' . $fieldname])) {
unset($values[$cck_field . ':' . $fieldname]);
}
}
}
}