From 1a4150ee6d8bf54311a3c1ed60cc66f8dde741c3 Mon Sep 17 00:00:00 2001 From: Bart van Gennep Date: Sun, 18 Nov 2018 23:11:07 +0100 Subject: [PATCH] Fixed import of multiple sites in same sitegroup by clearing sitegroup cache. --- CHANGELOG.md | 1 + src/Converters/Models/Site.php | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index afb3a1bd..08bb0398 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ - Delete empty field groups on import with force ### Fixed - Fixed user field sources not being exported +- Fixed import of multiple sites in same sitegroup ### 4.0.17 - 2018-09-24 ### Fixed diff --git a/src/Converters/Models/Site.php b/src/Converters/Models/Site.php index 0044cad3..6e0354ed 100644 --- a/src/Converters/Models/Site.php +++ b/src/Converters/Models/Site.php @@ -70,6 +70,8 @@ public function deleteRecord(Model $record): bool public function getGroupIdByName($name) { if (!isset($this->groups)) { + $this->resetCraftSitesServiceGroupsCache(); + $this->groups = []; foreach (Craft::$app->sites->getAllGroups() as $group) { $this->groups[$group->name] = $group->id; @@ -88,4 +90,18 @@ public function getGroupIdByName($name) return $this->groups[$name]; } + + /** + * Reset craft site service groups cache using reflection. + */ + private function resetCraftSitesServiceGroupsCache() + { + $obj = Craft::$app->sites; + $refObject = new \ReflectionObject($obj); + if ($refObject->hasProperty('_fetchedAllGroups')) { + $refProperty = $refObject->getProperty('_fetchedAllGroups'); + $refProperty->setAccessible(true); + $refProperty->setValue($obj, false); + } + } }