function ui_patterns_settings_entity_field_storage_info_alter in UI Patterns Settings 8.2
Implements hook_entity_field_storage_info_alter().
File
- ./
ui_patterns_settings.module, line 84 - Contains ui_patterns_settings.module.
Code
function ui_patterns_settings_entity_field_storage_info_alter(&$fields, EntityTypeInterface $entity_type) {
/** @var \Drupal\field\Entity\FieldStorageConfig $field */
foreach ($fields as $field) {
if ($field instanceof FieldStorageConfig) {
if (($mapping = UiPatternsSettings::getConfigManager()
->getMapping($field
->id())) !== NULL) {
[
$pattern_id,
$setting_id,
] = explode('::', $mapping);
try {
$pattern_definition = UiPatterns::getPatternDefinition($pattern_id);
$settings_definition = UiPatternsSettings::getPatternDefinitionSetting($pattern_definition, $setting_id);
if ($pattern_definition !== NULL && $settings_definition !== NULL) {
$type = UiPatternsSettings::createSettingType($pattern_definition, $settings_definition);
$type
->alterFieldStorage($field);
}
elseif ($pattern_definition !== NULL && $setting_id === 'variant') {
$field
->setSetting('allowed_values_function', 'ui_patterns_settings_allowed_values_function');
}
else {
\Drupal::messenger()
->addError('No pattern setting %setting found');
}
} catch (\Exception $e) {
\Drupal::messenger()
->addError($e
->getMessage());
}
}
else {
$field
->setSetting('allowed_values_function', NULL);
}
}
}
}