function _addressfield_autocomplete_widget_get_field_value in Addressfield Autocomplete 7
Function to get the geofield information from the autocomplete.
1 call to _addressfield_autocomplete_widget_get_field_value()
File
- ./
addressfield_autocomplete.module, line 632 - The Addressfield Autocomplete module code.
Code
function _addressfield_autocomplete_widget_get_field_value($entity_type, $entity, $instance) {
if (!isset($instance['widget']['settings']['addressfield_autocomplete_field'])) {
return;
}
$values = $field_values = $geometries = array();
list(, , $bundle_name) = entity_extract_ids($entity_type, $entity);
$field_name = $instance['widget']['settings']['addressfield_autocomplete_field'];
$field_instance = field_info_instance($entity_type, $field_name, $bundle_name);
if ($field_instance['widget']['type'] != 'addressfield_autocomplete') {
return $values;
}
$delta_hanlding = $instance['widget']['settings']['delta_handling'];
$target_info = field_info_field($instance['field_name']);
$target_type = $target_info['type'];
$field_values = field_get_items($entity_type, $entity, $field_name, isset($entity->language) ? $entity->language : NULL);
if ($field_values) {
geophp_load();
foreach ($field_values as $delta => $item) {
$data = unserialize($item['data']);
$geometry = array();
if (isset($data['latitude']) && isset($data['longitude'])) {
$geometry = new Point($data['longitude'], $data['latitude']);
}
$geometries[$delta] = $geometry;
}
}
if ($geometries) {
$values = _addressfield_autocomplete_widget_resolve_deltas($geometries, $target_type, $delta_hanlding);
}
return $values;
}