You are here

function theme_settings_convert_to_config in Drupal 10

Same name and namespace in other branches
  1. 8 core/includes/theme.inc \theme_settings_convert_to_config()
  2. 9 core/includes/theme.inc \theme_settings_convert_to_config()

Converts theme settings to configuration.

Parameters

array $theme_settings: An array of theme settings from system setting form or a Drupal 7 variable.

\Drupal\Core\Config\Config $config: The configuration object to update.

Return value

The Config object with updated data.

See also

system_theme_settings_submit()

3 calls to theme_settings_convert_to_config()
ThemeSettings::import in core/modules/system/src/Plugin/migrate/destination/d7/ThemeSettings.php
Import the row.
ThemeSettingsForm::submitForm in core/modules/system/src/Form/ThemeSettingsForm.php
Form submission handler.
ThemeSettingsTest::testLogoConfig in core/tests/Drupal/KernelTests/Core/Theme/ThemeSettingsTest.php
Tests that the default logo config can be overridden.

File

core/includes/theme.inc, line 420
The theme system, which controls the output of Drupal.

Code

function theme_settings_convert_to_config(array $theme_settings, Config $config) {
  foreach ($theme_settings as $key => $value) {
    if ($key == 'default_logo') {
      $config
        ->set('logo.use_default', $value);
    }
    elseif ($key == 'logo_path') {
      $config
        ->set('logo.path', $value);
    }
    elseif ($key == 'default_favicon') {
      $config
        ->set('favicon.use_default', $value);
    }
    elseif ($key == 'favicon_path') {
      $config
        ->set('favicon.path', $value);
    }
    elseif ($key == 'favicon_mimetype') {
      $config
        ->set('favicon.mimetype', $value);
    }
    elseif (substr($key, 0, 7) == 'toggle_') {
      $config
        ->set('features.' . mb_substr($key, 7), $value);
    }
    elseif (!in_array($key, [
      'theme',
      'logo_upload',
    ])) {
      $config
        ->set($key, $value);
    }
  }
  return $config;
}