From 2d178d1aed952e4beb84c9734e9be6fa3fceb4e7 Mon Sep 17 00:00:00 2001 From: Steve Sutton Date: Fri, 28 Jul 2017 14:36:45 -0400 Subject: [PATCH] Adding limit to the eventByDate array. Checking the limit when creating this array. --- models/front/events/list.php | 66 +++++++++++++++++++++++------------- 1 file changed, 42 insertions(+), 24 deletions(-) diff --git a/models/front/events/list.php b/models/front/events/list.php index 63cbf01..8876335 100644 --- a/models/front/events/list.php +++ b/models/front/events/list.php @@ -350,7 +350,9 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction switch ( $action ) { case 'front-page': + $this->postAddRecurrences = true; $events = $this->getModelEventsData( $categoryId, $limit, $memberId, $amenityId, $venueId ); + $this->postAddRecurrences = false; break; case 'event-list-name': $this->postAddRecurrences = true; @@ -700,9 +702,11 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction // group the events by the starting date $eventsByDate = $mainEvents = array(); + $eventCounter = 0; if ( $events && $action != 'featured' && $action != 'current' && $groupByDay ) { foreach ( $events as $event ) { if ( isset( $event['times'] ) && is_array( $event['times'] ) ) { + $eventCounter++; foreach ( $event['times'] as $eventTime ) { $eventDateTime = mktime( 0, @@ -724,20 +728,34 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction if ( $action == 'event-list-name' ) { break; } + if ( $limit && $eventCounter >= $limit ) { + break; + } } } } ksort($eventsByDate); + $eventCountInArray = 0; foreach ($eventsByDate as $eventDate => &$eventgroup ) { foreach ( $eventgroup as $key => &$events ) { $i = 0; foreach ( $events as $time => $times ) { ++$i; + ++$eventCountInArray; $mainEvents[$eventDate][$i][$time] = $times; ksort($mainEvents[$eventDate][$i]); + if ( $limit && $eventCountInArray === $limit ) { + break 3; + } + } + if ( $limit && $eventCountInArray === $limit ) { + break 2; } } + if ( $limit && $eventCountInArray === $limit ) { + break 1; + } } $eventsByDate = $mainEvents; // If the events are not grouped by day then they need to be sorted. @@ -768,30 +786,30 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction case 'frontPage': $view = 'eventsFrontPage.html'; // update the $eventsByDate array so it has the limit - $eventCountInArray = 0; - $newEventsByDateArray = array(); - if ( $limit ) { - foreach ( $eventsByDate as $eventDate => &$eventgroup ) { - foreach ( $eventgroup as $key => &$events ) { - $i = 0; - foreach ( $events as $time => &$times ) { - ++$i; - ++$eventCountInArray; - $newEventsByDateArray[$eventDate][$i][$time] = $times; - if ( $eventCountInArray === $limit ) { - break 3; - } - } - if ( $eventCountInArray === $limit ) { - break 2; - } - } - if ( $eventCountInArray === $limit ) { - break 1; - } - } - } - $eventsByDate = $newEventsByDateArray; + // $eventCountInArray = 0; + // $newEventsByDateArray = array(); + // if ( $limit ) { + // foreach ( $eventsByDate as $eventDate => &$eventgroup ) { + // foreach ( $eventgroup as $key => &$events ) { + // $i = 0; + // foreach ( $events as $time => &$times ) { + // ++$i; + // ++$eventCountInArray; + // $newEventsByDateArray[$eventDate][$i][$time] = $times; + // if ( $eventCountInArray === $limit ) { + // break 3; + // } + // } + // if ( $eventCountInArray === $limit ) { + // break 2; + // } + // } + // if ( $eventCountInArray === $limit ) { + // break 1; + // } + // } + // } + // $eventsByDate = $newEventsByDateArray; break; default: // No changes otherwise -- 2.17.1