You are here

public function WidgetPluginManager::prepareConfiguration in Drupal 10

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Field/WidgetPluginManager.php \Drupal\Core\Field\WidgetPluginManager::prepareConfiguration()
  2. 9 core/lib/Drupal/Core/Field/WidgetPluginManager.php \Drupal\Core\Field\WidgetPluginManager::prepareConfiguration()

Merges default values for widget configuration.

Parameters

string $field_type: The field type.

array $configuration: An array of widget configuration.

Return value

array The display properties with defaults added.

1 call to WidgetPluginManager::prepareConfiguration()
WidgetPluginManager::getInstance in core/lib/Drupal/Core/Field/WidgetPluginManager.php
Overrides PluginManagerBase::getInstance().

File

core/lib/Drupal/Core/Field/WidgetPluginManager.php, line 139

Class

WidgetPluginManager
Plugin type manager for field widgets.

Namespace

Drupal\Core\Field

Code

public function prepareConfiguration($field_type, array $configuration) {

  // Fill in defaults for missing properties.
  $configuration += [
    'settings' => [],
    'third_party_settings' => [],
  ];

  // If no widget is specified, use the default widget.
  if (!isset($configuration['type'])) {
    $field_type = $this->fieldTypeManager
      ->getDefinition($field_type);
    $configuration['type'] = $field_type['default_widget'] ?? NULL;
  }

  // Filter out unknown settings, and fill in defaults for missing settings.
  $default_settings = $this
    ->getDefaultSettings($configuration['type']);
  $configuration['settings'] = array_intersect_key($configuration['settings'], $default_settings) + $default_settings;
  return $configuration;
}