From dd7e95567ece42a0dd946e3429b2aa9e8c63ebf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erik=20V=C3=A4nttinen?= Date: Thu, 14 Mar 2024 10:58:09 +0200 Subject: [PATCH] TMS-1013: Compare query parameters to start date for recurring events --- lib/Formatters/EventzFormatter.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/Formatters/EventzFormatter.php b/lib/Formatters/EventzFormatter.php index f496847a..d35f0928 100644 --- a/lib/Formatters/EventzFormatter.php +++ b/lib/Formatters/EventzFormatter.php @@ -62,7 +62,7 @@ public function format( array $layout ) : array { // Create recurring events $event_data['events'] = $events ?? []; if ( ! empty( $event_data['events'] ) ) { - $events = self::create_recurring_events( $event_data ); + $events = self::create_recurring_events( $event_data, $query_params ); } $manual_events = []; @@ -101,10 +101,11 @@ public function format( array $layout ) : array { * Create recurring events as single item. * * @param array $events Events. + * @param array $query_params Query parameters. * * @return void */ - public static function create_recurring_events( $events ) { + public static function create_recurring_events( $events, $query_params ) { $recurring_events = []; if( ! empty( $events['events'] ) ) { @@ -127,6 +128,11 @@ public static function create_recurring_events( $events ) { list( $startPart, $endPart ) = explode( ' - ', $date['date'], 2 ); list( $startDate, $startTime ) = explode( ' ', $startPart, 2 ); + // Show only events with dates after start_date in query parameters + if ( strtotime( $query_params['start'] ) > strtotime( $startDate ) ) { + continue; + } + // Check if endPart includes date & time if ( strpos($endPart, ' ') ) { list( $endDate, $endTime ) = explode( ' ', $endPart, 2 );