From: Steve Sutton Date: Tue, 1 Nov 2016 21:04:12 +0000 (-0400) Subject: WIP for adding amenities X-Git-Tag: v1.5.4^2~33^2~1 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=4072cd97e000a660f703cf5a00744e30a1d7d56a;p=WP-Plugins%2Fglm-member-db-events.git WIP for adding amenities Working on the amenities. --- diff --git a/models/front/events/baseAction.php b/models/front/events/baseAction.php index b361787..411c245 100644 --- a/models/front/events/baseAction.php +++ b/models/front/events/baseAction.php @@ -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 diff --git a/models/front/events/list.php b/models/front/events/list.php index 3c1e29b..53353b6 100644 --- a/models/front/events/list.php +++ b/models/front/events/list.php @@ -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;