Skip to content

Commit bd0c416

Browse files
committed
Finish merge of 29e7442
1 parent ab457d2 commit bd0c416

1 file changed

Lines changed: 24 additions & 11 deletions

File tree

src/Cp/Html/MenuHtml.php

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -174,18 +174,31 @@ public function siteMenuItems(
174174

175175
$totalSites += count($groupSites);
176176

177-
$groupSiteItems = $groupSites->map(fn (Site $site) => [
178-
'status' => $sites[$site->id]['status'] ?? null,
179-
'label' => t($site->getName(), category: 'site'),
180-
'url' => Url::cpUrl($path, ['site' => $site->handle] + $params),
181-
'hidden' => ! isset($sites[$site->id]),
182-
'selected' => $site->id === $selectedSite?->id,
183-
'attributes' => [
184-
'data' => [
185-
'site-id' => $site->id,
177+
$groupSiteItems = $groupSites->map(function (Site $site) use ($sites, $path, $params, $selectedSite) {
178+
if (isset($params['returnUrl'])) {
179+
// swap the `site` param in the `returnUrl` URL too
180+
$params['returnUrl'] = str_replace(':QS:', '?', $params['returnUrl'], $count);
181+
$params['returnUrl'] = Url::url($params['returnUrl'], [
182+
'site' => $site->handle,
183+
]);
184+
if ($count !== 0) {
185+
$params['returnUrl'] = str_replace('?', ':QS:', $params['returnUrl']);
186+
}
187+
}
188+
189+
return [
190+
'status' => $sites[$site->id]['status'] ?? null,
191+
'label' => t($site->getName(), category: 'site'),
192+
'url' => Url::cpUrl($path, ['site' => $site->handle] + $params),
193+
'hidden' => ! isset($sites[$site->id]),
194+
'selected' => $site->id === $selectedSite?->id,
195+
'attributes' => [
196+
'data' => [
197+
'site-id' => $site->id,
198+
],
186199
],
187-
],
188-
]);
200+
];
201+
});
189202

190203
if ($config['showSiteGroupHeadings']) {
191204
$items[] = [

0 commit comments

Comments
 (0)