diff --git a/src/Plugin/Field/FieldFormatter/GeolocationMapFormatterBase.php b/src/Plugin/Field/FieldFormatter/GeolocationMapFormatterBase.php index c043268d9bf7e1fcfbae9ec6b165fad32b4ccd4c..20d95611ccce8f4f6cba0d01ab065b85ee3d0abf 100644 --- a/src/Plugin/Field/FieldFormatter/GeolocationMapFormatterBase.php +++ b/src/Plugin/Field/FieldFormatter/GeolocationMapFormatterBase.php @@ -88,7 +88,6 @@ abstract class GeolocationMapFormatterBase extends FormatterBase { $container->get('plugin.manager.geolocation.mapprovider'), $container->get('plugin.manager.geolocation.mapcenter'), $container->get('plugin.manager.geolocation.dataprovider'), - $container->get('plugin.manager.geolocation.datalayerprovider'), ); } @@ -325,13 +324,26 @@ abstract class GeolocationMapFormatterBase extends FormatterBase { } } - return array_replace_recursive($summary, $this->mapProvider->getSettingsSummary($settings['map_provider_settings'])); + if ($this->mapProvider ?? NULL) { + return array_replace_recursive($summary, $this->mapProvider->getSettingsSummary($settings['map_provider_settings'])); + } + + $summary[] = $this->t('Attention: No map provider set.'); + + \Drupal::messenger()->addWarning('Geolocation Formatter - Map: No map provider set. Map cannot be displayed.'); + + return $summary; } /** * {@inheritdoc} */ public function viewElements(FieldItemListInterface $items, $langcode): array { + if (!($this->mapProvider ?? NULL)) { + \Drupal::logger('geolocation')->warning('No map provider set. No map can be displayed.'); + return []; + } + if ($items->count() == 0) { return []; }