From 2d55b4ff75f2f7358ff765f3ec63591e45ca6f15 Mon Sep 17 00:00:00 2001 From: Cristian <cristian.aliaga@metadrop.net> Date: Tue, 11 Jun 2024 12:21:14 +0200 Subject: [PATCH] Issue #3045509: Complete the field map with extra bundle field info --- .../Drupal/Core/Entity/EntityFieldManager.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/core/lib/Drupal/Core/Entity/EntityFieldManager.php b/core/lib/Drupal/Core/Entity/EntityFieldManager.php index 666b81f575af..2b6b35cdc51f 100644 --- a/core/lib/Drupal/Core/Entity/EntityFieldManager.php +++ b/core/lib/Drupal/Core/Entity/EntityFieldManager.php @@ -546,6 +546,22 @@ public function getFieldMap() { } } + // Complete the field map with extra bundle field info. + foreach ($this->fieldMap as $entity_type_id => $entity_field_map) { + $entity_type_bundles_list = $this->entityTypeBundleInfo->getBundleInfo($entity_type_id); + foreach (array_keys($entity_type_bundles_list) as $bundle_id) { + if ($bundle_id != 'default') { + $bundle_field_definitions = $this->getFieldDefinitions($entity_type_id, $bundle_id); + foreach ($bundle_field_definitions as $bundle_field_name => $bundle_field_definition) { + if (!isset($entity_field_map[$bundle_field_name])) { + $this->fieldMap[$entity_type_id][$bundle_field_name]['type'] = $bundle_field_definition->getType(); + $this->fieldMap[$entity_type_id][$bundle_field_name]['bundles'][$bundle_id] = $bundle_id; + } + } + } + } + } + $this->cacheSet($cid, $this->fieldMap, Cache::PERMANENT, ['entity_types', 'entity_field_info']); } } -- GitLab