From ee6a2f2f0090429a9548a02d806fa2aadb2bc486 Mon Sep 17 00:00:00 2001 From: "John R. D'Orazio" Date: Sat, 2 Nov 2024 17:09:31 +0100 Subject: [PATCH] ensure diocesan calendar_id is valid for given national calendar --- php/src/LitSettings.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/php/src/LitSettings.php b/php/src/LitSettings.php index 42c711b..a692d56 100644 --- a/php/src/LitSettings.php +++ b/php/src/LitSettings.php @@ -161,7 +161,19 @@ private function isValidNationalCalendar($value) */ private function isValidDiocesanCalendar($value) { - return $value !== "" && $this->Metadata !== null && in_array($value, $this->Metadata["diocesan_calendars_keys"]); + if ($this->NationalCalendar === null) { + return $value !== "" && $this->Metadata !== null && in_array($value, $this->Metadata["diocesan_calendars_keys"]); + } else { + if (null === $this->Metadata) { + return false; + } + $DiocesanCalendarsForNation = array_values(array_filter( + $this->Metadata["diocesan_calendars"], + fn ($calendar) => $calendar["nation"] === $this->NationalCalendar + )); + $DiocesanCalendarIds = array_column($DiocesanCalendarsForNation, "calendar_id"); + return $value !== "" && in_array($value, $DiocesanCalendarIds); + } } /**