diff --git a/contrib/location_entity/location_entity.module b/contrib/location_entity/location_entity.module index 4a93078..0f6740d 100644 --- a/contrib/location_entity/location_entity.module +++ b/contrib/location_entity/location_entity.module @@ -21,8 +21,7 @@ function location_entity_field_info_alter(&$field_info) { */ function location_entity_field_item_location_property_callback(&$info, $entity_type, $field, $instance, $field_type) { $property = & $info[$entity_type]['bundles'][$instance['bundle']]['properties'][$field['field_name']]; - $property['getter callback'] = 'entity_metadata_field_verbatim_get'; - $property['setter callback'] = 'entity_metadata_field_verbatim_set'; + $property['getter callback'] = 'location_entity_field_verbatim_get'; foreach (location_entity_key_map() as $key => $item) { $property['property info'][$key] = array( @@ -37,6 +36,13 @@ function location_entity_field_item_location_property_callback(&$info, $entity_t * Gets the data from field array. */ function location_entity_field_verbatim_get($item, array $options, $name, $entity_type) { + //@todo The property name is field_location in entity property info, but in entity object which location field attached, the name is location. Need to find a better solution. + if ($name == 'field_location') { + $name = 'location'; + } + + $item = (array) $item; + if (isset($item[$name]) && !empty($item[$name])) { return $item[$name]; }