Fix backend pitch visibility and tag marker mapping
This commit is contained in:
@@ -216,23 +216,36 @@ class MapModuleDataProvider
|
||||
return [];
|
||||
}
|
||||
|
||||
$tagColumns = $this->getColumnMap('tl_tags');
|
||||
$tagLabelColumn = isset($tagColumns['title']) ? 'title' : (isset($tagColumns['tag']) ? 'tag' : null);
|
||||
|
||||
if (null === $tagLabelColumn) {
|
||||
return [];
|
||||
}
|
||||
|
||||
$rows = $this->connection->executeQuery(
|
||||
'SELECT r.pid AS organization_id, r.tag_id, t.tag AS label
|
||||
sprintf(
|
||||
'SELECT r.pid AS organization_id, r.tag_id, t.%s AS label
|
||||
FROM tl_tags_rel r
|
||||
INNER JOIN tl_tags t ON t.id = r.tag_id
|
||||
WHERE r.ptable = ? AND r.field = ? AND r.pid IN (?)
|
||||
ORDER BY r.pid ASC, r.tag_id ASC',
|
||||
$tagLabelColumn,
|
||||
),
|
||||
['tl_organization', 'tags', $organizationIds],
|
||||
[ParameterType::STRING, ParameterType::STRING, ArrayParameterType::INTEGER],
|
||||
)->fetchAllAssociative();
|
||||
|
||||
if ([] === $rows) {
|
||||
$rows = $this->connection->executeQuery(
|
||||
'SELECT r.pid AS organization_id, r.tag_id, t.tag AS label
|
||||
sprintf(
|
||||
'SELECT r.pid AS organization_id, r.tag_id, t.%s AS label
|
||||
FROM tl_tags_rel r
|
||||
INNER JOIN tl_tags t ON t.id = r.tag_id
|
||||
WHERE r.ptable = ? AND r.pid IN (?)
|
||||
ORDER BY r.pid ASC, r.tag_id ASC',
|
||||
$tagLabelColumn,
|
||||
),
|
||||
['tl_organization', $organizationIds],
|
||||
[ParameterType::STRING, ArrayParameterType::INTEGER],
|
||||
)->fetchAllAssociative();
|
||||
@@ -246,13 +259,16 @@ class MapModuleDataProvider
|
||||
$tagId = (int) ($row['tag_id'] ?? 0);
|
||||
$label = trim((string) ($row['label'] ?? ''));
|
||||
|
||||
if ($organizationId <= 0 || $tagId <= 0 || '' === $label || isset($seen[$organizationId][$tagId])) {
|
||||
if ($organizationId <= 0 || $tagId <= 0 || isset($seen[$organizationId][$tagId])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$seen[$organizationId][$tagId] = true;
|
||||
$map[$organizationId]['ids'][] = (string) $tagId;
|
||||
$map[$organizationId]['labels'][] = $label;
|
||||
|
||||
if ('' !== $label) {
|
||||
$map[$organizationId]['labels'][] = $label;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($map as $organizationId => $tagData) {
|
||||
|
||||
Reference in New Issue
Block a user