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/MapCenter/Location.php \Drupal\geolocation\Plugin\geolocation\MapCenter\Location
Location based map center.
Plugin annotation
@MapCenter(
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\MapCenterBase implements ContainerFactoryPluginInterface, MapCenterInterface
- class \Drupal\geolocation\Plugin\geolocation\MapCenter\Location implements MapCenterInterface
- class \Drupal\geolocation\MapCenterBase implements ContainerFactoryPluginInterface, MapCenterInterface
- 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/ MapCenter/ Location.php, line 20
Namespace
Drupal\geolocation\Plugin\geolocation\MapCenterView source
class Location extends MapCenterBase implements MapCenterInterface {
/**
* 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 function getSettingsForm($location_plugin_id = NULL, array $settings = [], $context = NULL) {
if (!$this->locationManager
->hasDefinition($location_plugin_id)) {
return [];
}
$form = [];
/** @var \Drupal\geolocation\LocationInterface $location_plugin */
$location_plugin = $this->locationManager
->createInstance($location_plugin_id);
$location_options = $location_plugin
->getAvailableLocationOptions($context);
if (!$location_options) {
return [];
}
$option_id = NULL;
if (!empty($settings['location_option_id'])) {
$settings['location_option_id'];
$option_id = $settings['location_option_id'];
}
if (count($location_options) == 1) {
$option_id = key($location_options);
$form['location_option_id'] = [
'#type' => 'value',
'#value' => $option_id,
];
}
else {
$options = [];
foreach ($location_options as $location_option_id => $location_option_definition) {
$options[$location_option_id] = $location_option_definition['name'];
}
$form['location_option_id'] = [
'#type' => 'select',
'#options' => $options,
'#default_value' => $option_id,
];
}
/** @var \Drupal\geolocation\LocationInterface $location_plugin */
$location_plugin = $this->locationManager
->createInstance($location_plugin_id);
$form = array_merge_recursive($form, $location_plugin
->getSettingsForm($option_id, $settings, $context));
return $form;
}
/**
* {@inheritdoc}
*/
public function getAvailableMapCenterOptions($context = NULL) {
$options = [];
/** @var \Drupal\geolocation\LocationInterface $location_plugin */
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);
$location_options = $location_plugin
->getAvailableLocationOptions($context);
if (!$location_options) {
continue;
}
$options[$location_plugin_id] = $location_plugin_definition['name'];
}
return $options;
}
/**
* {@inheritdoc}
*/
public function alterMap(array $map, $center_plugin_id, array $center_option_settings, $context = NULL) {
if (!$this->locationManager
->hasDefinition($center_plugin_id)) {
return $map;
}
/** @var \Drupal\geolocation\LocationInterface $location */
$location = $this->locationManager
->createInstance($center_plugin_id);
if (!empty($center_option_settings['location_option_id'])) {
$location_id = $center_option_settings['location_option_id'];
}
else {
$location_id = $center_plugin_id;
}
$map['#attached']['drupalSettings']['geolocation']['maps'][$map['#id']]['map_center']['location_plugins_' . $location_id] = $map['#attached']['drupalSettings']['geolocation']['maps'][$map['#id']]['map_center']['location_plugins'];
unset($map['#attached']['drupalSettings']['geolocation']['maps'][$map['#id']]['map_center']['location_plugins']);
$map_center = $location
->getCoordinates($location_id, $center_option_settings, $context);
if (!empty($map_center)) {
$map['#centre'] = $map_center;
}
$map['#attached'] = BubbleableMetadata::mergeAttachments($map['#attached'], [
'library' => [
'geolocation/map_center.static_location',
],
'drupalSettings' => [
'geolocation' => [
'maps' => [
$map['#id'] => [
'map_center' => [
'location_plugins_' . $location_id => [
'success' => !empty($map_center),
],
],
],
],
],
],
]);
return $map;
}
}
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 | function |
Alter map.. Overrides MapCenterBase:: |
|
Location:: |
public static | function |
Creates an instance of the plugin. Overrides MapCenterBase:: |
|
Location:: |
public | function |
For one MapCenter (i.e. boundary filter), return all options (all filters). Overrides MapCenterBase:: |
|
Location:: |
public | function |
Settings form by ID and context. Overrides MapCenterBase:: |
|
Location:: |
public | function |
Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase:: |
|
MapCenterBase:: |
public static | function |
Provide a populated settings array. Overrides MapCenterInterface:: |
3 |
MapCenterBase:: |
public | function |
Provide MapCenter option specific settings. Overrides MapCenterInterface:: |
|
MapCenterBase:: |
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. |