Map: organization popup links and backend page selector

This commit is contained in:
Jürgen Mummert
2026-02-26 22:11:55 +01:00
parent 51a92ea45e
commit 229f99ea19
7 changed files with 74 additions and 4 deletions
+15 -1
View File
@@ -31,7 +31,7 @@ class MapModuleDataProvider
/**
* @return list<array{type:string,markerType:string,id:int,title:string,latitude:float,longitude:float,extra:array<string,mixed>}>
*/
public function getMapItems(bool $includeOrganizations = true, bool $includeEvents = true, bool $includeExternalOrganizations = false, array $selectedOrganizationTagIds = []): array
public function getMapItems(bool $includeOrganizations = true, bool $includeEvents = true, bool $includeExternalOrganizations = false, array $selectedOrganizationTagIds = [], string $organizationListBaseUrl = ''): array
{
if (!$includeOrganizations && !$includeEvents) {
return [];
@@ -102,6 +102,7 @@ class MapModuleDataProvider
'extra' => [
'organizationTagIds' => $tagData['ids'],
'organizationTagLabels' => $tagData['labels'],
'detailUrl' => $this->buildOrganizationDetailUrl($organizationListBaseUrl, $id),
],
];
}
@@ -498,6 +499,19 @@ class MapModuleDataProvider
}
}
private function buildOrganizationDetailUrl(string $baseUrl, int $organizationId): string
{
$normalizedBaseUrl = trim($baseUrl);
if ('' === $normalizedBaseUrl || $organizationId <= 0) {
return '';
}
$separator = str_contains($normalizedBaseUrl, '?') ? '&' : '?';
return sprintf('%s%sshow=%d', $normalizedBaseUrl, $separator, $organizationId);
}
/**
* @param list<string> $candidates
*/