From 217d14e6cc867c8b423fc2b82a015865ae461962 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Mummert?= Date: Sun, 1 Mar 2026 22:34:42 +0100 Subject: [PATCH] fix: sync tags relation table on import --- src/Command/ImportEventsCommand.php | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/Command/ImportEventsCommand.php b/src/Command/ImportEventsCommand.php index 74b69fb..5f074a0 100644 --- a/src/Command/ImportEventsCommand.php +++ b/src/Command/ImportEventsCommand.php @@ -212,6 +212,7 @@ class ImportEventsCommand extends Command } $this->syncOrganization($eventId); + $this->syncTags($eventId, self::DEFAULT_TAGS); } private function findEventIdByExternalId(string $externalId): int|null @@ -240,6 +241,33 @@ class ImportEventsCommand extends Command ]); } + /** + * @param int[] $tagIds + */ + private function syncTags(int $eventId, array $tagIds): void + { + $normalizedTagIds = array_values(array_unique(array_map('intval', $tagIds))); + + $this->connection->delete('tl_tags_rel', [ + 'pid' => $eventId, + 'ptable' => 'tl_calendar_events', + 'field' => 'tags', + ]); + + foreach ($normalizedTagIds as $tagId) { + if ($tagId <= 0) { + continue; + } + + $this->connection->insert('tl_tags_rel', [ + 'tag_id' => $tagId, + 'pid' => $eventId, + 'ptable' => 'tl_calendar_events', + 'field' => 'tags', + ]); + } + } + private function generateAlias(string $title, int $startDate, string $preferredAlias, int|null $eventId): string { $candidate = $preferredAlias !== '' ? $this->normalizeAlias($preferredAlias) : '';