public function MapProviderBase::getSettings in Geolocation Field 8.3
Same name and namespace in other branches
- 8.2 src/MapProviderBase.php \Drupal\geolocation\MapProviderBase::getSettings()
Provide map provider specific settings ready to handover to JS.
Parameters
array $settings: Current general map settings. Might contain unrelated settings as well.
Return value
array An array only containing keys defined in this plugin.
Overrides MapProviderInterface::getSettings
5 calls to MapProviderBase::getSettings()
- Baidu::getSettings in modules/geolocation_baidu/ src/ Plugin/ geolocation/ MapProvider/ Baidu.php 
- Provide map provider specific settings ready to handover to JS.
- GoogleMapsProviderBase::getSettings in modules/geolocation_google_maps/ src/ GoogleMapsProviderBase.php 
- Provide map provider specific settings ready to handover to JS.
- Here::getSettings in modules/geolocation_here/ src/ Plugin/ geolocation/ MapProvider/ Here.php 
- Provide map provider specific settings ready to handover to JS.
- Leaflet::getSettings in modules/geolocation_leaflet/ src/ Plugin/ geolocation/ MapProvider/ Leaflet.php 
- Provide map provider specific settings ready to handover to JS.
- Yandex::getSettings in modules/geolocation_yandex/ src/ Plugin/ geolocation/ MapProvider/ Yandex.php 
- Provide map provider specific settings ready to handover to JS.
5 methods override MapProviderBase::getSettings()
- Baidu::getSettings in modules/geolocation_baidu/ src/ Plugin/ geolocation/ MapProvider/ Baidu.php 
- Provide map provider specific settings ready to handover to JS.
- GoogleMapsProviderBase::getSettings in modules/geolocation_google_maps/ src/ GoogleMapsProviderBase.php 
- Provide map provider specific settings ready to handover to JS.
- Here::getSettings in modules/geolocation_here/ src/ Plugin/ geolocation/ MapProvider/ Here.php 
- Provide map provider specific settings ready to handover to JS.
- Leaflet::getSettings in modules/geolocation_leaflet/ src/ Plugin/ geolocation/ MapProvider/ Leaflet.php 
- Provide map provider specific settings ready to handover to JS.
- Yandex::getSettings in modules/geolocation_yandex/ src/ Plugin/ geolocation/ MapProvider/ Yandex.php 
- Provide map provider specific settings ready to handover to JS.
File
- src/MapProviderBase.php, line 69 
Class
- MapProviderBase
- Provide Map Provider Base class.
Namespace
Drupal\geolocationCode
public function getSettings(array $settings) {
  $default_settings = $this
    ->getDefaultSettings();
  $settings = array_replace_recursive($default_settings, $settings);
  foreach ($settings as $key => $setting) {
    if (!isset($default_settings[$key])) {
      unset($settings[$key]);
    }
  }
  foreach ($this->mapFeatureManager
    ->getMapFeaturesByMapType($this
    ->getPluginId()) as $feature_id => $feature_definition) {
    if (!empty($settings['map_features'][$feature_id]['enabled'])) {
      $feature = $this->mapFeatureManager
        ->getMapFeature($feature_id, []);
      if ($feature) {
        if (empty($settings['map_features'][$feature_id]['settings'])) {
          $settings['map_features'][$feature_id]['settings'] = $feature
            ->getSettings([]);
        }
        else {
          $settings['map_features'][$feature_id]['settings'] = $feature
            ->getSettings($settings['map_features'][$feature_id]['settings']);
        }
      }
      else {
        unset($settings['map_features'][$feature_id]);
      }
    }
  }
  return $settings;
}