WIP for adding amenities
authorSteve Sutton <steve@gaslightmedia.com>
Tue, 1 Nov 2016 21:04:12 +0000 (17:04 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Tue, 1 Nov 2016 21:04:12 +0000 (17:04 -0400)
Working on the amenities.

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

index b361787..411c245 100644 (file)
@@ -127,7 +127,7 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents
      * @access public
      * @return array events
      */
-    public function getModelEventsData( $categoryId = null, $limit = null, $memberId = null )
+    public function getModelEventsData( $categoryId = null, $limit = null, $memberId = null, $amenityId = null )
     {
 
         $this->postAddTimes = true;
@@ -137,11 +137,43 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents
             $where .= "T.ref_type = ".$this->config['ref_type_numb']['Member']." and T.ref_dest = $memberId AND ";
         }
 
+        if ( $amenityId = filter_var( $amenityId, FILTER_VALIDATE_INT ) ) {
+            $where = "
+            T.id IN (
+                SELECT event
+                  FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "amenity_event
+                 WHERE amenity = {$amenityId}
+                   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 a category ID is supplied
-        if ($catId = filter_var( $categoryId, FILTER_VALIDATE_INT )) {
-            $events = $this->getEventsByCategory( $catId, $limit );
+        if ( $catId = filter_var( $categoryId, FILTER_VALIDATE_INT ) ) {
+            //$events = $this->getEventsByCategory( $catId, $limit );
+            $where = "
+                T.id IN (
+                    SELECT event
+                      FROM " .GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "event_categories
+                     WHERE category = {$catId}
+                    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 . "
+                        )
+                    )
+                ";
+            $order = "T.id";
+            if ( $limit = filter_var( $limit, FILTER_VALIDATE_INT ) ) {
+                $order .= " LIMIT {$limit} OFFSET 0";
+            }
             // Else if a event name is supplied
-        } else if ($term = filter_var( $categoryId, FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES )) {
+        } else if ( $term = filter_var( $categoryId, FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES ) ) {
             $searchTerm = $this->wpdb->esc_like( stripslashes( $term ) );
             $where .= "T.name like '%" . $term . "%'
                 AND T.status = " . $this->config['status_numb']['Active'] . "
@@ -154,7 +186,6 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents
                 ";
             $order  = "T.id";
             $order .= " LIMIT 2 OFFSET 0";
-            $events = $this->getList( $where, $order );
         } else if ( $limit = filter_var( $limit, FILTER_VALIDATE_INT ) ) {
             // Need to get the event id's for the next $limit number of events.
             $where .= "T.id
@@ -167,7 +198,6 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents
                     )
                 ";
             $order  = "T.id";
-            $events = $this->getList( $where, $order );
             // Otherwise get all categories
         } else {
             $where .= "T.status = " . $this->config['status_numb']['Active'] . "
@@ -178,9 +208,10 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents
                            AND " . $this->dateRange . "
                     )
                 ";
-            $events = $this->getList( $where );
         }
 
+        $events = $this->getList( $where, $order );
+
         if ( !empty( $events ) ) {
             foreach ( $events as &$event ) {
                 // grab the first from times and see if it's ongoing or not
index 3c1e29b..53353b6 100644 (file)
@@ -66,7 +66,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
         if ( isset( $actionData['request']['member'] ) ) {
             $memberId = $actionData['request']['member'] - 0;
         }
-        if ($memberId == 0) {
+        if ( $memberId == 0 ) {
             $memberId = null;
         }
         if ( isset( $actionData['request']['limit'] ) ) {
@@ -189,7 +189,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
                  WHERE DATE(start_time) >= '{$from}')";
         }
 
-        if (isset($_REQUEST['event_name'])
+        if ( isset( $_REQUEST['event_name'] )
             && $eventNameSearch = filter_var($_REQUEST['event_name'], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES)) {
             $search = true;
             $action = 'event-list-name';
@@ -215,14 +215,14 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
             $events = $this->getModelEventsData( $categoryId, $limit );
             break;
         case 'event-list-name':
-            $events = $this->getModelEventsData( $eventNameSearch );
+            $events = $this->getModelEventsData( $eventNameSearch, null, $memberId, $amenityId );
             if ( !$view ) {
                 $view = 'agenda.html';
             }
             break;
         case 'event-list':
             $this->postAddRecurrences = true;
-            $events = $this->getModelEventsData( $categoryId, null, $memberId );
+            $events = $this->getModelEventsData( $categoryId, null, $memberId, $amenityId );
             if ( !$view ) {
                 $view = 'agenda.html';
             }
@@ -278,7 +278,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
             include_once GLM_MEMBERS_EVENTS_PLUGIN_PATH . '/SetaPDF/Autoload.php';
             $this->postAddLocations   = true;
             $this->postAddRecurrences = true;
-            $events                   = $this->getModelEventsData( $categoryId );
+            $events                   = $this->getModelEventsData( $categoryId, null, $memberId, $amenityId );
             $this->postAddLocations   = false;
             $this->postAddRecurrences = false;