require_once GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/dataCategories.php';
$Categories = new GlmDataCategories($this->wpdb, $this->config);
$categories = $Categories->getListSortedParentChild();
+ $categories2 = $Categories->getListSortedParentChild(false);
+ // If we have categories, add "selected" element default false;
+ if (is_array($categories2)) {
+ reset($categories2);
+ while (list($k, $v) = each($categories2)) {
+ $categories2[$k]['selected'] = false;
+ }
+ }
+
// Check for action option - Should be one of the values in the "switch" statement below
if (isset($_REQUEST['option']) && trim($_REQUEST['option']) != '') {
$option = $_REQUEST['option'];
}
-
+
/*
* Perform requested action
*/
$templateData = array(
'haveMember' => $this->haveMember,
'availableCategories' => $categories,
+ 'availableCategories2'=> $categories2,
'memberID' => $this->memberID,
'member' => $this->memberData,
'memberName' => $memberName,
public function modelAction ($actionData = false)
{
- $where = ' true ';
- $filterPending = false;
- $filterArchived = false;
- $filterFeatured = false;
- $haveFilter = false;
- $numbDisplayed = false;
- $lastDisplayed = false;
- $paging = true;
- $prevStart = false;
- $nextStart = false;
- $start = 1;
- $limit = 20; // Set to the number of listings per page
- $namesList = false;
- $enable_members = $this->config['settings']['enable_members'];
+ $where = ' true ';
+ $alphaWhere = ' true ';
+ $catSearchSelected = false;
+ $catSelectedString = "";
+ $catSelected = '';
+ $catsToUse = '';
+ $filterPending = false;
+ $filterArchived = false;
+ $filterFeatured = false;
+ $haveFilter = false;
+ $numbDisplayed = false;
+ $lastDisplayed = false;
+ $paging = true;
+ $prevStart = false;
+ $nextStart = false;
+ $start = 1;
+ $limit = 20; // Set to the number of listings per page
+ $namesList = false;
+ $enable_members = $this->config['settings']['enable_members'];
+ $textSearch = false;
// Check if this is a request to show archived members
if (isset($_REQUEST['filterArchived'])) {
$categories[$k]['selected'] = false;
}
}
-
+
// Check if there is a category filter (multi-select)
+ if (isset($_REQUEST['categorySearch']) && $_REQUEST['categorySearch'] > 0) {
+ $catsToUse = explode(',',$_REQUEST['categorySearch']);
+ }
if (isset($_REQUEST['filterCategories']) && count($_REQUEST['filterCategories']) > 0) {
-
+ $catsToUse = $_REQUEST['filterCategories'];
+ }
+
+ if ($catsToUse && $catsToUse !== '') {
$cats = '';
$catsSep = '';
-
+
// For each selected category
- foreach($_REQUEST['filterCategories'] as $c) {
+ foreach($catsToUse as $c) {
$cats .= $catsSep.$c;
$catsSep = ',';
$categories[$c]['selected'] = true;
OR (C.parent in ($cats) AND M.category = C.id)
)
)";
+ $catSelectedString = $cats;
}
// Check for "Pending Only
$filterFeatured = true;
$haveFilter = true;
}
+
+ // If doing alpha list
+ if (isset($_REQUEST['alpha'])) {
+ $actionData['request']['alpha'] = $_REQUEST['alpha'];
+ }
+
+ $alphaList = false;
+ $alphaWhere = '';
+
+ $alphaSelected = false;
+
+ // Check for alpha selected
+ if ($actionData['request']['alpha'] && strlen($actionData['request']['alpha']) == 1) {
+ $alphaSelected = strtoupper($actionData['request']['alpha']);
+ $alphaWhere .= " AND T.name LIKE '$alphaSelected%'";
+ }
+
+ // Get full list for all other filters, but not filtered by alpha (that would be silly)
+ $alphaList = $this->getAlphaList(' AND '.$where, $alphaSelected);
+
+ // If user clicked a page request then we need to check the savedAlpha value
+ if (isset($_REQUEST['savedAlpha']) && isset($_REQUEST['pageSelect'])) {
+ $actionData['request']['alpha'] = $_REQUEST['savedAlpha'];
+ }
// Get count of members listed
$memberCount = $this->getStats($where);
$start = $newStart;
}
}
+
+ // Get stats for number of members found matching current selection criteria (includes alpha selection)
+ $filteredMembersFound = $this->getStats(str_replace('T.', '', $where.$alphaWhere));
// Get a current list of members
- $listResult = $this->getSimpleMembersList($where, 'name', true, 'id', $start, $limit);
+ $listResult = $this->getSimpleMembersList($where.$alphaWhere, 'name', true, 'id', $start, $limit);
// Get paging results
$numbDisplayed = $listResult['returned'];
'filterArchived' => $filterArchived,
'filterFeatured' => $filterFeatured,
'filterPending' => $filterPending,
+ 'catSelected' => $catSelected,
+ 'catSearchSelected' => $catSelectedString,
+ 'alphaList' => $alphaList,
+ 'alphaSelected' => $alphaSelected,
'numbDisplayed' => $numbDisplayed,
'lastDisplayed' => $lastDisplayed,
'paging' => $paging,
'nextStart' => $nextStart,
'start' => $start,
'limit' => $limit,
- 'namesList' => $namesList
+ 'namesList' => $namesList,
+ 'textSearch' => $textSearch
);
// Return status, suggested view, and data to controller
}
-
}
?>
-<br>
+ <br>
<h2>Address</h2>
<div class="glm-admin-table glm-admin-table-inner-wrapper">
<div class="glm-admin-table glm-admin-table-inner">
<input id="cityName" type="hidden" name="newCityName" value=""><!-- this field is only used if adding a new city to pass the new name -->
<select name="city" id="city" class="glm-left">
<option value="0"></option>
- {foreach from=$memberInfo.fieldData.city.list item=v}
- <option value="{$v.value}"{if $v.default} selected="selected"{/if}>
- {$v.name}
- </option>
+ {foreach from=$memberInfo.fieldData.city.list item=v}
+ <option value="{$v.value}"{if $v.default} selected="selected"{/if}>
+ {$v.name}
+ </option>
+ {/foreach}
+ </select>
+ </div>
+ </div>
+ <div class="glm-row">
+ <h4 {if $memberInfo.fieldRequired.county}class="glm-required"{/if}>County:</h4>
+ <div {if $memberInfo.fieldFail.county}class="glm-form-bad-input" data-tabid="glm-member-info-address"{/if}>
+ <select name="county">
+ {foreach from=$memberInfo.fieldData.county.list item=v}
+ <option value="{$v.value}"{if $v.default} selected="selected"{/if}>{$v.name}</option>
+ {/foreach}
+ </select>
+ {if $memberInfo.fieldFail.county}<p>{$memberInfo.fieldFail.county}</p>{/if}
+ </div>
+ </div>
+ <div class="glm-row">
+ <h4 {if $memberInfo.fieldRequired.region}class="glm-required"{/if}>Region:</h4>
+ <div class="glm-small-12" {if $memberInfo.fieldFail.region}class="glm-form-bad-input" data-tabid="glm-member-info-address"{/if}>
+ <select name="region">
+ {foreach from=$memberInfo.fieldData.region.list item=v}
+ <option value="{$v.value}"{if $v.default} selected="selected"{/if}>{$v.name}</option>
{/foreach}
</select>
+ {if $memberInfo.fieldFail.region}<p>{$memberInfo.fieldFail.region}</p>{/if}
</div>
</div>
<div class="glm-row">
</div>
</div>
<div class="glm-row">
- <h4 {if $memberInfo.fieldRequired.region}class="glm-required"{/if}>Region:</h4>
- <div class="glm-small-12" {if $memberInfo.fieldFail.region}class="glm-form-bad-input" data-tabid="glm-member-info-address"{/if}>
- <select name="region">
- {foreach from=$memberInfo.fieldData.region.list item=v}
- <option value="{$v.value}"{if $v.default} selected="selected"{/if}>{$v.name}</option>
- {/foreach}
- </select>
- {if $memberInfo.fieldFail.region}<p>{$memberInfo.fieldFail.region}</p>{/if}
- </div>
- </div>
- <div class="glm-row">
{if $memberInfo.fieldRequired.lat}<h4 class="emRequiredInputField">{else}<h4>{/if}Location:</h4>
<div class="glm-small-12">
<div id="glm-estimate-location" class="button button-secondary glm-left">Map Location Using Above Address</div>