Skip to content

Commit

Permalink
Merge branch 'TMS-1013' into stage
Browse files Browse the repository at this point in the history
eebbi committed Mar 20, 2024
2 parents 2cdae97 + 0cf91e2 commit cc44048
Showing 3 changed files with 22 additions and 7 deletions.
17 changes: 13 additions & 4 deletions lib/Eventz.php
Original file line number Diff line number Diff line change
@@ -96,7 +96,16 @@ public static function normalize_event( $event ) : array {
$image = $event->images->imageMobile->url;
}

$is_recurring = isset( $event->event->dates ) ? count( $event->event->dates ) > 1 : ( isset( $event->event->entries ) ? count( $event->event->entries ) >= 1 : null );
// Not recurring by default.
$is_recurring = false;

// Check if event has recurring dates or weekly entries
if ( isset( $event->event->dates ) && count( $event->event->dates ) > 1 ) {
$is_recurring = true;
}
elseif ( isset( $event->event->entries ) && count( $event->event->entries ) >= 1 ) {
$is_recurring = true;
}

return [
'name' => $event->name ?? null,
@@ -427,7 +436,7 @@ public static function get_event_entries( $event ) {

// Loop through days and get the dates each week
foreach ( $entry_data as $entry ) {
if ( date( 'D', strtotime( $entry['day_of_week'] ) ) != $start_date->format( 'D' ) ) {
if ( date( 'D', strtotime( $entry['day_of_week'] ) ) !== $start_date->format( 'D' ) ) {
$day_of_week = date( 'D', strtotime( $entry['day_of_week'] ) );
$start_date->modify( "next $day_of_week" );
}
@@ -442,9 +451,9 @@ public static function get_event_entries( $event ) {
$current_end->format( 'H.i' )
);

$entries[] = [
$entries[] = [
'date' => $event_dates,
'is_sold_out' => $entry['sold_out'],
'is_sold_out' => $entry['sold_out'] ?? '',
];

$start_date->modify( '+1 week' );
10 changes: 8 additions & 2 deletions lib/Formatters/EventzFormatter.php
Original file line number Diff line number Diff line change
@@ -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 = [];
@@ -102,10 +102,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'] ) ) {
@@ -128,6 +129,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 ( isset( $query_params['start'] ) && strtotime( $query_params['start'] ) > strtotime( $startDate ) ) {
continue;
}

// Check if endPart includes date & time
if ( strpos($endPart, ' ') ) {
list( $endDate, $endTime ) = explode( ' ', $endPart, 2 );
2 changes: 1 addition & 1 deletion models/page-events-search.php
Original file line number Diff line number Diff line change
@@ -238,7 +238,7 @@ protected function do_get_events( array $params ) : array {

if ( ! empty( $event_data['events'] ) ) {

$event_data = EventzFormatter::create_recurring_events( $event_data );
$event_data = EventzFormatter::create_recurring_events( $event_data, $params );

$event_data['events'] = ( new EventzFormatter() )->format_events( $event_data['events'] );

0 comments on commit cc44048

Please sign in to comment.