You are here

function webform_update_8181 in Webform 6.x

Same name and namespace in other branches
  1. 8.5 includes/webform.install.update.inc \webform_update_8181()

Issue #3103032: Move deprecated geocomplete element into a sub-module.

File

includes/webform.install.update.inc, line 3373
Archived Webform update hooks.

Code

function webform_update_8181() {
  $config_factory = \Drupal::configFactory();
  $install_webform_location_geocomplete = FALSE;
  foreach ($config_factory
    ->listAll('webform.webform.') as $webform_config_name) {
    $webform_config = $config_factory
      ->get($webform_config_name);
    $elements = $webform_config
      ->get('elements');
    if (strpos($elements, 'webform_location_geocomplete') !== FALSE) {
      $install_webform_location_geocomplete = TRUE;
      break;
    }
  }

  // Install and configure the webform_location_geocomplete.module.
  $config = \Drupal::configFactory()
    ->getEditable('webform.settings');
  if ($install_webform_location_geocomplete) {

    // Install the webform_location_geocomplete.module.
    \Drupal::service('module_installer')
      ->install([
      'webform_location_geocomplete',
    ]);

    // Move the default Google maps API key.
    $api_key = $config
      ->get('element.default_google_maps_api_key');
    if ($api_key) {
      $config
        ->clear('element.default_google_maps_api_key');
      $config
        ->set('third_party_settings.webform_location_geocomplete.default_google_maps_api_key', $api_key);
      $config
        ->save();
    }
  }

  // Remove 'webform_location_geocomplete' from excluded elements.
  $config
    ->clear('element.excluded_elements.webform_location_geocomplete');
}