adding city search for the events list
authorAnthony Talarico <talarico@gaslightmedia.com>
Fri, 26 Jan 2018 18:46:12 +0000 (13:46 -0500)
committerAnthony Talarico <talarico@gaslightmedia.com>
Fri, 26 Jan 2018 18:46:12 +0000 (13:46 -0500)
front events list adding city search functionality

models/front/events/baseAction.php
models/front/events/list.php

index 2a03575..669a5ff 100644 (file)
@@ -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[] = "
index 923181d..602a3d6 100644 (file)
@@ -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,