lookup = Database::queryKeyValueList("SELECT gxl.locationid, GROUP_CONCAT(gxl.groupid SEPARATOR ', ') AS grps FROM passthrough_group_x_location gxl WHERE locationid IN (:allowedLocationIds) GROUP BY locationid", compact('allowedLocationIds')); } public function getColumnHtml(int $locationId): string { return htmlspecialchars($this->lookup[$locationId] ?? ''); } public function getEditUrl(int $locationId): string { if (!User::hasPermission('.passthrough.assign', $locationId)) return ''; return '?do=passthrough&show=assignlocation&locationid=' . $locationId; } public function header(): string { return Dictionary::translateFileModule('passthrough', 'module', 'location-column-header'); } public function priority(): int { return 4000; } public function propagateColumn(): bool { return true; } } return new PassthroughLocationColumn($allowedLocationIds);