From 5c937901251bb1e1cf79912e1753e598c47ec420 Mon Sep 17 00:00:00 2001 From: Chuck Scott Date: Tue, 22 Oct 2019 17:20:14 -0400 Subject: [PATCH] Fixed query for getting events by lat/lon for NearMe --- .../events => classes}/eventDataByLatLon.php | 50 +++++++------------ setup/adminHooks.php | 7 +-- 2 files changed, 18 insertions(+), 39 deletions(-) rename {models/front/events => classes}/eventDataByLatLon.php (89%) diff --git a/models/front/events/eventDataByLatLon.php b/classes/eventDataByLatLon.php similarity index 89% rename from models/front/events/eventDataByLatLon.php rename to classes/eventDataByLatLon.php index c4d5dad..9fddd53 100644 --- a/models/front/events/eventDataByLatLon.php +++ b/classes/eventDataByLatLon.php @@ -159,7 +159,7 @@ class GlmMembersFront_events_eventDataByLatLon extends GlmDataEvents } - $testWhere = ''; + $textWhere = ''; if ($searchText != '') { $textWhere .= " AND ( @@ -170,8 +170,8 @@ class GlmMembersFront_events_eventDataByLatLon extends GlmDataEvents } // Determine first and last dates to display - $dateFrom = "2016-11-22 00:00:00"; - $dateTo = "2016-11-30 24:59:59"; + $dateFrom = date('Y-m-d H:i:s'); + $dateTo = date('Y-m-d H:i:s', strtotime('+1 month')); // Get event data for events that use event locations $sql = " @@ -193,32 +193,23 @@ class GlmMembersFront_events_eventDataByLatLon extends GlmDataEvents E.descr, E.intro AS short_descr FROM ".GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX."events E, - ".GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX."locations L, - ".GLM_MEMBERS_PLUGIN_DB_PREFIX."cities C, - ".GLM_MEMBERS_PLUGIN_DB_PREFIX."regions R + ".GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX."locations L + LEFT JOIN ".GLM_MEMBERS_PLUGIN_DB_PREFIX."cities C ON C.id = L.city + LEFT JOIN ".GLM_MEMBERS_PLUGIN_DB_PREFIX."regions R ON R.id = L.region WHERE E.status = 10 AND L.event = E.id - AND C.id = L.city - AND R.id = L.region AND ( - SELECT MIN(start_time) + SELECT count(start_time) FROM ".GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX."times WHERE event = E.id AND active - ) < '$dateFrom' - AND ( - SELECT MAX(end_time) - FROM ".GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX."times - WHERE event = E.id - AND active - ) > '$dateTo' + AND (start_time BETWEEN '$dateFrom' AND '$dateTo') + ) $latLonWhereForEventLoc $textWhere ;"; $eventsEventLocations = $this->wpdb->get_results($sql, ARRAY_A); -//trigger_error(print_r($eventsEventLocations,1), E_USER_NOTICE); - // Get event data for events that use member locations $sql = " @@ -241,9 +232,9 @@ class GlmMembersFront_events_eventDataByLatLon extends GlmDataEvents '' AS short_descr FROM ".GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX."events E, ".GLM_MEMBERS_PLUGIN_DB_PREFIX."members M, - ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info I, - ".GLM_MEMBERS_PLUGIN_DB_PREFIX."cities C, - ".GLM_MEMBERS_PLUGIN_DB_PREFIX."regions R + ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info I + LEFT JOIN ".GLM_MEMBERS_PLUGIN_DB_PREFIX."cities C ON C.id = I.city + LEFT JOIN ".GLM_MEMBERS_PLUGIN_DB_PREFIX."regions R ON R.id = I.region WHERE E.status = 10 AND E.use_member_location AND E.ref_type = 10 @@ -258,21 +249,14 @@ class GlmMembersFront_events_eventDataByLatLon extends GlmDataEvents ) ) AND I.status = 10 - AND C.id = I.city - AND R.id = I.region AND ( - SELECT MIN(start_time) + SELECT count(start_time) FROM ".GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX."times WHERE event = E.id AND active - ) < '$dateFrom' - AND ( - SELECT MAX(end_time) - FROM ".GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX."times - WHERE event = E.id - AND active - ) > '$dateTo' - $latLonWhereForEventLoc + AND (start_time BETWEEN '$dateFrom' AND '$dateTo') + ) + $latLonWhereForMembLoc $textWhere ;"; @@ -298,7 +282,7 @@ class GlmMembersFront_events_eventDataByLatLon extends GlmDataEvents $eventCats = $this->wpdb->get_results($sql, ARRAY_A); // Add to results - Key is {type}.{event ID} - $events['Event'+$v['id']] = array( + $events[$v['id']] = array( 'type' => 'Event', 'id' => $v['id'], 'lat' => $v['lat'], diff --git a/setup/adminHooks.php b/setup/adminHooks.php index 97b7a0c..21ab467 100644 --- a/setup/adminHooks.php +++ b/setup/adminHooks.php @@ -225,7 +225,7 @@ add_filter( add_filter( 'glm-hook-list-map-items-by-latlon', function($data) { // Call dedicated model to perform search - include_once GLM_MEMBERS_EVENTS_PLUGIN_PATH . '/models/front/events/eventDataByLatLon.php'; + include_once GLM_MEMBERS_EVENTS_PLUGIN_PATH . '/classes/eventDataByLatLon.php'; $MapItems = new GlmMembersFront_events_eventDataByLatLon($this->wpdb, $this->config); $mapItems = $MapItems->modelAction($data['request'], $data['area'], $data['filter']); @@ -243,8 +243,3 @@ add_filter( 'glm-hook-list-map-items-by-latlon', function($data) { return $data; }); -add_action( 'init', function(){ - if ( ! session_id() ) { - session_start(); - } -}); -- 2.17.1