public function GeolocationLatlngWidget::massageFormValues in Geolocation Field 8
Same name and namespace in other branches
- 8.3 src/Plugin/Field/FieldWidget/GeolocationLatlngWidget.php \Drupal\geolocation\Plugin\Field\FieldWidget\GeolocationLatlngWidget::massageFormValues()
- 8.2 src/Plugin/Field/FieldWidget/GeolocationLatlngWidget.php \Drupal\geolocation\Plugin\Field\FieldWidget\GeolocationLatlngWidget::massageFormValues()
Massages the form values into the format expected for field values.
Parameters
array $values: The submitted form values produced by the widget.
- If the widget does not manage multiple values itself, the array holds the values generated by the multiple copies of the $element generated by the formElement() method, keyed by delta.
- If the widget manages multiple values, the array holds the values of the form element generated by the formElement() method.
array $form: The form structure where field elements are attached to. This might be a full form structure, or a sub-element of a larger form.
\Drupal\Core\Form\FormStateInterface $form_state: The form state.
Return value
array An array of field values, keyed by delta.
Overrides WidgetBase::massageFormValues
File
- src/
Plugin/ Field/ FieldWidget/ GeolocationLatlngWidget.php, line 70
Class
- GeolocationLatlngWidget
- Plugin implementation of the 'geolocation_latlng' widget.
Namespace
Drupal\geolocation\Plugin\Field\FieldWidgetCode
public function massageFormValues(array $values, array $form, FormStateInterface $form_state) {
// Grep GPS values and transform to regular float.
foreach ($values as $index => $geolocation) {
if (!empty($geolocation['lat']) && !empty($geolocation['lng'])) {
$latitude = GeolocationCore::sexagesimalToDecimal($values[$index]['lat']);
$longitude = GeolocationCore::sexagesimalToDecimal($values[$index]['lng']);
if (!empty($latitude) && !empty($longitude)) {
$values[$index]['lat'] = $latitude;
$values[$index]['lng'] = $longitude;
}
}
}
return parent::massageFormValues($values, $form, $form_state);
}