You are here

function tmgmt_extension_suit_init_default_config_values in TMGMT Extension Suite 8.3

4 calls to tmgmt_extension_suit_init_default_config_values()
tmgmt_extension_suit_install in ./tmgmt_extension_suit.install
Set default "track changes by provider and target languages" config values.
tmgmt_extension_suit_modules_installed in ./tmgmt_extension_suit.module
Implements hook_modules_installed().
tmgmt_extension_suit_test_install in modules/tmgmt_extension_suit_test/tmgmt_extension_suit_test.install
Set default "track changes by provider and target languages" config values.
tmgmt_extension_suit_update_8302 in ./tmgmt_extension_suit.install
Set default "track changes by provider and target languages" config values.

File

./tmgmt_extension_suit.module, line 269
Main module file for the TMGMT Smartling module.

Code

function tmgmt_extension_suit_init_default_config_values() {
  $config_factory = \Drupal::configFactory();
  $config = $config_factory
    ->getEditable('tmgmt_extension_suit.settings');
  if ($config
    ->get('do_track_changes')) {
    $languages = \Drupal::languageManager()
      ->getLanguages();
    $default_language = \Drupal::languageManager()
      ->getDefaultLanguage();
    $do_track_changes_by_provider_and_locales = [];
    foreach ($config_factory
      ->listAll('tmgmt.translator') as $id) {
      $translator_config = $config_factory
        ->get($id);
      $config_data = $translator_config
        ->getRawData();
      $translator = Translator::load($config_data['name']);
      if (empty($translator)) {
        continue;
      }
      $translator_plugin = $translator
        ->getPlugin();
      if (!$translator_plugin instanceof ExtendedTranslatorPluginInterface) {
        continue;
      }
      foreach ($languages as $language) {
        if ($language
          ->getId() === $default_language
          ->getId()) {
          continue;
        }
        $do_track_changes_by_provider_and_locales[$translator
          ->id() . '_' . $language
          ->getId()] = TRUE;
      }
    }
    if (!Drupal::state()
      ->get('tmgmt_extension_suit.settings.do_track_changes_by_provider_and_locales')) {
      Drupal::state()
        ->set('tmgmt_extension_suit.settings.do_track_changes_by_provider_and_locales', $do_track_changes_by_provider_and_locales);
    }
  }
}