You are here

function geolocation_google_maps_js_alter in Geolocation Field 8.3

Implements hook_js_alter().

File

modules/geolocation_google_maps/geolocation_google_maps.module, line 38
Google Maps hooks.

Code

function geolocation_google_maps_js_alter(&$javascript, AttachedAssetsInterface $assets) {
  if (!\Drupal::moduleHandler()
    ->moduleExists('language')) {
    return;
  }
  $config = \Drupal::config('geolocation_google_maps.settings');
  if (!$config
    ->get('use_current_language')) {
    return;
  }
  if (!empty($config
    ->get('google_maps_base_url'))) {
    $google_url = $config
      ->get('google_maps_base_url');
  }
  elseif ($config
    ->get('china_mode')) {
    $google_url = GoogleMapsProviderBase::$googleMapsApiUrlBaseChina;
  }
  else {
    $google_url = GoogleMapsProviderBase::$googleMapsApiUrlBase;
  }
  foreach ($javascript as $key => $js) {
    if (strpos($key, $google_url . GoogleMapsProviderBase::$googleMapsApiUrlPath) === 0 && strpos($key, 'language=') > 0) {
      $javascript[$key]['data'] = Drupal::service('plugin.manager.geolocation.mapprovider')
        ->getMapProvider('google_maps')
        ->getGoogleMapsApiUrl();
    }
  }
}