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();
}