From ba0ce0c31d062c95ba4ab0537d1edd087efceef9 Mon Sep 17 00:00:00 2001 From: Anthony Talarico Date: Fri, 26 Jan 2018 13:46:12 -0500 Subject: [PATCH] adding city search for the events list front events list adding city search functionality --- models/front/events/baseAction.php | 18 +++++++++++++++++- models/front/events/list.php | 22 ++++++++++++++++++---- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/models/front/events/baseAction.php b/models/front/events/baseAction.php index 2a03575..669a5ff 100644 --- a/models/front/events/baseAction.php +++ b/models/front/events/baseAction.php @@ -199,7 +199,7 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents * @access public * @return array events */ - public function getModelEventsData( $categoryId = null, $limit = null, $memberId = null, $amenityId = null, $venueId = null ) + public function getModelEventsData( $categoryId = null, $limit = null, $memberId = null, $amenityId = null, $venueId = null, $cityId = null ) { $this->postAddTimes = true; @@ -224,6 +224,22 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents ) )"; } + + // check for city id in event list search + if ( $cityId = filter_var( $cityId, FILTER_VALIDATE_INT ) ) { + $whereParts[] = " + T.id IN ( + SELECT event + FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "locations + WHERE city = {$cityId} + AND event IN ( + SELECT event + FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times AS ET + WHERE status = " . $this->config['status_numb']['Active'] . " + AND " . $this->dateRange . " + ) + )"; + } if ( $venueId = filter_var( $venueId, FILTER_VALIDATE_INT ) ) { $whereParts[] = " diff --git a/models/front/events/list.php b/models/front/events/list.php index 923181d..602a3d6 100644 --- a/models/front/events/list.php +++ b/models/front/events/list.php @@ -62,6 +62,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $amenityId = null; $amenities = array(); $memberId = null; + $cityId = null; $members = array(); $venues = array(); $venueId = null; @@ -72,6 +73,12 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $groupByDay = true; $groupMonth = false; + + // get list cities to search by + require_once GLM_MEMBERS_EVENTS_PLUGIN_CLASS_PATH.'/data/dataEvents.php'; + $cities = new GlmDataEvents($this->wpdb, $this->config); + $cityData = $cities->getEventsCities(true); + // If there's a pageslug as attribute then update the pageSlug if ( isset ( $actionData['request']['pageslug'] ) ) { $pageSlug = $actionData['request']['pageslug']; @@ -146,6 +153,10 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $search = true; $action = 'event-list'; } + if ( isset( $_REQUEST['city'] ) && $cityId = filter_var( $_REQUEST['city'], FILTER_VALIDATE_INT ) ) { + $search = true; + $action = 'event-list'; + } if ( isset( $_REQUEST['venue'] ) && $venueId = filter_var( $_REQUEST['venue'], FILTER_VALIDATE_INT ) ) { $search = true; $action = 'event-list'; @@ -350,7 +361,8 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction ); wp_enqueue_script('event-dashboard-js'); wp_enqueue_style('jquery-style', '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css'); - + + switch ( $action ) { case 'front-page': $this->postAddRecurrences = true; @@ -368,7 +380,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction case 'event-list': $this->postAddLocations = true; $this->postAddRecurrences = true; - $events = $this->getModelEventsData( $categoryId, null, $memberId, $amenityId, $venueId ); + $events = $this->getModelEventsData( $categoryId, null, $memberId, $amenityId, $venueId, $cityId ); if ( !$view ) { $view = 'agenda.html'; } @@ -702,7 +714,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $this->postAddRecurrences = false; break; } - + // group the events by the starting date $eventsByDate = $mainEvents = array(); $eventCounter = 0; @@ -889,7 +901,8 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction } $json_months = json_encode($months); ksort($months); - + + // Compile template data $templateData = array( 'eventDays' => $eventDays, @@ -903,6 +916,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction 'amenityId' => $amenityId, 'amenities' => $amenities, 'memberId' => $memberId, + 'cities' => $cityData, 'members' => $members, 'venues' => $venues, 'venueId' => $venueId, -- 2.17.1