You are here

function geofield_filter_harmonizer_formalize_contextual_arg in Views Filter Harmonizer 1.0.x

Same name and namespace in other branches
  1. 8 includes/filter_harmonizer_for_geofield.inc \geofield_filter_harmonizer_formalize_contextual_arg()

Implements hook_filter_harmonizer_formalize_contextual_arg().

Returns contextual arguments as an array suitable for populating a Geofield Proximity (exposed) regular filter.

File

includes/filter_harmonizer_for_geofield.inc, line 77
filter_harmonizer_for_geofield.inc

Code

function geofield_filter_harmonizer_formalize_contextual_arg($contextual_filter, FilterPluginBase $regular_filter) {
  if ($contextual_filter instanceof GeofieldProximityArgument) {
    if ($values = $contextual_filter
      ->getParsedReferenceLocation()) {
      if (empty($values['units'])) {
        $values['units'] = "GEOFIELD_KILOMETERS";
      }
      $values['value'] = $values['distance'];
      $values['origin']['lat'] = $values['lat'];
      $values['origin']['lon'] = $values['lon'];
      unset($values['distance'], $values['lat'], $values['lon']);
      if ($regular_filter instanceof GeofieldProximityFilter) {
        $regular_filter->operator = $values['operator'];
        $regular_filter->options['units'] = $values['units'];
      }
      return $values;
    }
  }
}