diff --git a/Classes/ContentObject/Relation.php b/Classes/ContentObject/Relation.php index 9d8017df9..74edfaf4c 100644 --- a/Classes/ContentObject/Relation.php +++ b/Classes/ContentObject/Relation.php @@ -150,7 +150,7 @@ protected function getRelatedItems(ContentObjectRenderer $parentContentObject): $fieldTCA = $this->tcaService->getConfigurationForField($table, $field); if (isset($fieldTCA['config']['MM']) && trim($fieldTCA['config']['MM']) !== '') { - $relatedItems = $this->getRelatedItemsFromMMTable($table, $overlayUid, $fieldTCA); + $relatedItems = $this->getRelatedItemsFromMMTable($table, $overlayUid, $fieldTCA, $parentContentObject); } else { $relatedItems = $this->getRelatedItemsFromForeignTable($table, $overlayUid, $fieldTCA, $parentContentObject); } @@ -169,8 +169,12 @@ protected function getRelatedItems(ContentObjectRenderer $parentContentObject): * @throws AspectNotFoundException * @throws DBALException */ - protected function getRelatedItemsFromMMTable(string $localTableName, int $localRecordUid, array $localFieldTca): array - { + protected function getRelatedItemsFromMMTable( + string $localTableName, + int $localRecordUid, + array $localFieldTca, + ContentObjectRenderer $parentContentObject + ): array { $relatedItems = []; $foreignTableName = $localFieldTca['config']['foreign_table']; $foreignTableTca = $this->tcaService->getTableConfiguration($foreignTableName); @@ -192,6 +196,7 @@ protected function getRelatedItemsFromMMTable(string $localTableName, int $local } $relatedRecords = $this->getRelatedRecords($foreignTableName, ...$selectUids); + $backupData = $parentContentObject->data; foreach ($relatedRecords as $record) { if (isset($foreignTableTca['columns'][$foreignTableLabelField]['config']['foreign_table']) && !empty($this->configuration['enableRecursiveValueResolution']) @@ -212,8 +217,10 @@ protected function getRelatedItemsFromMMTable(string $localTableName, int $local if ($this->getLanguageUid() > 0) { $record = $this->frontendOverlayService->getOverlay($foreignTableName, $record); } - $relatedItems[] = $record[$foreignTableLabelField]; + $parentContentObject->data = $record; + $relatedItems[] = $parentContentObject->stdWrap($record[$foreignTableLabelField], $this->configuration); } + $parentContentObject->data = $backupData; return $relatedItems; }