* Find the active member info record for a specific member ID
*
* @param integer $member ID of the member name
+ * @param string $where Optional WHERE clause for query
*
* @return integer Member info record ID or false if not found
*/
- public function getActiveInfoForMember($member) {
+ public function getActiveInfoForMember($member, $where = 'true') {
$memberID = $member - 0;
$sql = "
- SELECT id
- FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX. "member_info
- WHERE member = $memberID
+ SELECT T.id
+ FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX. "member_info T
+ WHERE $where
+ AND member = $memberID
AND status = ".$this->config['status_numb']['Active']."
;";
$memberInfo = $this->wpdb->get_row($sql, ARRAY_A);
'list' => $this->config['memb_access'],
'l_blank' => true,
'required' => true,
+ 'default' => 30,
'force_list' => true,
'use' => 'a'
),
;
; Member Access Levels
;
-memb_access[10] = 'Not Displayed'
+memb_access[30] = 'Display, Member Updates Moderated'
+memb_access[40] = 'Display, Member Updates Not Moderated'
memb_access[20] = 'Display, No Memb Access'
-memb_access[30] = 'Display, Moderated'
-memb_access[40] = 'Display, Full Access'
+memb_access[10] = 'Not Displayed, No Member Access'
memb_access[90] = 'Not Displayed, Archived'
memb_access_numb['NotDisplayed'] = 10
*/
-.glm-required {
- color: red !important;
-}
.glm-error {
color: red;
+ font-weight: bold;
}
-.glm-notice {
+.glm-warning {
color: green;
+ font-weight: bold;
+}
+.glm-notice {
+ color: blue;
+ font-weight: bold;
+}
+.glm-required {
+ color: red !important;
}
.glm-active {
color: blue;
$res = $this->wpdb->insert(
GLM_MEMBERS_PLUGIN_DB_PREFIX.'members',
array(
- 'access' => $this->config['memb_access_numb']['Full'],
+ 'access' => $this->config['memb_access_numb']['Moderated'],
'member_type' => $defaultMemberType,
'created' => date('Y-m-d'),
'name' => $val['member_name'],
// Get stats on the current list of members
$stats = $this->getStats();
+ // Get simple member list
+ $membersList = $this->getSimpleMembersList();
+
// Check for required Member Types
require_once(GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/dataMemberTypes.php');
$MemberTypes = new GlmDataMemberTypes($this->wpdb, $this->config);
// Compile template data
$templateData = array(
'numbMembers' => $stats,
+ 'membersList' => $membersList,
'membersPending' => $membersPending,
'haveMemberTypes' => $haveMemberTypes,
'haveCategories' => $haveCategories,
// Check for "show" shortcode parameter
$settings = array();
$showList = $actionData['request']['show'];
-echo "$showList<br>";
if ($showList) {
// Or we're clearing all
} elseif ($s == 'none') {
-echo "Here";
+
while (list($key, $val) = each($GLOBALS['showOpts'])) {
$settings[$val] = false;
}
}
// Find the active member info record
- $memberInfoID = $this->getActiveInfoForMember($id);
+ $where = "
+ (
+ SELECT access
+ FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."members
+ WHERE id = T.member
+ ) IN (
+ ".$this->config['memb_access_numb']['NoAccess'].",
+ ".$this->config['memb_access_numb']['Moderated'].",
+ ".$this->config['memb_access_numb']['Full']."
+ )
+ ";
+ $memberInfoID = $this->getActiveInfoForMember($id, $where);
+
+ // Default is we didn't find the member info
+ $memberData = false;
+ $haveMember = false;
+ $haveImageGallery = false;
+ $imageGallery = false;
- /*
- * Get data on the specified member
- */
- $memberData = $this->getEntry($memberInfoID);
+ // If we did get a member ID
+ if ($memberInfoID) {
+ /*
+ * Get data on the specified member
+ */
+ $memberData = $this->getEntry($memberInfoID);
- if (GLM_MEMBERS_PLUGIN_FRONT_DEBUG) {
- glmMembersFront::addNotice($memberData, 'DataBlock', 'Member Data');
- }
- // If we have member data
- $success = true;
- $haveMember = false;
- if ($memberData !== false) {
+ if (GLM_MEMBERS_PLUGIN_FRONT_DEBUG) {
+ glmMembersFront::addNotice($memberData, 'DataBlock', 'Member Data');
+ }
+ // If we have member data
$success = true;
- $haveMember = true;
+ if ($memberData !== false) {
- }
+ $success = true;
+ $haveMember = true;
+
+ }
- // Also get any image gallery images
- require_once(GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/dataImages.php');
- $Images = new GlmDataImages($this->wpdb, $this->config);
- $imageGallery = $Images->getGallery($this->config['ref_type_numb']['MemberInfo'], $memberInfoID);
- $haveImageGallery = ($imageGallery != false);
+ // Also get any image gallery images
+ require_once(GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/dataImages.php');
+ $Images = new GlmDataImages($this->wpdb, $this->config);
+ $imageGallery = $Images->getGallery($this->config['ref_type_numb']['MemberInfo'], $memberInfoID);
+ $haveImageGallery = ($imageGallery != false);
+
+ }
// Compile template data
$templateData = array(
$cats = array();
if (isset($actionData['request']['category'])) {
+ // Convert comma separated list to an array
$catsRequested = explode(',', $actionData['request']['category']);
// Check for numeric IDs only
while (list($k, $v) = each($catsRequested)) {
- // If it's just numeric
- if (preg_match('/^[0-9]*$/', trim($v))) {
+ // If it's just numeric - note Explode returns an array element with value = 0 if no string.
+ if (preg_match('/^[0-9]*$/', trim($v)) && $v > 0) {
// Clean up the category number and add to cats array
$cats[] = ($v-0);
// If there's categories specified with the shortcode
if (count($cats) > 0) {
- /*
- * Restrict available categories for selection to those in shortcode or children
+ /* * Restrict available categories for selection to those in shortcode or children
* Note that the array is already ordered by parent then children then next parent
* so $parentSelected
*/
}
}
+var_dump($cats);
+ $catSelected = implode(',', $cats);
+echo $catSelected;
// If we're doing category search selection Get category filter data
if ($this->config['settings']['list_show_search_category']) {
} // If an amenity search has been selected
} // it doing amenity search
- // Only look at active member information
- $where .= $whereSep." T.status = ".$this->config['status_numb']['Active'];
+ // Only look at active member information where the member is displayable (memb_access = 20, 30, 40)
+ $where .= $whereSep."
+ (
+ SELECT access
+ FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."members
+ WHERE id = T.member
+ ) IN (
+ ".$this->config['memb_access_numb']['NoAccess'].",
+ ".$this->config['memb_access_numb']['Moderated'].",
+ ".$this->config['memb_access_numb']['Full']."
+ )
+ AND T.status = ".$this->config['status_numb']['Active'];
// If doing alpha list
$alphaList = false;
<tr>
- <th {if $member.fieldRequired.access}class="glm-required"{/if}>Access:</th>
+ <th {if $member.fieldRequired.access}class="glm-required"{/if}>Member Display & Access:</th>
<td {if $member.fieldFail.access}class="glm-form-bad-input"{/if}>
<select name="access">
{foreach from=$member.fieldData.access.list item=v}
<p> </p>
+ <div>
+ <h3>Member Information Versions</h3>
+ <span class="glm-right">
+ <p>
+ <input type="checkbox" id="showArchived"{if $showArchived} checked="checked"{/if}> Show archived information
+ </p>
+ </span>
+ </div>
{if $haveMember}
{if $haveInfoRecords}
<a href="{$thisURL}?page={$thisPage}&glm_action=memberInfo&member={$memberID}" class="button-primary glm-button glm-right">Add New Member Information Version</a>
- <h3>Member Information Versions</h3>
-
- <span class="glm-right">
- <p>
- <input type="checkbox" id="showArchived"{if $showArchived} checked="checked"{/if}> Show archived information
- </p>
- </span>
-
{if $noActive}
<h3 class="glm-error">There is no active information for this member.</h3>
{/if}
{if $memberInfoID && $memberInfo}
<!-- Delete Member Information dialog -->
- <div id="deleteMemberInfoButton" class="button-primary glm-right">Archive this Member Information</div>
+ <div id="deleteMemberInfoButton" class="button-primary glm-right">Delete this Member Information Version</div>
<div id="deleteMemberInfoDialog" class="glm-dialog-box" title="Delete Member Information">
+ {if $memberInfo.fieldData.status.value == 10}
+ <p><center><a id="deleteMemberInfoCancel" class="button-primary">Cancel</a></center></p>
+ <p>
+ <span class="glm-notice">NOTE:</span> This member information is the <b>currently active</b> version! You may not delete an active version.
+ To delete this version, please select another version to be active or change the "Member Info Status" on this page to something
+ other than "Active".
+ </p>
+ <p>
+ If you change this version to something other than "Active" without selecting another version as active, there will be no active
+ information for this member. Members without an active information version will not be displayed on the front-end of this Web site.
+ </p>
+ <p>
+ Click the "Member Dashboard" tab above to see all information versions for this member and optionally to select another version to
+ be active.
+ </p>
+ {else}
<center>
<p><a id="deleteMemberInfoCancel" class="button-primary">Cancel</a></p>
- <p><input id="deleteMemberInfoSubmit" type="submit" value="Archive this Member Information record"></p>
+ <p><input id="deleteMemberInfoSubmit" type="submit" value="Delete this Member Information Version"></p>
</center>
+ <div class="glm-item-container">
+ <p><center><span class="glm-error">WARNING:</span></center></p>
+ <p>
+ <span class="glm-warning">Clicking the "Delete this Member Information Version" button above will
+ delete all of the data and images displayed on this page and any other information in the tabs that may show to the right of the "Member Info"
+ tab above.</span>
+ </p>
+ <p>
+ <span class="glm-error">Once deleted, this information will no longer be available and cannot be retrieved!</span>
+ </p>
+ </div>
<p>
- NOTE: Archived member information records are not listed in the the member Dashboard by default but
- may be shown using the "Show archived information" checkbox on that page.
- </p>
-
+ This member may also have other member information records. Click the "Member Dashboard" Tab above to view a list of all information
+ records for this member.
+ </p>
+ <p>
+ Only this member information version will be deleted. Other member information versions listed under the "Member Dashboard" tab
+ above will not be deleted.
+ </p>
+ <p>
+ There may also be "Archived" versions that will not normally show up in the "Member Dashboard". Click the
+ "Show Archiived Versions" checkbox at the top right of the versions list on that page to include archived versions.
+ </p>
+
+ {/if}
</div>
<h2>Edit Member Information</h2>
<h2>Main Dashboard</h2>
<table class="glm-admin-table">
+{if $membersList}
+ <tr>
+ <td colspan="2" align="">
+ <input id="glmMembersList" type="text" id="autoTest" style="margin-left: 2em;">
+ <span class="glm-left">Member Search:</span>
+ </td>
+ </tr>
+{/if}
+
{if !$haveMemberTypes}
<tr>
<th class="glm-error">You do not have any Member Types setup.</th>
</table>
{/if}
-
+{if $membersList}
+ <script type="text/javascript">
+ jQuery(document).ready(function($) {
+
+ /*
+ * Do autocomplete search for member
+ * label: What will be searched
+ * value: What will be displayed when selected
+ * id: Member id added so we can go to the member while showing what was selected
+ * Also note that autocomplete does not properly render HTML codes, so we
+ * "unescape" them for HTML in Smarty.
+ */
+ var availableTags = [
+ {foreach $membersList as $m}
+ { label: "{$m.name|unescape:'html'}", value: "{$m.name|unescape:'html'}", id: '{$m.id}' },
+ {/foreach}
+ ];
+ $( "#glmMembersList" ).autocomplete({
+ source: availableTags,
+ html: true,
+ select: function( event, ui ) {
+ var memberID = ui.item.id;
+ window.location.replace("{$adminURL}?page=glm-members-admin-menu-member&glm_action=index&member=" + memberID );
+ }
+ });
+
+ });
+
+ </script>
+{/if}
{include file='admin/footer.html'}
{if $m.pending > 0}<span class="glm-notice">Pending</span>{/if}
</td>
<td>
- <a href="{$thisURL}?page=glm-members-admin-menu-member&glm_action=memberInfo&member={$m.id}&id={$m.active_id}" class="button-primary glm-right" style="margin: 0 .2em 0 .2em;">Active Version</a>
- <a href="{$thisURL}?page=glm-members-admin-menu-member&glm_action=index&member={$m.id}" class="button-primary glm-right" style="margin: 0 .2em 0 .2em;">Manage</a>
+ <a href="{$thisURL}?page=glm-members-admin-menu-member&glm_action=memberInfo&member={$m.id}&id={$m.active_id}" class="button-primary glm-right" style="margin: 0 .2em 0 .2em;">Active Info</a>
</td>
</tr>
{/foreach}
{if $m.logo && $settings.list_map_show_logo}<div class="glm-member-list-image"><img src="{$glmPluginMediaURL}/images/{$settings.list_map_logo_size}/{$m.logo}"></div>{/if}
<div class="glm-map-member-name">
{if $settings.list_map_show_detaillink}
- <a href="{$thisURL}?glm_action=detail&id={$m.member_pointer}">{$m.member}</a>
+ <a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$m.member_slug}/">{$m.member}</a>
{else}
{$m.member}
{/if}