From a7b7049041a49b43289a598aaad060b584b0511f Mon Sep 17 00:00:00 2001 From: i-just Date: Tue, 14 Apr 2026 10:07:25 +0200 Subject: [PATCH 1/2] get nested elements for all localised owners --- src/elements/NestedElementManager.php | 36 ++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/src/elements/NestedElementManager.php b/src/elements/NestedElementManager.php index 5d7a8294f42..007950fb4e0 100644 --- a/src/elements/NestedElementManager.php +++ b/src/elements/NestedElementManager.php @@ -1225,12 +1225,36 @@ private function createRevisions(ElementInterface $canonical, ElementInterface $ ); /** @var NestedElementInterface[] $elements */ - $elements = $this->nestedElementQuery($canonical) - ->siteId($siteIds) - ->preferSites([$canonical->siteId]) - ->unique() - ->status(null) - ->all(); + $elements = []; + $processedElementIds = []; + + foreach ($siteIds as $siteId) { + if ($siteId === $canonical->siteId) { + $owner = $canonical; + } else { + $owner = $canonical::find() + ->id($canonical->id) + ->siteId($siteId) + ->status(null) + ->one(); + + if ($owner === null) { + continue; + } + } + + $siteElements = $this->nestedElementQuery($owner) + ->status(null) + ->all(); + + /** @var NestedElementInterface $element */ + foreach ($siteElements as $element) { + if (!isset($processedElementIds[$element->id])) { + $processedElementIds[$element->id] = true; + $elements[] = $element; + } + } + } $revisionsService = Craft::$app->getRevisions(); $elementRevisionIds = []; From 4ca9e5db141fa10634791a40277f6346ddaddccd Mon Sep 17 00:00:00 2001 From: brandonkelly Date: Tue, 14 Apr 2026 07:27:08 -0700 Subject: [PATCH 2/2] Release note [ci skip] --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a1c7cc5f068..463b472501e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - Fixed a bug where nested element cards weren’t showing validation errors. ([#18690](https://github.com/craftcms/cms/pull/18690)) - Fixed a bug where read-only Matrix fields in Index mode weren’t respecting the Default Table Columns setting. ([#18684](https://github.com/craftcms/cms/issues/18684)) +- Fixed a bug where nested entries could be lost when reverting content from a revision. ([#18691](https://github.com/craftcms/cms/issues/18691)) ## 5.9.19 - 2026-04-07