Update the events array for agenda view
authorSteve Sutton <steve@gaslightmedia.com>
Fri, 18 Mar 2016 13:09:58 +0000 (09:09 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Fri, 18 Mar 2016 13:09:58 +0000 (09:09 -0400)
repeating and ongoing events will need to be output for each day they
are in.

models/front/events/list.php
views/front/events/agenda.html

index e5f4fe3..825da1c 100644 (file)
@@ -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 '<pre>$this->dateRange: ' . print_r($this->dateRange, true) . '</pre>';
 
@@ -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 '<pre>$eventsByDate: ' . print_r($eventsByDate, true) . '</pre>';
         //if ($eventNameSearch) {
index 20d750f..0032d10 100644 (file)
@@ -44,7 +44,8 @@
             {foreach $eventsByDate as $date => $events}
                 <div class="row glm-event-day-row">
                     <div class="small-3 columns">
-                        {$date}
+                        <strong>{$date|date_format:"%b %e"}</strong><br>
+                        {$date|date_format:"%A"}
                     </div>
                     <div class="small-9 columns">
                         {foreach $events as $event}
@@ -54,6 +55,9 @@
                                     {$cat.name}:<br>
                                 {/foreach}
                                 <a href="{$siteBaseUrl}event-detail/{$event.name_slug}/?glm_event_from={$fromDate|unescape:"html"}">{$event.name}</a>
+                                {if !$event.hasSameTimes}
+                                {$event.starting_date|date_format:"%l %P"} - {$event.ending_date|date_format:"%l %P"}
+                                {/if}
                             </div>
                         </div>
                         {/foreach}