// 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(
*
* 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
$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
";
$events = $this->getList($where);
}
+
//echo '<pre>$events: ' . print_r($events, true) . '</pre>';
if ( !empty($events) ) {
foreach ( $events as &$event ) {
*/
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';
$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();
break;
default:
$view = 'agenda.html';
- $events = $this->getModelEventsData($categoryId);
+ $events = $this->getModelEventsData($categoryId, null, $memberId);
break;
}
$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,
}
});
-//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 '<pre>$this: ' . print_r($this, true) . '</pre>';
- //echo '<pre>$_REQUEST: ' . print_r($_REQUEST, true) . '</pre>';
- //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
+ );
+
+}
--- /dev/null
+{if $eventsByDate}
+ <a href="#glm-member-detail-events">Events</a>
+{/if}
--- /dev/null
+{if $eventsByDate}
+ <tr><td id="glm-member-detail-events-button">Events</td></tr>
+{/if}
\ No newline at end of file
--- /dev/null
+{if $eventsByDate}
+
+<div id="glm-member-detail-events-container" class="small-12">
+ <a name="glm-member-detail-events"></a>
+ <h2>Events</h2>
+
+ <div class="glm-member-events-container">
+ {foreach $eventsByDate as $d}
+ {foreach $d as $x} <!-- don't know what this part of the array is -->
+ {foreach $x as $e}
+
+ <!-- Container for each event -->
+ <div class="event">
+
+ <!-- Container for event information -->
+ <div class="event-info">
+
+ {if $e.image}
+ <div class="glm-event-img-wrap">
+ <img src="{$glmPluginMediaUrl}/images/medium/{$e.image}"> {$e.image}
+ </div>
+ {/if}
+ <h3 class="event-title"><a href="{$siteBaseUrl}{$settings.canonical_events_page}/{$p.event_slug}/">{$e.name}</a></h3>
+ {$e.intro}
+ <div class="details">
+ Template data needs to be filled in here
+ <!--
+ <div><span class="title">Expires: </span><span class="data">{$p.expire_date.date}</span></div>
+ <div><span class="title">Pricing: </span><span class="data">{$p.pricing}</span></div>
+ -->
+ </div>
+ </div>
+
+ </div>
+ {/foreach} <!-- /event -->
+ {/foreach}
+ {/foreach}
+ </div>
+</div>
+{/if}
--- /dev/null
+{if $eventsByDate}
+<h2>Events</h2>
+
+<div class="glm-member-events-container">
+ {foreach $eventsByDate as $d}
+ {foreach $d as $x}
+ {foreach $x as $e}
+ <!-- Container for each event -->
+ <div class="event">
+
+ <!-- Container for event information -->
+ <div class="event-info">
+
+ {if $e.image}
+ <div class="glm-event-img-wrap">
+ <img src="{$glmPluginMediaUrl}/images/medium/{$e.image}">
+ </div>
+ {/if}
+ <h3 class="event-title"><a href="{$siteBaseUrl}{$settings.canonical_event_page}/{$e.event_slug}/">{$e.name}</a></h3>
+ {$e.intro}
+ <div class="details">
+ Event data needs to be filled in here
+ <!--
+ <div><span class="title">Expires: </span><span class="data">{$p.expire_date.date}</span></div>
+ <div><span class="title">Pricing: </span><span class="data">{$p.pricing}</span></div>
+ -->
+ </div>
+ </div>
+
+ </div>
+ {/foreach} <!-- /events -->
+ {/foreach}
+ {/foreach}
+</div>
+{/if}