From: Chuck Scott Date: Mon, 9 May 2016 21:07:13 +0000 (-0400) Subject: Fixed events/packages for member detail X-Git-Tag: v1.0.0^2~49 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/index.cgi?a=commitdiff_plain;h=5dbf4dd23f8f252bc2c91af214c86039aa08ea94;p=WP-Plugins%2Fglm-member-db-events.git Fixed events/packages for member detail --- diff --git a/models/admin/events/list.php b/models/admin/events/list.php index add2d0a..688313e 100644 --- a/models/admin/events/list.php +++ b/models/admin/events/list.php @@ -145,7 +145,7 @@ class GlmMembersAdmin_events_list extends GlmDataEvents // Get member data require_once(GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/dataMemberInfo.php'); $MemberInfo = new GlmDataMemberInfo($this->wpdb, $this->config); - $memberData = $MemberInfo->getEntry($memberID); + $memberData = $MemberInfo->getActiveInfoIdForMember($memberID); if (!$memberData) { return array( diff --git a/models/front/events/baseAction.php b/models/front/events/baseAction.php index 21304c9..a6405ed 100644 --- a/models/front/events/baseAction.php +++ b/models/front/events/baseAction.php @@ -68,20 +68,31 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents * * Return the array of events. * - * @param bool $categoryId Id of the category for filtering events (optional) - * @param bool $limit Number of events to return (optional) + * @param integer $categoryId Id of the category for filtering events (optional) + * @param integer $limit Number of events to return (optional) + * @param integer $memberID Member ID if filtering by member * * @access public * @return array events */ - public function getModelEventsData($categoryId = null, $limit = null) + public function getModelEventsData($categoryId = null, $limit = null, $memberId = null) { + $this->postAddTimes = true; + $where = ''; + + if ($memberId = filter_var( $memberId, FILTER_VALIDATE_INT )) { + $where .= "T.ref_type = ".$this->config['ref_type_numb']['Member']." and T.ref_dest = $memberId AND "; + } + + // If a catgegory ID is supplied if ($catId = filter_var( $categoryId, FILTER_VALIDATE_INT )) { $events = $this->getEventsByCategory( $catId, $limit ); + + // Else if a category name is supplied } else if ($term = filter_var( $categoryId, FILTER_SANITIZE_STRING )) { $searchTerm = $this->wpdb->esc_like( $term ); - $where = "T.name like '%" . $searchTerm . "%' + $where .= "T.name like '%" . $searchTerm . "%' AND T.status = " . $this->config['status_numb']['Active'] . " AND T.id IN ( SELECT event @@ -93,8 +104,11 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents $order = "T.id"; $order .= " LIMIT 2 OFFSET 0"; $events = $this->getList($where, $order); + + // Otherwise get all categories } else { - $where = "T.status = " . $this->config['status_numb']['Active'] . " + + $where .= "T.status = " . $this->config['status_numb']['Active'] . " AND T.id IN ( SELECT event FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times AS ET @@ -104,6 +118,7 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents "; $events = $this->getList($where); } + //echo '
$events: ' . print_r($events, true) . '
'; if ( !empty($events) ) { foreach ( $events as &$event ) { diff --git a/models/front/events/list.php b/models/front/events/list.php index de1c2f7..5a19a95 100644 --- a/models/front/events/list.php +++ b/models/front/events/list.php @@ -44,10 +44,17 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction */ public function modelAction($actionData = false) { - //$allEvents = $this->getList(); + $status = $categoryId = null; $action = ''; $settings = $events = $event = $categoryEvents = array(); + + // If a memberID has been specified, limit to that member + $memberId = $actionData['request']['member'] - 0; + if ($memberId == 0) { + $memberId = null; + } + if (isset($_REQUEST['eventId']) && $eventId = filter_var($_REQUEST['eventId'], FILTER_VALIDATE_INT)) { $search = true; $action = 'event-detail'; @@ -316,8 +323,8 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $location->setText(implode(', ', $address)); $location->draw($page->getCanvas(), self::PDF_LFT_COL_X, $pdfY); $pdfY -= self::LINE_HEIGHT; - } else if (isset($event['use_member_location']['value']) - && $event['use_member_location']['value'] + } else if (isset($event['use_member_location']['value']) + && $event['use_member_location']['value'] && $event['hide_address']['name'] == 'No' ) { $address = array(); @@ -439,7 +446,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction break; default: $view = 'agenda.html'; - $events = $this->getModelEventsData($categoryId); + $events = $this->getModelEventsData($categoryId, null, $memberId); break; } @@ -487,6 +494,25 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $eventsByDate = $mainEvents; } + // Check for alternate template requests + switch($actionData['request']['template']) { + case 'member-list': + $view = 'listForMemberListing.html'; + break; + case 'events-link': + $view = 'eventsLinkForMemberDetail.html'; + break; + case 'detail-sidemenu'; + $view = 'eventsSidemenuForMemberDetail.html'; + break; + case 'member-detail': + $view = 'listForMemberDetail.html'; + break; + default: + $view = 'list.html'; + break; + } + // Compile template data $templateData = array( 'siteBaseUrl' => GLM_MEMBERS_EVENTS_SITE_BASE_URL, diff --git a/setup/frontHooks.php b/setup/frontHooks.php index 0941ee0..7ff3ca6 100644 --- a/setup/frontHooks.php +++ b/setup/frontHooks.php @@ -48,14 +48,45 @@ add_filter('init', function() { } }); -//add_action('query_vars', function($vars){ - //array_push($vars, 'glm-event-pdf'); - //return $vars; -//}); -//add_action('wp', function($wp){ - //if ( array_key_exists( 'glm-event-pdf', $wp->query_vars ) && $wp->query_vars['glm-event-pdf'] == '1' ) { - ////echo '
$this: ' . print_r($this, true) . '
'; - //echo '
$_REQUEST: ' . print_r($_REQUEST, true) . '
'; - //die('here it is!'); - //} -//}); +if (isset($this->config['addOns']['glm-member-db'])) { + + // Add content to member listing page - Get it from the existing package listing shortcode + add_filter('glm-member-db-front-members-list-memberDataBelow', function($content, $id) { + $eventData = do_shortcode('[glm-members-event-list member='.$id.' template="member-list" order="title"]'); + $content .= $eventData; + return $content; + }, + 10, + 2 + ); + + // Add internal page content links to member detail page + add_filter('glm-member-db-front-members-detail-linksBottom', function($content, $id) { + $eventData = do_shortcode('[glm-members-event-list member='.$id.', template="events-link" order="title"]'); + $content .= $eventData; + return $content; + }, + 10, + 2 + ); + + // Add content to member detail page - Get it from the existing package listing shortcode + add_filter('glm-member-db-front-members-detail-dataBottom', function($content, $id) { + $eventData = do_shortcode('[glm-members-event-list member='.$id.', template="member-detail" order="title"]'); + $content .= $eventData; + return $content; + }, + 10, + 2 + ); + + add_filter('glm-member-db-front-members-detail-sidemenuBottom', function($content, $id) { + $eventData = do_shortcode('[glm-members-event-list member='.$id.', template="detail-sidemenu" order="title"]'); + $content .= $eventData; + return $content; + }, + 10, + 2 + ); + +} diff --git a/views/front/events/eventsLinkForMemberDetail.html b/views/front/events/eventsLinkForMemberDetail.html new file mode 100644 index 0000000..f31f0ec --- /dev/null +++ b/views/front/events/eventsLinkForMemberDetail.html @@ -0,0 +1,3 @@ +{if $eventsByDate} + Events +{/if} diff --git a/views/front/events/eventsSidemenuForMemberDetail.html b/views/front/events/eventsSidemenuForMemberDetail.html new file mode 100644 index 0000000..cee62ad --- /dev/null +++ b/views/front/events/eventsSidemenuForMemberDetail.html @@ -0,0 +1,3 @@ +{if $eventsByDate} + Events +{/if} \ No newline at end of file diff --git a/views/front/events/listForMemberDetail.html b/views/front/events/listForMemberDetail.html new file mode 100644 index 0000000..ad9d694 --- /dev/null +++ b/views/front/events/listForMemberDetail.html @@ -0,0 +1,40 @@ +{if $eventsByDate} + +
+ +

Events

+ +
+ {foreach $eventsByDate as $d} + {foreach $d as $x} + {foreach $x as $e} + + +
+ + +
+ + {if $e.image} +
+ {$e.image} +
+ {/if} +

{$e.name}

+ {$e.intro} +
+ Template data needs to be filled in here + +
+
+ +
+ {/foreach} + {/foreach} + {/foreach} +
+
+{/if} diff --git a/views/front/events/listForMemberListing.html b/views/front/events/listForMemberListing.html new file mode 100644 index 0000000..c3c7a8f --- /dev/null +++ b/views/front/events/listForMemberListing.html @@ -0,0 +1,35 @@ +{if $eventsByDate} +

Events

+ +
+ {foreach $eventsByDate as $d} + {foreach $d as $x} + {foreach $x as $e} + +
+ + +
+ + {if $e.image} +
+ +
+ {/if} +

{$e.name}

+ {$e.intro} +
+ Event data needs to be filled in here + +
+
+ +
+ {/foreach} + {/foreach} + {/foreach} +
+{/if}