You are here

function search_api_solr_update_8213 in Search API Solr 4.x

Same name and namespace in other branches
  1. 8.3 search_api_solr.install \search_api_solr_update_8213()
  2. 8.2 search_api_solr.install \search_api_solr_update_8213()

Configure index prefixes individually per server and index.

File

./search_api_solr.install, line 735
Install, update and uninstall functions for the Search API Solr module.

Code

function search_api_solr_update_8213() {
  $config_factory = \Drupal::configFactory();
  $config = $config_factory
    ->getEditable('search_api_solr.settings');
  $data = $config
    ->getRawData();
  foreach (search_api_solr_update_helper_get_index_third_party_settings() as $index_id => $third_party_settings) {
    if (!isset($third_party_settings['advanced']) || !isset($third_party_settings['advanced']['index_prefix'])) {
      $prefix = 'index_prefix_' . $index_id;
      $third_party_settings['advanced']['index_prefix'] = $data[$prefix] ?? '';
      unset($data[$prefix]);
      search_api_solr_update_helper_save_index_third_party_settings($index_id, $third_party_settings);
    }
  }
  foreach (search_api_solr_update_helper_get_backend_configs() as $server_name => $backend_config) {
    if (!isset($backend_config['server_prefix'])) {
      $backend_config['server_prefix'] = isset($data['index_prefix']) ? $data['index_prefix'] : '';
      search_api_solr_update_helper_save_backend_config($server_name, $backend_config);
    }
  }
  unset($data['index_prefix']);
  $config
    ->setData($data);
  $config
    ->save(TRUE);
}