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

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
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.