query('school_year', '')); if ($schoolYear === '') { $schoolYear = $this->contextService->defaultSchoolYear(); } $semester = trim((string) $request->query('semester', '')); $filters = ['school_year' => $schoolYear]; if ($semester !== '') { $filters['semester'] = $semester; } $events = $this->queryService->listEvents($filters); return view('admin.calendar', [ 'events' => $events, 'schoolYear' => $schoolYear, 'semester' => $semester, 'defaultSemester' => $semester !== '' ? $semester : $this->contextService->defaultSemester(), 'schoolYears' => $this->schoolYearOptions($schoolYear), ]); } /** * @return list */ private function schoolYearOptions(string $selectedSchoolYear): array { $currentYear = (int) date('Y') + 1; $years = []; for ($year = $currentYear; $year >= 2023; $year--) { $years[] = ($year - 1).'-'.$year; } if ($selectedSchoolYear !== '' && ! in_array($selectedSchoolYear, $years, true)) { array_unshift($years, $selectedSchoolYear); } return array_values(array_unique($years)); } }