ContextProximityFilter.php in Geofield 8
File
src/Plugin/GeofieldProximitySource/ContextProximityFilter.php
View source
<?php
namespace Drupal\geofield\Plugin\GeofieldProximitySource;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\geofield\Plugin\GeofieldProximitySourceBase;
use Drupal\geofield\Plugin\GeofieldProximitySourceManager;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\geofield\Plugin\views\argument\GeofieldProximityArgument;
class ContextProximityFilter extends GeofieldProximitySourceBase implements ContainerFactoryPluginInterface {
protected $proximitySourceManager;
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition, $container
->get('plugin.manager.geofield_proximity_source'));
}
public function __construct(array $configuration, $plugin_id, $plugin_definition, GeofieldProximitySourceManager $proximitySourceManager) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->proximitySourceManager = $proximitySourceManager;
}
public function getOrigin() {
$origin = [];
if (isset($this->viewHandler)) {
$geofield_proximity_argument = $this->viewHandler->view->argument;
foreach ($this->viewHandler->view->argument as $k => $argument) {
if ($argument instanceof GeofieldProximityArgument) {
$geofield_proximity_argument = $argument;
}
}
if (isset($geofield_proximity_argument)) {
$argument_values = $geofield_proximity_argument
->getParsedReferenceLocation();
$origin = [
'lat' => $argument_values['lat'],
'lon' => $argument_values['lon'],
];
}
}
return $origin;
}
}