You are here

function opigno_messaging_update_9001 in Opigno messaging 3.x

Import configs.

File

./opigno_messaging.install, line 55
Install, update and uninstall functions for the Opigno Messaging module.

Code

function opigno_messaging_update_9001() {
  $path = drupal_get_path('module', 'opigno_messaging') . '/config/optional/';
  $source = new FileStorage($path);

  // Import new fields configs.
  $field_configs = [
    'field.storage.private_message_thread.field_author' => 'field.field.private_message_thread.private_message_thread.field_author',
    'field.storage.private_message_thread.field_create_group' => 'field.field.private_message_thread.private_message_thread.field_create_group',
    'field.storage.private_message_thread.field_image' => 'field.field.private_message_thread.private_message_thread.field_image',
  ];
  try {
    $field_storage = \Drupal::entityTypeManager()
      ->getStorage('field_storage_config');
    $config_storage = \Drupal::entityTypeManager()
      ->getStorage('field_config');
    foreach ($field_configs as $storage => $field) {
      $storage_data = $source
        ->read($storage);
      $field_storage
        ->create($storage_data)
        ->save();
      $field_data = $source
        ->read($field);
      $config_storage
        ->create($field_data)
        ->save();
    }
  } catch (PluginNotFoundException|InvalidPluginDefinitionException|EntityStorageException $e) {
    watchdog_exception('opigno_messaging_exception', $e);
  }

  // Update/import other configs.
  $storage = \Drupal::service('config.storage');
  $configs = [
    'core.date_format.date_short_with_time',
    'core.date_format.hour_minute',
    'core.entity_form_display.private_message_thread.private_message_thread.default',
    'core.entity_view_display.private_message.private_message.default',
    'core.entity_view_display.private_message.private_message.inbox',
    'core.entity_view_display.private_message.private_message.thread_preview',
    'core.entity_view_display.private_message_thread.private_message_thread.default',
    'core.entity_view_display.private_message_thread.private_message_thread.inbox',
    'core.entity_view_display.private_message_thread.private_message_thread.preview',
    'core.entity_view_mode.private_message.thread_preview',
    'core.entity_view_mode.private_message_thread.preview',
    'core.entity_view_display.user.user.pm_thread_preview',
    'image.style.private_message_group_upload',
    'views.view.private_message',
  ];
  foreach ($configs as $config) {
    $storage
      ->write($config, $source
      ->read($config));
  }

  // Update the block config from the profile.
  $config_factory = \Drupal::configFactory();
  $config = $config_factory
    ->getEditable('block.block.views_block__private_message_block_all');
  $config
    ->set('theme', 'aristotle')
    ->save(TRUE);
  drupal_flush_all_caches();
}