From ac9871fd7f685c03018bca64bc32035d8a07e696 Mon Sep 17 00:00:00 2001 From: Steve Sutton Date: Mon, 12 Dec 2016 11:37:11 -0500 Subject: [PATCH] Update for getting correct count for member events. Need to pass the member id to the two functions getting the counts for member events. --- models/front/events/list.php | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/models/front/events/list.php b/models/front/events/list.php index c8f6677..82ba568 100644 --- a/models/front/events/list.php +++ b/models/front/events/list.php @@ -165,7 +165,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction } } else { // This is the default date range for this agenda view - $total_current_events = $this->checkHaveAnyEvents(); + $total_current_events = $this->checkHaveAnyEvents( $memberId ); $total_events_wanted = 5; if ( $total_events_wanted > $total_current_events ) { $total_events_wanted = ( $total_current_events > 1 ) ? $total_current_events - 1: 1; @@ -173,7 +173,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $weeks_to_check = 1; $event_count = 0; do { - $event_count = $this->getEventCountForWeekRange( ++$weeks_to_check ); + $event_count = $this->getEventCountForWeekRange( ++$weeks_to_check, $memberId ); } while ( $event_count <= $total_events_wanted && $total_current_events > $total_events_wanted ); $week_string = ( $weeks_to_check === 1 ) ? 'weeks': 'week'; @@ -753,7 +753,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $text = str_replace("\r", '', $text); return $text; } - public function checkHaveAnyEvents() + public function checkHaveAnyEvents( $member_id = null ) { $from = date( 'Y-m-d' ); $sql = "SELECT count(id) @@ -763,6 +763,9 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction SELECT event FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times WHERE DATE(start_time) >= %s)"; + if ( $member_id = filter_var( $member_id, FILTER_VALIDATE_INT ) ) { + $sql .= " AND ref_dest = " . $member_id; + } return $this->wpdb->get_var( $this->wpdb->prepare( $sql, $from ) ); } /** @@ -775,7 +778,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction * @access public * @return mixed */ - public function getEventCountForWeekRange( $weeks ) + public function getEventCountForWeekRange( $weeks, $member_id = null ) { if ( !filter_var( $weeks, FILTER_VALIDATE_INT ) ) { return false; @@ -783,14 +786,13 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $from = date( 'Y-m-d' ); $week_string = ( $weeks === 1 ) ? 'weeks': 'week'; $to = date( 'Y-m-d', strtotime( '+ ' . $weeks . ' ' . $week_string) ); - return $this->wpdb->get_var( - $this->wpdb->prepare( - "SELECT count(id) + $sql = "SELECT count(id) FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times - WHERE DATE(start_time) BETWEEN %s AND %s", - $from, - $to - ) - ); + WHERE DATE(start_time) BETWEEN %s AND %s"; + if ( $member_id = filter_var( $member_id, FILTER_VALIDATE_INT ) ) { + $sql .= " AND event in (SELECT id FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "events + WHERE ref_dest = " . $member_id . ")"; + } + return $this->wpdb->get_var( $this->wpdb->prepare( $sql, $from, $to ) ); } } -- 2.17.1