Skip to content

Commit 02be70d

Browse files
authored
Merge pull request #18069 from craftcms/bugfix/sites-menu
Don't show site selection menus when not necessary - part 2
2 parents cb884e6 + 8e7d77e commit 02be70d

File tree

4 files changed

+10
-4
lines changed

4 files changed

+10
-4
lines changed

src/helpers/Cp.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3634,6 +3634,8 @@ public static function normalizeMenuItems(array $items): array
36343634
/**
36353635
* Returns a menu item array for the given sites, possibly grouping them by site group.
36363636
*
3637+
* If only one site is meant to be shown, an empty array will be returned.
3638+
*
36373639
* @param array<int,Site|array{site:Site,status?:string}> $sites
36383640
* @param Site|null $selectedSite
36393641
* @param array $config
@@ -3671,6 +3673,8 @@ public static function siteMenuItems(
36713673
$params = $request->getQueryParamsWithoutPath();
36723674
unset($params['fresh']);
36733675

3676+
$totalSites = 0;
3677+
36743678
foreach ($siteGroups as $siteGroup) {
36753679
$groupSites = $siteGroup->getSites();
36763680
if (!$config['includeOmittedSites']) {
@@ -3681,6 +3685,8 @@ public static function siteMenuItems(
36813685
continue;
36823686
}
36833687

3688+
$totalSites += count($groupSites);
3689+
36843690
$groupSiteItems = array_map(fn(Site $site) => [
36853691
'status' => $sites[$site->id]['status'] ?? null,
36863692
'label' => Craft::t('site', $site->name),
@@ -3705,7 +3711,7 @@ public static function siteMenuItems(
37053711
}
37063712
}
37073713

3708-
return $items;
3714+
return $totalSites > 1 ? $items : [];
37093715
}
37103716

37113717
/**

src/templates/_layouts/elementindex.twig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
iconAltText: 'Site'|t('app'),
3131
label: selectedSite.name|t('site'),
3232
menu: {
33-
items: siteMenuItems|length > 1 ? siteMenuItems : null,
33+
items: siteMenuItems,
3434
label: 'Select site'|t('app')
3535
}
3636
}) %}

src/templates/globals/_edit.twig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
icon: 'world',
1111
label: requestedSite.name|t('site'),
1212
menu: {
13-
items: siteMenuItems|length > 1 ? siteMenuItems : null,
13+
items: siteMenuItems,
1414
label: 'Select site'|t('app')
1515
},
1616
}] %}

src/web/CpScreenResponseFormatter.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ private function _formatTemplate(YiiResponse $response, CpScreenResponseBehavior
151151
'label' => Craft::t('site', $behavior->site->name),
152152
'menu' => [
153153
'label' => Craft::t('app', 'Select site'),
154-
'items' => count($siteMenuItems) > 1 ? $siteMenuItems : null,
154+
'items' => $siteMenuItems,
155155
],
156156
]);
157157
}

0 commit comments

Comments
 (0)