public function modelAction($actionData = false)
{
+ $memberID = false;
+ $lockedToMember = false;
+ $lockedWhereT = 'true';
+ $lockedWhere = 'true';
$numbEvents = 0;
$numbPending = 0;
$namesList = false;
$haveCategories = false;
+ // Check if there's a logged in user who is locked to their own entity
+ $lockedToMember = apply_filters('glm_members_locked_to_member_id', false);
+ if ($lockedToMember) {
+ $memberID = $lockedToMember;
+ $lockedToMember = $memberID;
+ $lockedWhereT = 'T.ref_type = '.$this->config['ref_type_numb']['Member'].' AND T.ref_dest = '.$memberID;
+ $lockedWhere = 'ref_type = '.$this->config['ref_type_numb']['Member'].' AND ref_dest = '.$memberID;
+ }
+
// Check for required Event Categories
require_once(GLM_MEMBERS_EVENTS_PLUGIN_CLASS_PATH.'/data/dataCategories.php');
$EventCategories = new GlmDataEventsCategories($this->wpdb, $this->config);
}
// Get full list of names matching this where clause for search box
- $namesList = $this->getIdName();
+ $namesList = $this->getIdName($lockedWhereT);
// Get number of events
- $numbEvents = $this->getStats();
+ $numbEvents = $this->getStats($lockedWhere);
+
+ // I know this is awkward, but we if there's anything that follows these we need " AND " appended.
+ if ($lockedWhereT != '') {
+ $lockedWhereT .= ' AND ';
+ }
+ if ($lockedWhere != '') {
+ $lockedWhere .= ' AND ';
+ }
// Get number of events pending
- $numbPending = $this->getStats('status = '.$this->config['status_numb']['Pending']);
+ $numbPending = $this->getStats($lockedWhere.' status = '.$this->config['status_numb']['Pending']);
// Get list of Pending Events
-// $pending = $this->getList('T.status = '.$this->config['status_numb']['Pending'], 'name', true, 'id', 1, 20);
- $pending = $this->getIdName('T.status = '.$this->config['status_numb']['Pending']);
+ $pending = $this->getIdName($lockedWhereT.' T.status = '.$this->config['status_numb']['Pending']);
// Compile template data
$templateData = array(
+ 'lockedToMember' => $lockedToMember,
'numbEvents' => $numbEvents,
'pending' => $pending,
'namesList' => $namesList,
public function modelAction($actionData = false)
{
+ $lockedToMember = false;
$numbEvents = 0;
$option = 'list';
$events = false;
$limit = 20; // Set to the number of listings per page
$namesList = false;
+ // Check if there's a logged in user who is locked to their own entity
+ $lockedToMember = apply_filters('glm_members_locked_to_member_id', false);
+ if ($lockedToMember) {
+ $memberID = $lockedToMember;
+
// Check for Member Menu Use
- if (defined('GLM_EVENTS_MEMBER_MENU')) {
+ } elseif (defined('GLM_EVENTS_MEMBER_MENU')) {
// Try to get member ID
$memberID = (isset($_REQUEST['member']) ? $_REQUEST['member'] : 0);
- // If not a valid member ID
- if ($memberID > 0) {
-
- // Get base member information
- require_once(GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/dataMembers.php');
- $Member = new GlmDataMembers($this->wpdb, $this->config);
- $memberData = $Member->getEntry($memberID);
-
- if (!$memberData) {
- return array(
- 'status' => false,
- 'menuItemRedirect' => 'error',
- 'modelRedirect' => 'index',
- 'view' => 'admin/error/index.html',
- 'data' => array(
- 'reason' => 'No member data found for provided member ID.'
- )
- );
- }
- } else {
+ // If there's no valid member ID, we can't continue
+ if ($memberID == 0) {
return array(
'status' => false,
'menuItemRedirect' => 'error',
)
);
}
+ }
- $haveMember = true;
- $memberName = $memberData['name'];
+ // If not a valid member ID
+ if ($memberID > 0) {
+
+ // Get base member information
+ require_once(GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/dataMembers.php');
+ $Member = new GlmDataMembers($this->wpdb, $this->config);
+ $memberData = $Member->getEntry($memberID);
+
+ if (!$memberData) {
+ return array(
+ 'status' => false,
+ 'menuItemRedirect' => 'error',
+ 'modelRedirect' => 'index',
+ 'view' => 'admin/error/index.html',
+ 'data' => array(
+ 'reason' => 'No member data found for provided member ID.'
+ )
+ );
+ } else{
+ $haveMember = true;
+ $memberName = $memberData['name'];
+ }
}
switch ($option) {
case 'add':
-echo "Member name = $memberName<P>";
+
$event = $this->newEntry();
$view = 'edit';
}
// Check if the list is for a specific member
- if (defined('GLM_EVENTS_MEMBER_MENU') && $memberID) {
+ if (defined('GLM_EVENTS_MEMBER_MENU') || $memberID) {
$where .= " AND ref_dest = $memberID";
}
}
$templateData = array(
+ 'lockedToMember' => $lockedToMember,
'option' => $option,
'events' => $events,
'haveEvents' => $haveEvents,
-{if $haveMember}
+{if $haveMember && !$lockedToMember }
{include file='admin/member/header.html'}
{else}
{include file='admin/events/header.html'}
<h2>Add new Event</h2>
{/if}
- <form action="{$thisUrl}?page={if $haveMember}glm-members-admin-menu-member{else}{$thisPage}{/if}" method="post" enctype="multipart/form-data">
- <input type="hidden" name="glm_action" value="{if $haveMember}events{else}list{/if}">
+ {if $haveMember && !$lockedToMember}
+ <form action="{$thisUrl}?page=glm-members-admin-menu-member" method="post" enctype="multipart/form-data">
+ <input type="hidden" name="glm_action" value="events">
+ {else}
+ {if $lockedToMember}
+ <form action="{$thisUrl}?page=glm-members-admin-menu-events-list" method="post" enctype="multipart/form-data">
+ <input type="hidden" name="glm_action" value="list">
+ {else}
+ <form action="{$thisUrl}?page={$thisPage}" method="post" enctype="multipart/form-data">
+ <input type="hidden" name="glm_action" value="list">
+
+ {/if}
+ {/if}
{if $haveMember}
<input type="hidden" name="member" value="{$memberID}">
<input type="hidden" name="ref_type" value="{$ref_type_numb.Member}">
html: true,
select: function( event, ui ) {
var eventID = ui.item.id;
+ {if $lockedToMember}
+ window.location.replace("{$adminUrl}?page=glm-members-admin-menu-events-list&glm_action=list&option=edit&event=" + eventID );
+ {else}
window.location.replace("{$adminUrl}?page=glm-members-admin-menu-events-index&glm_action=list&option=edit&event=" + eventID );
+ {/if}
},
response: function(event, ui) {
if (!ui.content.length) {
-{if $haveMember}
+{if $haveMember && !$lockedToMember}
{include file='admin/member/header.html'}
{else}
{include file='admin/events/header.html'}
{/if}
-
{if apply_filters('glm_members_permit_admin_events_index_add_event', true)}
<h2 style="margin-bottom: 1em;">
{if $haveMember} {* This is if we're processing events for a specific member *}
</td>
<td class="glm-nowrap">
{if $haveMember}
+ {if $lockedToMember}
+ <a href="{$thisUrl}?page=glm-members-admin-menu-events-list&glm_action=list&member={$memberID}&option=edit&event={$e.id}">{$e.name}</a>
+ {else}
<a href="{$thisUrl}?page=glm-members-admin-menu-member&glm_action=events&member={$memberID}&option=edit&event={$e.id}">{$e.name}</a>
+ {/if}
{else}
<a href="{$thisUrl}?page={$thisPage}&glm_action=list&option=edit&event={$e.id}">{$e.name}</a>
{/if}