From dcd129fa66541dfb0b7753b048f8cccbb11910b5 Mon Sep 17 00:00:00 2001 From: Steve Sutton Date: Mon, 7 Nov 2016 13:02:21 -0500 Subject: [PATCH] Add Events By Day Drop Down. Adding to the search so it will only show events by the day of the search. --- models/front/events/baseAction.php | 28 +++++++++++++++++++ models/front/events/list.php | 28 ++++++++++++++++--- views/front/events/searchFormBeerweek.html | 31 +++++++--------------- 3 files changed, 63 insertions(+), 24 deletions(-) diff --git a/models/front/events/baseAction.php b/models/front/events/baseAction.php index c6eb54a..4e48495 100644 --- a/models/front/events/baseAction.php +++ b/models/front/events/baseAction.php @@ -157,6 +157,34 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents return $venues; } + /** + * getEventDayList + * + * Get the days the current event are on. + * This will mainly be used for Kalamazoobeerweek + * + * @access public + * @return void + */ + public function getEventDayList() + { + $days = array(); + + $sql = " + SELECT DISTINCT UNIX_TIMESTAMP(DATE(start_time)) as event_date + FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times + WHERE event IN ( + SELECT id + FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "events + WHERE status = 10) + AND start_time >= CURRENT_DATE() + ORDER BY event_date"; + + $days = $this->wpdb->get_results( $sql, ARRAY_A ); + + return $days; + } + /** * getModelEventsData * diff --git a/models/front/events/list.php b/models/front/events/list.php index 74ed09f..82f9b3f 100644 --- a/models/front/events/list.php +++ b/models/front/events/list.php @@ -63,6 +63,8 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $members = array(); $venues = array(); $venueId = null; + $eventDays = array(); + $eventDay = null; // If a memberID has been specified, limit to that member if ( isset( $actionData['request']['member'] ) ) { @@ -194,6 +196,24 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times WHERE DATE(start_time) >= '{$from}')"; } + if ( $this->config['settings']['use_venue_locations'] ) { + if ( isset( $_REQUEST['event_day']) ) { + $eventDay = filter_var( + $_REQUEST['event_day'], + FILTER_VALIDATE_REGEXP, + array( + 'options' => array( + 'regexp' => '%[0-9]{2}/[0-9]{2}/[0-9]{4}%' + ) + ) + ); + if ( $eventDay ) { + $fromDate = $toDate = $eventDay; + $from = $to = date( 'Y-m-d', strtotime( $eventDay ) ); + } + } + $this->dateRange = "start_time BETWEEN CAST('{$from}' AS DATE) AND CAST('{$to}' as DATE)"; + } if ( isset( $_REQUEST['event_name'] ) && $eventNameSearch = filter_var( $_REQUEST['event_name'], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES ) ) { @@ -209,11 +229,11 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction } // get venues only if use_venue_locations is turned on if ( $this->config['settings']['use_venue_locations'] ) { - $members = $this->getMembers(); - $venues = $this->getVenues(); + $members = $this->getMembers(); + $venues = $this->getVenues(); + $eventDays = $this->getEventDayList(); } - wp_register_script( 'event-dashboard-js', GLM_MEMBERS_EVENTS_PLUGIN_BASE_URL . '/js/dashboard.js', @@ -685,6 +705,8 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction } // Compile template data $templateData = array( + 'eventDays' => $eventDays, + 'eventDay' => $eventDay, 'assetsUrl' => GLM_MEMBERS_EVENTS_PLUGIN_URL . 'assets/', 'siteBaseUrl' => GLM_MEMBERS_EVENTS_SITE_BASE_URL, 'currentUrl' => GLM_MEMBERS_EVENTS_PLUGIN_CURRENT_URL, diff --git a/views/front/events/searchFormBeerweek.html b/views/front/events/searchFormBeerweek.html index a1c7f76..2b7954f 100644 --- a/views/front/events/searchFormBeerweek.html +++ b/views/front/events/searchFormBeerweek.html @@ -47,30 +47,19 @@ {/if} -
+ {if $settings.use_venue_locations}
-
-
- From -
-
- -
-
-
-
-
-
- To -
-
- -
-
- + +
+ {/if}
{if !$eventId} @@ -88,7 +77,7 @@
-
+