From: Steve Sutton Date: Fri, 18 Mar 2016 13:09:58 +0000 (-0400) Subject: Update the events array for agenda view X-Git-Tag: v1.0.0^2~162^2~12 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/index.cgi?a=commitdiff_plain;h=c16a2216306e1709b705cf17c1310142f8e619c4;p=WP-Plugins%2Fglm-member-db-events.git Update the events array for agenda view repeating and ongoing events will need to be output for each day they are in. --- diff --git a/models/front/events/list.php b/models/front/events/list.php index e5f4fe3..825da1c 100644 --- a/models/front/events/list.php +++ b/models/front/events/list.php @@ -69,17 +69,17 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $toDate = date('m/d/Y', strtotime( '+ 7 days' )); break; default: - $toDate = date('m/d/Y', strtotime( '+ 1 month' )); + $toDate = date('m/d/Y', strtotime( '+ 2 weeks' )); break; } } else { - $toDate = date('m/d/Y', strtotime( '+ 1 month' )); + $toDate = date('m/d/Y', strtotime( '+ 2 weeks' )); } } if ( $fromDate && $toDate ) { $from = date('Y-m-d', strtotime($fromDate)); $to = date('Y-m-d', strtotime($toDate)); - $this->dateRange = "start_time BETWEEN '{$from}' AND '{$to}'"; + $this->dateRange = "start_time BETWEEN CAST('{$from}' AS DATE) AND CAST('{$to}' as DATE)"; } //echo '
$this->dateRange: ' . print_r($this->dateRange, true) . '
'; @@ -116,9 +116,20 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $eventsByDate = array(); if ($events) { foreach ( $events as $event ) { - $eventDate = date('M j, l', strtotime($event['starting_date'])); - $eventsByDate[$eventDate][] = $event; + foreach ( $event['times'] as $eventTime ) { + $eventDateTime = mktime( + 0, 0, 0, + date('n', $eventTime['start_time']['timestamp']), + date('j', $eventTime['start_time']['timestamp']), + date('Y', $eventTime['start_time']['timestamp']) + ); + $event['starting_date'] = $eventTime['start_time']['timestamp']; + $event['ending_date'] = $eventTime['end_time']['timestamp']; + $event['hasSameTimes'] = ($event['starting_date'] == $event['ending_date']) ? 1 : 0; + $eventsByDate[$eventDateTime][$eventTime['start_time']['timestamp']] = $event; + } } + ksort($eventsByDate); } //echo '
$eventsByDate: ' . print_r($eventsByDate, true) . '
'; //if ($eventNameSearch) { diff --git a/views/front/events/agenda.html b/views/front/events/agenda.html index 20d750f..0032d10 100644 --- a/views/front/events/agenda.html +++ b/views/front/events/agenda.html @@ -44,7 +44,8 @@ {foreach $eventsByDate as $date => $events}
- {$date} + {$date|date_format:"%b %e"}
+ {$date|date_format:"%A"}
{foreach $events as $event} @@ -54,6 +55,9 @@ {$cat.name}:
{/foreach} {$event.name} + {if !$event.hasSameTimes} + {$event.starting_date|date_format:"%l %P"} - {$event.ending_date|date_format:"%l %P"} + {/if}
{/foreach}