Worked on agenda and detail views
authorSteve Sutton <steve@gaslightmedia.com>
Thu, 17 Mar 2016 20:04:27 +0000 (16:04 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Thu, 17 Mar 2016 20:04:27 +0000 (16:04 -0400)
Agenda view groups the events by the day.
Detail view has the get directions button working.
Need to work on the map itself.
Images are not being import yet.

13 files changed:
classes/data/dataCategories.php
classes/data/dataEvents.php
css/front.css [new file with mode: 0644]
js/dashboard.js
js/front.js [new file with mode: 0644]
js/geoCoder.js [new file with mode: 0644]
models/admin/management/events.php
models/front/events/baseAction.php
models/front/events/detail.php
models/front/events/list.php
views/front/events/agenda.html
views/front/events/detail.html
views/front/events/searchForm.html

index 1680137..20c4232 100644 (file)
@@ -349,7 +349,6 @@ class GlmDataEventsCategories extends GlmDataAbstract
                 SELECT event
                   FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times
                  WHERE active
-                   AND start_time >= now()
             )
         ) ";
         $order = "T.name";
index 2a2fab3..ea5c815 100644 (file)
@@ -86,6 +86,8 @@ class GlmDataEvents extends GlmDataAbstract
      * @access public
      */
     public $postAddTimes = false;
+    public $postAddLocations = false;
+    public $dateRange = "start_time >= now()";
 
     /**
      * Constructor
@@ -340,7 +342,7 @@ class GlmDataEvents extends GlmDataAbstract
             include_once  GLM_MEMBERS_EVENTS_PLUGIN_CLASS_PATH . '/data/dataTimes.php';
             $timeData = new GlmDataEventsTimes( $this->wpdb, $this->config );
             $where = "
-                T.start_time >= now()
+                T." . $this->dateRange . "
             AND T.active
             AND T.event = {$r['id']}
                 ";
@@ -350,10 +352,21 @@ class GlmDataEvents extends GlmDataAbstract
             // get the first element of times array
             if ( !empty( $times ) ) {
                  $r['starting_date'] = $times[key($times)]['start_time']['datetime'];
-                 end($times);
+                 end($times); // goto the last element of the array
                  $r['ending_date'] = $times[key($times)]['end_time']['datetime'];
             }
         }
+        if ($this->postAddLocations) {
+            $r['locations'] = array();
+            include_once  GLM_MEMBERS_EVENTS_PLUGIN_CLASS_PATH . '/data/dataLocations.php';
+            $locationData = new GlmDataEventsLocations( $this->wpdb, $this->config  );
+            $where = "T.event = {$r['id']}";
+            $locations = $locationData->getList( $where );
+            //echo '<pre>$locations: ' . print_r($locations, true) . '</pre>';
+            if ( !empty( $locations ) ) {
+                $r['locations'] = $locations[key($locations)];
+            }
+        }
 
 
         return $r;
@@ -483,8 +496,8 @@ class GlmDataEvents extends GlmDataAbstract
                 AND event IN (
                         SELECT event
                           FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times AS ET
-                         WHERE active
-                           AND start_time >= now()
+                         WHERE status = " . $this->config['status_numb']['Active'] . "
+                           AND " . $this->dateRange . "
                     )
                 )
             ";
diff --git a/css/front.css b/css/front.css
new file mode 100644 (file)
index 0000000..56adc3e
--- /dev/null
@@ -0,0 +1,7 @@
+#glm-event-agenda-view {
+    margin-top: 40px;
+}
+#glm-event-wrapper.event-detail {
+    max-width: 650px;
+    margin: 0 auto;
+}
index 88b36f5..350d33d 100644 (file)
@@ -2,4 +2,7 @@
     console.info('Running GLM Event plugin js');
     $('#glm-event-from').datepicker();
     $('#glm-event-to').datepicker();
+    $('#glm-event-detail-backtosearch').click(function(){
+        window.history.back();
+    });
 }).call(this);
diff --git a/js/front.js b/js/front.js
new file mode 100644 (file)
index 0000000..a1daf50
--- /dev/null
@@ -0,0 +1,15 @@
+var EventFront = {
+    init: function()
+    {
+        jQuery("#EventDrivingDirectionsForm").submit(function(){
+            var place = jQuery("#EventLocation").val().replace( new RegExp( " ", "g" ), '+' );
+            var lat = jQuery("#EventLat").val();
+            var lon = jQuery("#EventLon").val();
+            var url = "https://maps.google.com/maps?daddr=" + place + "%40" + lat + "," + lon;
+            window.open(url, '_blank');
+            return false;
+        });
+    }
+};
+
+jQuery(document).ready(EventFront.init);
diff --git a/js/geoCoder.js b/js/geoCoder.js
new file mode 100644 (file)
index 0000000..f7a194b
--- /dev/null
@@ -0,0 +1,92 @@
+// Option would be to make this configurable so it can be used
+// with one field (loc) like event
+// or multiple fields like member (street, city, state, zip)
+var GLM_GeoMap = {
+    defaultLat: 45.3748385,
+    defaultLon: -84.9592251,
+    geocoder: null,
+    map: null,
+    mapType: 'small',
+    defaultZoom: 12,
+    setDefaultLat: function(lat) {
+      GLM_GeoMap.defaultLat = lat;
+    },
+    setDefaultLon: function(lon) {
+        GLM_GeoMap.defaultLon = lon;
+    },
+    initialize: function() {
+        GLM_GeoMap.createMap();
+        var lat = $("#event-lat").attr('rel');
+        var lon = $("#event-lon").attr('rel');
+        if (lat && lon) {
+            GLM_GeoMap.createWithLatLon(lat, lon);
+        }
+    },
+    initializeLargeMap: function(){
+        GLM_GeoMap.mapType = 'large';
+        GLM_GeoMap.createMap();
+        var lat = $("#event-lat").attr('rel');
+        var lon = $("#event-lon").attr('rel');
+        if (lat && lon) {
+            GLM_GeoMap.createWithLatLon(lat, lon);
+        }
+    },
+    createMap: function() {
+        if (GLM_GeoMap.mapType == 'small') {
+            var myOptions = {
+                draggable: false,
+                zoom: GLM_GeoMap.defaultZoom,
+                mapTypeId: google.maps.MapTypeId.ROADMAP,
+                disableDefaultUI: true,
+                panControl: false,
+                zoomControl: false,
+                mapTypeControl: false,
+                scaleControl: false,
+                streetViewControl: false,
+                overviewMapControl: false,
+                scrollwheel: false,
+                disableDoubleClickZoom: true
+            };
+            GLM_GeoMap.map = new google.maps.Map(
+                document.getElementById("eventDetail-map"),
+                myOptions
+            );
+        }
+        if (GLM_GeoMap.mapType == 'large') {
+            GLM_GeoMap.defaultZoom = 15;
+            var myOptions = {
+                draggable: true,
+                zoom: GLM_GeoMap.defaultZoom,
+                mapTypeId: google.maps.MapTypeId.ROADMAP,
+                disableDefaultUI: true,
+                panControl: true,
+                zoomControl: true,
+                mapTypeControl: true,
+                scaleControl: true,
+                streetViewControl: true,
+                overviewMapControl: true,
+                scrollwheel: false,
+                disableDoubleClickZoom: true
+            };
+            GLM_GeoMap.map = new google.maps.Map(
+                document.getElementById("map_canvas"),
+                myOptions
+            );
+        }
+    },
+    addMarkerToMap: function(LatLng) {
+        var marker = new google.maps.Marker({
+            map: GLM_GeoMap.map,
+            position: LatLng,
+            draggable: false
+        });
+        GLM_GeoMap.map.setCenter(LatLng);
+        GLM_GeoMap.map.setZoom(GLM_GeoMap.defaultZoom);
+    },
+    createWithLatLon: function(lat, lon) {
+        GLM_GeoMap.addMarkerToMap(new google.maps.LatLng(
+            lat,
+            lon
+        ));
+    }
+}
\ No newline at end of file
index 7198e38..fcc3850 100644 (file)
@@ -15,6 +15,7 @@
 
 // Load Management Events data abstract
 require_once GLM_MEMBERS_EVENTS_PLUGIN_CLASS_PATH.'/data/dataManagement.php';
+require_once(GLM_MEMBERS_EVENTS_PLUGIN_CLASS_PATH.'/data/dataEvents.php');
 require_once(GLM_MEMBERS_EVENTS_PLUGIN_CLASS_PATH.'/data/dataRecurrences.php');
 
 /**
@@ -499,22 +500,24 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement
                   FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "events
                  WHERE old_event_id = '" . esc_sql( trim($event['id']) ) . "'";
                 $found = $this->wpdb->get_row($sql, ARRAY_A);
-                echo '<pre>$found: ' . print_r($found, true) . '</pre>';
+                //echo '<pre>$found: ' . print_r($found, true) . '</pre>';
                 $intro = substr(strip_tags($event['descr']), 0, 250);
                 if ( isset($found) ) {
                     $this->wpdb->update(
                         GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . 'events',
                         array(
-                            'status'       => (($event['visable'] == '1')
-                                                ? $this->config['status_numb']['active']
-                                                : $this->config['status_numb']['Inactive']),
-                            'created'      => $event['create_date'],
-                            'updated'      => $event['create_date'],
-                            'approved'     => $event['approved_date'],
-                            'name'         => $event['header'],
-                            'intro'        => $intro,
-                            'descr'        => $event['descr'],
-                            'image'        => $event['image'],
+                            'status'   => (($event['visable'])
+                                ? $this->config['status_numb']['Active']
+                                : $this->config['status_numb']['Inactive']),
+                            'created'  => $event['create_date'],
+                            'updated'  => $event['create_date'],
+                            'approved' => $event['approved_date'],
+                            'name'     => $event['header'],
+                            'intro'    => $intro,
+                            'descr'    => $event['descr'],
+                            'image'    => $event['image'],
+                            'cost'     => $event['cost'],
+                            'url'      => $event['url'],
                         ),
                         array( 'old_event_id' => $event['id'] ),
                         array(
@@ -526,28 +529,32 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement
                              '%s',
                              '%s',
                              '%s',
+                             '%s',
+                             '%s',
                         ),
                         array( '%d' )
                     );
                     $eventId  = $found['id'];
                 } else {
                     $eventData = array(
-                            'status'       => (($event['visable'] == '1')
-                                                ? $this->config['status_numb']['active']
-                                                : $this->config['status_numb']['Inactive']),
-                            'created'      => $event['create_date'],
-                            'updated'      => $event['create_date'],
-                            'approved'     => $event['approved_date'],
-                            'name'         => $event['header'],
-                            'intro'        => $intro,
-                            'descr'        => $event['descr'],
-                            'image'        => $event['image'],
+                            'status'   => (($event['visable'] == '1')
+                                ? $this->config['status_numb']['Active']
+                                : $this->config['status_numb']['Inactive']),
+                            'created'  => $event['create_date'],
+                            'updated'  => $event['create_date'],
+                            'approved' => $event['approved_date'],
+                            'name'     => $event['header'],
+                            'intro'    => $intro,
+                            'descr'    => $event['descr'],
+                            'image'    => $event['image'],
+                            'cost'     => $event['cost'],
+                            'url'      => $event['url'],
                             'old_event_id' => $event['id']
                         );
-                    echo '<pre>$eventData: ' . print_r($eventData, true) . '</pre>';
-                    echo '<pre>var_dump ';
-                    var_dump($eventData['intro']);
-                    echo '</pre>';
+                    //echo '<pre>$eventData: ' . print_r($eventData, true) . '</pre>';
+                    //echo '<pre>var_dump ';
+                    //var_dump($eventData['intro']);
+                    //echo '</pre>';
                     $this->wpdb->insert(
                         GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . 'events',
                         $eventData,
@@ -560,21 +567,26 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement
                              '%s',
                              '%s',
                              '%s',
+                             '%s',
+                             '%s',
                              '%d',
                         )
                     );
                     $eventId  = $this->wpdb->insert_id;
-                    var_dump( $eventId );
-                    echo '<pre>$eventId: from insert ' . print_r($eventId, true) . '</pre>';
+                    //var_dump( $eventId );
+                    //echo '<pre>$eventId: from insert ' . print_r($eventId, true) . '</pre>';
                     if ( !$eventId ) {
                         echo '<pre>SQL Error: ' . $this->wpdb->last_error . '</pre>';
                     }
                 }
                 // checking for $eventId
-                echo '<pre>$eventId: ' . print_r($eventId, true) . '</pre>';
+                //echo '<pre>$eventId: ' . print_r($eventId, true) . '</pre>';
                 if (!$eventId) {
                     die('something is wrong no eventId');
                 }
+                // generate the slug name for this new event
+                $eventAbstract = new GlmDataEvents($this->wpdb, $this->config);
+                $eventAbstract->updateSlug($eventId);
                 // category for event
                 if ( $event['topicid'] ) {
                     $this->wpdb->insert(
@@ -635,26 +647,28 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement
                 }
                 $etime = $this->getTime($event['etime']);
                 if ( $etime ) {
-                    $etime = $event['edate'] . ' ' . $etime;
+                    $etime = $event['bdate'] . ' ' . $etime;
                 } else {
-                    $etime = $event['edate'];
+                    $etime = $event['bdate'];
                 }
+                $recurData =array(
+                    'event'             => $eventId,
+                    'start_time'        => $btime,
+                    'end_time'          => $etime,
+                    'from_date'         => $event['bdate'],
+                    'to_date'           => $event['edate'],
+                    'all_day'           => $allDay,
+                    'all_dates'         => $allDates,
+                    'month_of_year'     => $monthOfYear,
+                    'week_of_month'     => $weekOfMonth,
+                    'day_of_week'       => $dayOfWeek,
+                    'by_day_of_month'   => $byDayOfMonth,
+                    'last_day_of_month' => $lastDayOfMonth
+                );
+                echo '<pre>$recurData: ' . print_r($recurData, true) . '</pre>';
                 $this->wpdb->insert(
                     GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . 'recurrences',
-                    array(
-                        'event'             => $eventId,
-                        'start_time'        => $btime,
-                        'end_time'          => $etime,
-                        'from_date'         => $event['bdate'],
-                        'to_date'           => $event['edate'],
-                        'all_day'           => $allDay,
-                        'all_dates'         => $allDates,
-                        'month_of_year'     => $monthOfYear,
-                        'week_of_month'     => $weekOfMonth,
-                        'day_of_week'       => $dayOfWeek,
-                        'by_day_of_month'   => $byDayOfMonth,
-                        'last_day_of_month' => $lastDayOfMonth
-                    ),
+                    $recurData,
                     array(
                          '%d',
                          '%s',
@@ -700,6 +714,10 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement
                         $locationData['state'] = $event['state'];
                         $locationFormat[] = '%s';
                     }
+                    if ($event['zip']) {
+                        $locationData['zip'] = $event['zip'];
+                        $locationFormat[] = '%s';
+                    }
                     if ($event['lat']) {
                         $locationData['lat'] = $event['lat'];
                         $locationFormat[] = '%s';
@@ -721,10 +739,6 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement
                         $locationData['contact_phone'] = $event['phone'];
                         $locationFormat[] = '%s';
                     }
-                    if ($event['url']) {
-                        $locationData['url'] = $event['url'];
-                        $locationFormat[] = '%s';
-                    }
                     if ($event['email']) {
                         $locationData['contact_email'] = $event['email'];
                         $locationFormat[] = '%s';
index fd985c4..7745527 100644 (file)
@@ -55,21 +55,33 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents
         if ($categoryId) {
             $events = $this->getEventsByCategory( $categoryId, $limit );
         } else {
-            $events = $this->getList();
+            $where = "T.status = " . $this->config['status_numb']['Active'] . "
+                AND T.id IN (
+                        SELECT event
+                          FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times AS ET
+                         WHERE active
+                           AND " . $this->dateRange . "
+                    )
+                ";
+            //echo '<pre>$where: ' . print_r($where, true) . '</pre>';
+            $events = $this->getList($where);
         }
-        foreach ( $events as &$event ) {
-            // grab the first from times and see if it's ongoing or not
-            if ($event['times']) {
-                reset($event['times']);
-                $firstKey = key($event['times']);
-                $event['ongoing'] = $event['times'][$firstKey]['ongoing'];
-                reset($event['times']);
+        //echo '<pre>$events: ' . print_r($events, true) . '</pre>';
+        if ( !empty($events) ) {
+            foreach ( $events as &$event ) {
+                // grab the first from times and see if it's ongoing or not
+                if ($event['times']) {
+                    reset($event['times']);
+                    $firstKey = key($event['times']);
+                    $event['ongoing'] = $event['times'][$firstKey]['ongoing'];
+                    reset($event['times']);
+                }
+                $event['dates'] = $this->getEventDate(
+                    strtotime($event['starting_date']),
+                    strtotime($event['ending_date']),
+                    'timestamp'
+                );
             }
-            $event['dates'] = $this->getEventDate(
-                strtotime($event['starting_date']),
-                strtotime($event['ending_date']),
-                'timestamp'
-            );
         }
         $this->postAddTimes = false;
         return $events;
@@ -77,14 +89,23 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents
 
     public function getModelEventData($eventId)
     {
-        $this->postAddTimes = true;
-        $event = $this->getEntry($eventId);
+        //echo '<pre>$eventId: ' . print_r($eventId, true) . '</pre>';
+        $this->postAddTimes     = true;
+        $this->postAddLocations = true;
+        $event                  = $this->getEntry($eventId);
+        //echo '<pre>$event: ' . print_r($event, true) . '</pre>';
+        if ( $event['url'] ) {
+            if ( !preg_match( '/^http:|https:/', $event['url'] ) ) {
+                $event['url'] = 'http://' . $event['url'];
+            }
+        }
         $event['dates'] = $this->getEventDate(
             strtotime($event['starting_date']),
             strtotime($event['ending_date']),
             'timestamp'
         );
-        $this->postAddTimes = false;
+        $this->postAddTimes     = false;
+        $this->postAddLocations = false;
         return $event;
     }
 
index 4ec22fa..b392d02 100644 (file)
@@ -35,6 +35,13 @@ class GLmMembersFront_events_detail extends GlmMembersFront_events_baseAction
         $action = '';
         $settings = $event = array();
 
+        if ( isset($_REQUEST['glm_event_from']) ) {
+            $fromDate = filter_var($_REQUEST['glm_event_from'], FILTER_SANITIZE_STRING);
+        } else {
+            $fromDate = date('m/d/Y');
+        }
+        $this->dateRange = "start_time >= '{$from}'";
+
         if ($eventId = filter_var($_REQUEST['eventId'], FILTER_VALIDATE_INT)) {
             $search = true;
             $action = 'event-detail';
@@ -42,6 +49,7 @@ class GLmMembersFront_events_detail extends GlmMembersFront_events_baseAction
             $search = true;
             $action = 'event-detail';
             $eventslug =  get_query_var( 'eventslug' );
+            //echo '<pre>$eventslug: ' . print_r($eventslug, true) . '</pre>';
             $sql = "
                 SELECT id
                   FROM ".GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX. "events
@@ -63,22 +71,15 @@ class GLmMembersFront_events_detail extends GlmMembersFront_events_baseAction
         switch ($action) {
         case 'event-detail':
             $event = $this->getModelEventData($eventId);
+            //echo '<pre>$event: ' . print_r($event, true) . '</pre>';
             $view = 'detail.html';
             break;
         default:
             // for the dashboard need to get list of event categories and
             // filter out the events
             $events = $this->getModelEventsData();
-            $view = 'dashboard.html';
+            $view = 'agenda.html';
             $categoryEvents = array();
-            foreach ( $categories as $cat ) {
-                $catEvents = array_filter( $events, function($data) use($cat) {
-                    return ($data['category'] == $cat['id']) ? 1 : 0;
-                } );
-                if ( !empty($catEvents) ) {
-                    $categoryEvents[$cat['id']] = $catEvents;
-                }
-            }
             break;
         }
 
@@ -87,7 +88,9 @@ class GLmMembersFront_events_detail extends GlmMembersFront_events_baseAction
             'siteBaseUrl' => GLM_MEMBERS_EVENTS_SITE_BASE_URL,
             'currentUrl'  => $_SERVER['HTTP_REFERER'],
             'categories'  => $categories,
-            'event'       => $event
+            'fromDate'    => $fromDate,
+            'event'       => $event,
+            'mainImgUrl'  => GLM_MEMBERS_PLUGIN_MEDIA_URL . '/images/large/'
         );
 
         error_reporting(E_ALL ^ E_NOTICE);
index 5e7570e..2f590ec 100644 (file)
@@ -52,13 +52,19 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
         if ( isset($_REQUEST['glm_event_from']) ) {
             $fromDate = filter_var($_REQUEST['glm_event_from'], FILTER_SANITIZE_STRING);
         } else {
-            $fromDate = false;
+            $fromDate = date('m/d/Y');
         }
         if ( isset($_REQUEST['glm_event_to']) ) {
             $toDate   = filter_var($_REQUEST['glm_event_to'], FILTER_SANITIZE_STRING);
         } else {
-            $toDate = false;
+            $toDate = date('m/d/Y', strtotime( '+ 1 month' ));
         }
+        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}'";
+        }
+        //echo '<pre>$this->dateRange: ' . print_r($this->dateRange, true) . '</pre>';
 
         if (isset($_REQUEST['event_name']) && $eventNameSearch = filter_var($_REQUEST['event_name'], FILTER_SANITIZE_STRING)) {
             $search = true;
@@ -68,7 +74,6 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
         }
 
         $categories = $this->getCategories();
-        //echo '<pre>' . print_r( $categories, true ) . '</pre>';
         wp_register_script(
             'event-dashboard-js',
             GLM_MEMBERS_EVENTS_PLUGIN_BASE_URL . '/js/dashboard.js',
@@ -78,51 +83,46 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
         );
         wp_enqueue_script('event-dashboard-js');
 
+
         switch ($action) {
         case 'event-list':
             $events = $this->getModelEventsData($categoryId);
-            $view = 'list.html';
+            $view = 'agenda.html';
             break;
         default:
-            $view = 'dashboard.html';
             $view = 'agenda.html';
             $events = $this->getModelEventsData($categoryId);
-            //foreach ( $categories as $catid => $catData ) {
-                //$catEvents = $this->getModelEventsData( $catid, 3 );
-                //if ( !empty($catEvents) ) {
-                    //$categoryEvents[$catid] = $catEvents;
-                //}
-            //}
             break;
         }
-        if ( $fromDate && $toDate ) {
-            $events = array_filter($events, function($event) use($fromDate, $toDate){
-                $fromTime       = strtotime($fromDate);
-                $toTime         = strtotime($toDate);
-                $eventStartTime = strtotime($event['starting']);
-                $eventEndTime   = strtotime($event['ending']);
-                return $toTime >= $eventStartTime && $fromTime <= $eventEndTime;
-            });
-        }
 
-        if ($eventNameSearch) {
-            $events = array_filter($events, function($event) use($eventNameSearch){
-                return preg_match('/' . preg_quote( $eventNameSearch ) . '/i', $event['title']);
-            });
+        // group the events by the starting date
+        $eventsByDate = array();
+        if ($events) {
+            foreach ( $events as $event ) {
+                $eventDate = date('M jS, l', strtotime($event['starting_date']));
+                $eventsByDate[$eventDate][] = $event;
+            }
         }
+        //echo '<pre>$eventsByDate: ' . print_r($eventsByDate, true) . '</pre>';
+        //if ($eventNameSearch) {
+            //$events = array_filter($events, function($event) use($eventNameSearch){
+                //return preg_match('/' . preg_quote( $eventNameSearch ) . '/i', $event['title']);
+            //});
+        //}
 
         // Compile template data
         $templateData = array(
-            'siteBaseUrl'=> GLM_MEMBERS_EVENTS_SITE_BASE_URL,
-            'currentUrl' => GLM_MEMBERS_EVENTS_PLUGIN_CURRENT_URL,
-            'categoryId' => $categoryId,
-            'categories' => $categories,
-            'events'     => $events,
-            'event'      => $event,
-            'catEvents'  => $categoryEvents,
-            'fromDate'   => $fromDate,
-            'toDate'     => $toDate,
-            'eventName'  => $eventNameSearch
+            'siteBaseUrl'  => GLM_MEMBERS_EVENTS_SITE_BASE_URL,
+            'currentUrl'   => GLM_MEMBERS_EVENTS_PLUGIN_CURRENT_URL,
+            'categoryId'   => $categoryId,
+            'categories'   => $categories,
+            //'events'       => $events,
+            'eventsByDate' => $eventsByDate,
+            //'event'       => $event,
+            'catEvents'    => $categoryEvents,
+            'fromDate'     => $fromDate,
+            'toDate'       => $toDate,
+            'eventName'    => $eventNameSearch
         );
 
         error_reporting(E_ALL ^ E_NOTICE);
index 2eb585c..011fc2c 100644 (file)
@@ -1,30 +1,65 @@
-<div id="glm-event-agenda-view" class="row">
-    <div class="small-12 column">
-        <div class="row" style="background:grey;">
-            <div class="small-6 column">
-                From: 03/01/2016
-            </div>
-            <div class="small-6 column">
-                From: 03/31/2016
-            </div>
-        </div>
-        {foreach $events as $event}
-        <div class="row">
-            <div class="small-6 medium-3 columns">{$event.dates}</div>
-            <div class="small-6 medium-6 columns">
-                {foreach $event.categories as $cat}
-                    {$cat.name}:<br>
-                {/foreach}
-                <a href="{$siteBaseUrl}event-detail/{$event.name_slug}/">{$event.name}</a>
-            </div>
-            <div class="small-6 medium-3 columns">
-                {if $event.ongoing}
-                Ongoing Event
-                {else}
-                Repeating Event
-                {/if}
-            </div>
+<div id="glm-event-wrapper"> 
+    <div class="row">
+        {include file='front/events/searchForm.html'}
+        {include file='front/events/shortCuts.html'}
+    </div>
+    <div id="glm-event-agenda-view" class="row">
+        <div class="small-12 column">
+            <form action="{$currentUrl}">
+                <input type="hidden" name="search" value="1">
+                <div class="row">
+                    <div class="small-3 column">
+                        <div class="row collapse prefix-radius">
+                            <div class="small-3 columns">
+                                <span class="prefix">From</span>
+                            </div>
+                            <div class="small-9 columns">
+                                <input id="glm-event-from" name="glm_event_from" value="{$fromDate}">
+                            </div>
+                        </div>
+                    </div>
+                    <div class="small-3 column">
+                        <div class="row collapse prefix-radius">
+                            <div class="small-3 columns">
+                                <span class="prefix">To</span>
+                            </div>
+                            <div class="small-9 columns">
+                                <input id="glm-event-to" name="glm_event_to" value="{$toDate}">
+                            </div>
+                        </div>
+                    </div>
+                    <div class="small-3 column">
+                        <select id="glm-event-category" name="category">
+                            <option value="">-- All Categories --</option>
+                            {foreach $categories as $cat}
+                            <option value="{$cat.id}"{if $categoryId == $cat.id} selected{/if}>{$cat.name}</option>
+                            {/foreach}
+                        </select>
+                    </div>
+                    <div class="small-3 column">
+                        <input type="submit" class="button tiny radius" value="Search">
+                    </div>
+                </div>
+            </form>
+            {foreach $eventsByDate as $date => $events}
+                <div class="row">
+                    <div class="small-3 columns">
+                        {$date}
+                    </div>
+                    <div class="small-9 columns">
+                        {foreach $events as $event}
+                        <div class="row">
+                            <div class="small-12 column">
+                                {foreach $event.categories as $cat}
+                                    {$cat.name}:<br>
+                                {/foreach}
+                                <a href="{$siteBaseUrl}event-detail/{$event.name_slug}/?glm_event_from={$fromDate|unescape:"html"}">{$event.name}</a>
+                            </div>
+                        </div>
+                        {/foreach}
+                    </div>
+                </div>
+            {/foreach}
         </div>
-        {/foreach}
     </div>
 </div>
index 0245cc7..06ec9b2 100644 (file)
@@ -1,32 +1,41 @@
-<div id="glm-event-wrapper"> 
+<div id="glm-event-wrapper" class="event-detail text-left"
     <div class="row">
-            {include file='front/events/searchForm.html'}
-            {include file='front/events/shortCuts.html'}
+        <button id="glm-event-detail-backtosearch">Back To Search</button>
     </div>
     <div class="row">
         <div class="small-12 column">
             <h1>{$event.name}</h1>
         </div>
+        {if $event.image}
         <div class="small-12 column">
-            <img style="margin: 15px;" src="http://placehold.it/730x280">
+            <img style="margin: 15px;" src="{$mainImgUrl}{$event.image}">
         </div>
+        {/if}
         <div class="small-12 column">
             <div class="row">
+                {if $event.locations}
                 <div class="small-5 column">
-                    <img style="margin: 0 15px 15px;" src="http://placehold.it/220x220">
-                    <button style="margin: 0 15px 15px;">Get Driving Directions</button>
+                    <form id="EventDrivingDirectionsForm" name="EventDrivingDirectionsForm" flexy:ignore="yes" method="post" action="">
+                        <img style="margin: 0 15px 15px;" src="http://placehold.it/220x220">
+                        <input type="hidden" id="EventLocation" name="EventLocation" value="{$event.locations.name}">
+                        <input type="hidden" id="EventLat" name="EventLat" value="{$event.locations.lat}">
+                        <input type="hidden" id="EventLon" name="EventLon" value="{$event.locations.lon}">
+                        <input type="submit" class="button tiny text-center" id="EventDrivingDirectionSubmit" name="EventDrivingDirectionSubmit" value="Get Driving Directions">
+                    </form>
                 </div>
-                <div class="small-7 column">
+                {/if}
+                <div class="small-{if $event.locations}7{else}12{/if} column">
                     <div class="row">
                         <div class="small-12 column"><strong>{$event.dates}</strong></div>
                         <div class="small-12 column">
-                            {$event.street}<br>
-                            {$event.city}, {$event.state} {$event.zip}
+                            {if $event.locations.name}{$event.locations.name}<br>{/if}
+                            {$event.locations.address}<br>
+                            {$event.locations.city.name}, {$event.locations.state.value} {$event.locations.zip}
                         </div>
                         <div class="small-12 column">{$event.cost}</div>
                         <div class="small-12 column"><strong>Contact & More Info</strong><br>
                             {if $event.url}
-                            <a href="{$event.url}">{$event.url}</a><br>
+                            <a href="{$event.url}" target="_blank">{$event.url}</a><br>
                             {/if}
                             {if $event.email}
                             Email: <a href="mailto: {$event.email}">{$event.email}</a>
@@ -35,7 +44,7 @@
                     </div>
                 </div>
                 <div class="small-12 column">
-                    <p>{$event.description}</p>
+                    <p>{$event.descr}</p>
                 </div>
             </div>
         </div>
index b9ea3ca..4b23373 100644 (file)
                     <input id="glm-event-name" name="event_name" value="{$eventName}">
                 </div>
                 <div class="small-12 small-text-center columns">
-                    <input type="submit" class="button radius">
-                </div>
-            </div>
-        </form>
-        <form action="{$currentUrl}">
-            <input type="hidden" name="search" value="1">
-            <div class="row">
-                <div class="small-12 medium-6 text-right columns">
-                    <label for="glm-event-from">From</label>
-                </div>
-                <div class="small-12 medium-6 columns">
-                    <input id="glm-event-from" name="glm_event_from" value="{$fromDate}">
-                </div>
-                <div class="small-12 medium-6 text-right columns">
-                    <label for="glm-event-to">To</label>
-                </div>
-                <div class="small-12 medium-6 columns">
-                    <input id="glm-event-to" name="glm_event_to" value="{$toDate}">
-                </div>
-                <div class="small-12 medium-6 text-right columns">
-                    <label for="glm-event-category">Category</label>
-                </div>
-                <div class="small-12 medium-6 columns">
-                    <select id="glm-event-category" name="category">
-                        <option value="">-- All Categories --</option>
-                        {foreach $categories as $cat}
-                        <option value="{$cat.id}"{if $categoryId == $cat.id} selected{/if}>{$cat.name}</option>
-                        {/foreach}
-                    </select>
-                </div>
-                <div class="small-12 small-text-center columns">
-                    <input type="submit" class="button radius">
+                    <input type="submit" class="button radius" value="Search">
                 </div>
             </div>
         </form>