class Location in Geolocation Field 8.3
Same name in this branch
- 8.3 src/Annotation/Location.php \Drupal\geolocation\Annotation\Location
- 8.3 src/Plugin/geolocation/MapCenter/Location.php \Drupal\geolocation\Plugin\geolocation\MapCenter\Location
- 8.3 src/Plugin/geolocation/LocationInput/Location.php \Drupal\geolocation\Plugin\geolocation\LocationInput\Location
- 8.3 src/Plugin/migrate/field/Location.php \Drupal\geolocation\Plugin\migrate\field\Location
- 8.3 modules/geolocation_address/src/Plugin/migrate/field/Location.php \Drupal\geolocation_address\Plugin\migrate\field\Location
Same name and namespace in other branches
- 8.2 src/Plugin/geolocation/LocationInput/Location.php \Drupal\geolocation\Plugin\geolocation\LocationInput\Location
Location based proximity center.
Plugin annotation
@LocationInput(
id = "location_plugins",
name = @Translation("Location Plugins"),
description = @Translation("Select a location plugin."),
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\geolocation\LocationInputBase implements ContainerFactoryPluginInterface, LocationInputInterface
- class \Drupal\geolocation\Plugin\geolocation\LocationInput\Location implements LocationInputInterface
- class \Drupal\geolocation\LocationInputBase implements ContainerFactoryPluginInterface, LocationInputInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of Location
6 string references to 'Location'
- views.view.geolocation_demo_commonmap_boundary_filter_with_ajax.yml in modules/
geolocation_google_maps/ modules/ geolocation_google_maps_demo/ config/ optional/ views.view.geolocation_demo_commonmap_boundary_filter_with_ajax.yml - modules/geolocation_google_maps/modules/geolocation_google_maps_demo/config/optional/views.view.geolocation_demo_commonmap_boundary_filter_with_ajax.yml
- views.view.geolocation_demo_commonmap_with_attachment.yml in modules/
geolocation_google_maps/ modules/ geolocation_google_maps_demo/ config/ optional/ views.view.geolocation_demo_commonmap_with_attachment.yml - modules/geolocation_google_maps/modules/geolocation_google_maps_demo/config/optional/views.view.geolocation_demo_commonmap_with_attachment.yml
- views.view.geolocation_demo_commonmap_with_marker_icons.yml in modules/
geolocation_google_maps/ modules/ geolocation_google_maps_demo/ config/ optional/ views.view.geolocation_demo_commonmap_with_marker_icons.yml - modules/geolocation_google_maps/modules/geolocation_google_maps_demo/config/optional/views.view.geolocation_demo_commonmap_with_marker_icons.yml
- views.view.geolocation_demo_common_map_ajax.yml in modules/
geolocation_google_maps/ modules/ geolocation_google_maps_demo/ config/ optional/ views.view.geolocation_demo_common_map_ajax.yml - modules/geolocation_google_maps/modules/geolocation_google_maps_demo/config/optional/views.view.geolocation_demo_common_map_ajax.yml
- views.view.geolocation_demo_interactive_commonmap_with_address_input.yml in modules/
geolocation_google_maps/ modules/ geolocation_google_maps_demo/ config/ optional/ views.view.geolocation_demo_interactive_commonmap_with_address_input.yml - modules/geolocation_google_maps/modules/geolocation_google_maps_demo/config/optional/views.view.geolocation_demo_interactive_commonmap_with_address_input.yml
File
- src/
Plugin/ geolocation/ LocationInput/ Location.php, line 19
Namespace
Drupal\geolocation\Plugin\geolocation\LocationInputView source
class Location extends LocationInputBase implements LocationInputInterface {
/**
* Location manager.
*
* @var \Drupal\geolocation\LocationManager
*/
protected $locationManager;
/**
* Location Plugin ID.
*
* @var string
*/
protected $locationPluginId = '';
/**
* {@inheritdoc}
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition, LocationManager $location_manager) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->locationManager = $location_manager;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition, $container
->get('plugin.manager.geolocation.location'));
}
/**
* {@inheritdoc}
*/
public static function getDefaultSettings() {
$settings = parent::getDefaultSettings();
$settings['location_settings'] = [
'settings' => [],
];
$settings['location_plugin_id'] = '';
return $settings;
}
/**
* {@inheritdoc}
*/
public function getSettingsForm($option_id = NULL, array $settings = [], $context = NULL) {
$values = explode(':', $option_id);
if (count($values) !== 2) {
return [];
}
$location_plugin_id = $values[0];
$location_option_id = $values[1];
if (!$this->locationManager
->hasDefinition($location_plugin_id)) {
return [];
}
/** @var \Drupal\geolocation\LocationInterface $location_plugin */
$location_plugin = $this->locationManager
->createInstance($location_plugin_id);
$form = parent::getSettingsForm($location_plugin
->getPluginId(), $settings, $context);
// A bit more complicated to use location schema.
$form['location_settings']['settings'] = $location_plugin
->getSettingsForm($location_option_id, $settings['location_settings']['settings'], $context);
$form['location_plugin_id'] = [
'#type' => 'value',
'#value' => $location_plugin_id,
];
return $form;
}
/**
* {@inheritdoc}
*/
public function getAvailableLocationInputOptions($context) {
$options = [];
foreach ($this->locationManager
->getDefinitions() as $location_plugin_id => $location_plugin_definition) {
/** @var \Drupal\geolocation\LocationInterface $location_plugin */
$location_plugin = $this->locationManager
->createInstance($location_plugin_id);
foreach ($location_plugin
->getAvailableLocationOptions($context) as $location_id => $location_label) {
$options[$location_plugin_id . ':' . $location_id] = $location_label;
}
}
return $options;
}
/**
* {@inheritdoc}
*/
public function getCoordinates($form_value, $center_option_id, array $center_option_settings, $context = NULL) {
$values = explode(':', $center_option_id);
if (count($values) !== 2) {
return [];
}
$location_plugin_id = $values[0];
$location_option_id = $values[1];
if (!$this->locationManager
->hasDefinition($location_plugin_id)) {
return [];
}
/** @var \Drupal\geolocation\LocationInterface $location */
$location = $this->locationManager
->createInstance($location_plugin_id);
$center = $location
->getCoordinates($location_option_id, $center_option_settings['location_settings']['settings'], $context);
if (empty($center)) {
return FALSE;
}
return $center;
}
/**
* {@inheritdoc}
*/
public function getForm($center_option_id, array $center_option_settings, $context = NULL, array $default_value = NULL) {
return [];
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
Location:: |
protected | property | Location manager. | |
Location:: |
protected | property | Location Plugin ID. | |
Location:: |
public static | function |
Creates an instance of the plugin. Overrides LocationInputBase:: |
|
Location:: |
public | function |
For one LocationInput (i.e. boundary filter), return all options. Overrides LocationInputBase:: |
|
Location:: |
public | function |
Get center value. Overrides LocationInputBase:: |
|
Location:: |
public static | function |
Provide a populated settings array. Overrides LocationInputBase:: |
|
Location:: |
public | function |
Get center form. Overrides LocationInputBase:: |
|
Location:: |
public | function |
Settings form by ID and context. Overrides LocationInputBase:: |
|
Location:: |
public | function |
Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase:: |
|
LocationInputBase:: |
public | function |
Provide LocationInput option specific settings. Overrides LocationInputInterface:: |
|
LocationInputBase:: |
public | function | ||
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |