configFactory = $config_factory; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration = NULL) { return new static( $configuration, $plugin_id, $plugin_definition, $migration, $container->get('config.factory') ); } /** * {@inheritdoc} */ public function import(Row $row, array $old_destination_id_values = []) { $imported = FALSE; $config = $this->configFactory->getEditable($row->getDestinationProperty('configuration_name')); $theme_settings = $row->getDestination(); // Remove keys not in theme settings. unset($theme_settings['configuration_name']); unset($theme_settings['theme_name']); if (isset($theme_settings)) { theme_settings_convert_to_config($theme_settings, $config); $config->save(); $imported = TRUE; } return $imported; } /** * {@inheritdoc} */ public function getIds() { $ids['name']['type'] = 'string'; return $ids; } /** * {@inheritdoc} */ public function fields(MigrationInterface $migration = NULL) { // Theme settings vary by theme, so no specific fields are defined. return []; } }