database->fetch($sql, $id); } public const SKUPINA_COOKIE = 'obvodSkupina'; /** * Základní informace o obvodech. * @return array */ public function getObvody(?string $skupina = null): array { if ($skupina === null || $skupina === '') { return $this->database->fetchAll('SELECT * FROM OBVOD ORDER BY CISLO'); } return $this->database->fetchAll( 'SELECT * FROM OBVOD WHERE SKUPINA = ? ORDER BY CISLO', $skupina, ); } /** * @return list */ public function getSkupiny(): array { $radky = $this->database->fetchAll( "SELECT DISTINCT SKUPINA FROM OBVOD WHERE SKUPINA IS NOT NULL AND LTRIM(RTRIM(SKUPINA)) <> '' ORDER BY SKUPINA", ); return array_map(static fn(Row $radek): string => (string) $radek->SKUPINA, $radky); } public function vyberSkupinu(?string $pozadovana, ?string $ulozena): string { $skupiny = $this->getSkupiny(); if ($pozadovana !== null && in_array($pozadovana, $skupiny, true)) { return $pozadovana; } if ($ulozena !== null && in_array($ulozena, $skupiny, true)) { return $ulozena; } return $skupiny[0] ?? ''; } }