function geofield_set_target_simple in Geofield 7.2
Same name and namespace in other branches
- 7 geofield.feeds.inc \geofield_set_target_simple()
Example callback specified in hook_feeds_processor_targets_alter().
Parameters
$source: Field mapper source settings.
$entity: An entity object, for instance a node object.
$target: A string identifying the target on the node.
$values: The values to populate the target with.
1 string reference to 'geofield_set_target_simple'
- geofield_feeds_processor_targets_alter in ./
geofield.feeds.inc - Implements hook_feeds_node_processor_targets_alter().
File
- ./
geofield.feeds.inc, line 131 - Provides integration with Feeds module (http://drupal.org/project/feeds)
Code
function geofield_set_target_simple($source, $entity, $target, $values) {
list($field_name, $sub_field) = explode(':', $target, 2);
if (!is_array($values)) {
$values = array(
$values,
);
}
$field = isset($entity->{$field_name}) ? $entity->{$field_name} : array(
'und' => array(),
);
$delta = 0;
foreach ($values as $value) {
$field['und'][$delta][$sub_field] = $value;
$delta++;
}
// Compute all the geofield values for each field value.
foreach ($field[LANGUAGE_NONE] as $delta => $value) {
if (!empty($value['lat']) && !empty($value['lon'])) {
$field[LANGUAGE_NONE][$delta] = geofield_compute_values($value, GEOFIELD_INPUT_LAT_LON);
}
elseif (!empty($value['top']) && !empty($value['right']) && !empty($value['bottom']) && !empty($value['left'])) {
$value = array(
'geom' => $value,
);
$field[LANGUAGE_NONE][$delta] = geofield_compute_values($value, GEOFIELD_INPUT_BOUNDS);
}
}
$entity->{$field_name} = $field;
}