diff --git a/src/EventListener/OrganizationListingTemplateDataListener.php b/src/EventListener/OrganizationListingTemplateDataListener.php index aa49eed..ee4cdbd 100644 --- a/src/EventListener/OrganizationListingTemplateDataListener.php +++ b/src/EventListener/OrganizationListingTemplateDataListener.php @@ -312,6 +312,22 @@ class OrganizationListingTemplateDataListener )->fetchAllAssociative(); } + if ([] === $rows) { + $rows = $this->connection->executeQuery( + 'SELECT r.pid AS organization_id, r.tag_id, t.tag AS label FROM tl_tags_rel r INNER JOIN tl_tags t ON t.id = r.tag_id WHERE r.field = ? AND r.pid IN (?) ORDER BY r.pid ASC, r.tag_id ASC', + ['tags', $organizationIds], + [ParameterType::STRING, ArrayParameterType::INTEGER], + )->fetchAllAssociative(); + } + + if ([] === $rows) { + $rows = $this->connection->executeQuery( + 'SELECT r.pid AS organization_id, r.tag_id, t.tag AS label FROM tl_tags_rel r INNER JOIN tl_tags t ON t.id = r.tag_id WHERE r.pid IN (?) ORDER BY r.pid ASC, r.tag_id ASC', + [$organizationIds], + [ArrayParameterType::INTEGER], + )->fetchAllAssociative(); + } + $map = []; $seen = []; @@ -361,6 +377,22 @@ class OrganizationListingTemplateDataListener [ParameterType::STRING, ArrayParameterType::STRING], )->fetchAllAssociative(); + if ([] === $rows) { + $rows = $this->connection->executeQuery( + 'SELECT o.title, r.tag_id, t.tag AS label FROM tl_organization o INNER JOIN tl_tags_rel r ON r.pid = o.id AND r.field = ? INNER JOIN tl_tags t ON t.id = r.tag_id WHERE o.title IN (?) ORDER BY o.title ASC, r.tag_id ASC', + ['tags', $titles], + [ParameterType::STRING, ArrayParameterType::STRING], + )->fetchAllAssociative(); + } + + if ([] === $rows) { + $rows = $this->connection->executeQuery( + 'SELECT o.title, r.tag_id, t.tag AS label FROM tl_organization o INNER JOIN tl_tags_rel r ON r.pid = o.id INNER JOIN tl_tags t ON t.id = r.tag_id WHERE o.title IN (?) ORDER BY o.title ASC, r.tag_id ASC', + [$titles], + [ArrayParameterType::STRING], + )->fetchAllAssociative(); + } + $map = []; $seen = [];