2 Commits

Author SHA1 Message Date
Jürgen Mummert e5656424bc feat: map external_location to location_id 2026-03-01 22:39:45 +01:00
Jürgen Mummert 217d14e6cc fix: sync tags relation table on import 2026-03-01 22:34:42 +01:00
+29
View File
@@ -196,6 +196,7 @@ class ImportEventsCommand extends Command
'url' => sprintf('https://kirchspiel-nossener-land.de/termine/%s', $alias), 'url' => sprintf('https://kirchspiel-nossener-land.de/termine/%s', $alias),
'jumpTo' => 0, 'jumpTo' => 0,
'articleId' => 0, 'articleId' => 0,
'location_id' => (int) ($event['external_location'] ?? 0),
'target' => 1, 'target' => 1,
'termsAccepted' => '1', 'termsAccepted' => '1',
'tags' => serialize(self::DEFAULT_TAGS), 'tags' => serialize(self::DEFAULT_TAGS),
@@ -212,6 +213,7 @@ class ImportEventsCommand extends Command
} }
$this->syncOrganization($eventId); $this->syncOrganization($eventId);
$this->syncTags($eventId, self::DEFAULT_TAGS);
} }
private function findEventIdByExternalId(string $externalId): int|null private function findEventIdByExternalId(string $externalId): int|null
@@ -240,6 +242,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 private function generateAlias(string $title, int $startDate, string $preferredAlias, int|null $eventId): string
{ {
$candidate = $preferredAlias !== '' ? $this->normalizeAlias($preferredAlias) : ''; $candidate = $preferredAlias !== '' ? $this->normalizeAlias($preferredAlias) : '';