$option = $_REQUEST['option'];
}
+ if ( isset( $_REQUEST['option2'] ) ) {
+ $option2 = $_REQUEST['option2'];
+ }
+
+ $tData = array();
$templateData = array(
- 'newEntry' => false,
+ 'newEntry' => false,
+ 'thisOption' => $option,
);
switch ( $option ) {
$view = 'search';
$searchResults = array();
$mTypeSelected = false;
+ $whereParts = array(
+ "T.status != " . $this->config['status_numb']['Archived']
+ );
- wp_enqueue_style('select2',"https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" );
- wp_enqueue_script('select2js', "https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js" );
+ wp_enqueue_style( 'select2','https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css' );
+ wp_enqueue_script( 'select2js', 'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js' );
// Get a list of categories for filtering
- require_once GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/dataCategories.php';
- $Categories = new GlmDataCategories($this->wpdb, $this->config);
- $categories = $Categories->getListSortedParentChild(false);
+ require_once GLM_MEMBERS_PLUGIN_CLASS_PATH . '/data/dataCategories.php';
+ $Categories = new GlmDataCategories( $this->wpdb, $this->config );
+ $categories = $Categories->getListSortedParentChild( false );
+
+ echo '<pre>$_REQUEST: ' . print_r( $_REQUEST, true ) . '</pre>';
+
+ // Check if this is a request to show archived members
+ if ( isset( $_REQUEST['filterArchived'] ) ) {
+ $whereParts[] = " T.member IN (SELECT id FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members where access = ".$this->config['access_numb']['Archived'].")";
+ $filterArchived = true;
+ $haveFilter = true;
+
+ // If not, don't show them
+ } else {
+ $whereParts[] = " T.member IN (SELECT id FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members where access != ".$this->config['access_numb']['Archived'].")";
+ }
+
+ // If we have categories, add "selected" element default false;
+ if ( is_array( $categories ) ) {
+ reset( $categories );
+ foreach ( $categories as $k => $v ) {
+ $categories[$k]['selected'] = false;
+ }
+ }
+
+ if ( isset( $_REQUEST['filterCategories'] ) && count( $_REQUEST['filterCategories'] ) > 0) {
+ $catsToUse = $_REQUEST['filterCategories'];
+ }
+ // echo '<pre>$catsToUse: ' . print_r( $catsToUse, true ) . '</pre>';
+
+ if ( $catsToUse && $catsToUse !== '' ) {
+ $cats = '';
+ $catsSep = '';
+
+ // For each selected category
+ foreach ( $catsToUse as $c ) {
+ $cats .= $catsSep.$c;
+ $catsSep = ',';
+ $categories[$c]['selected'] = true;
+ }
+
+ $whereParts[] = " T.member in (
+ SELECT DISTINCT(I.member)
+ FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info I,
+ ".GLM_MEMBERS_PLUGIN_DB_PREFIX."category_member_info M,
+ ".GLM_MEMBERS_PLUGIN_DB_PREFIX."categories C
+ WHERE I.id = M.member_info
+ AND I.status != " . $this->config['status_numb']['Archived'] ."
+ AND (
+ M.category in ($cats)
+ OR (C.parent in ($cats) AND M.category = C.id)
+ )
+ )";
+ // $catSelectedString = $cats;
+ }
+ // echo '<pre>$categories: ' . print_r( $categories, true ) . '</pre>';
// Get a list of member_types for filtering
require_once GLM_MEMBERS_PLUGIN_CLASS_PATH . '/data/dataMemberTypes.php';
// Check if there is a member_type filter
if ( isset( $_REQUEST['filterMemberTypes'] ) && $memberTypeFilter = filter_var( $_REQUEST['filterMemberTypes'], FILTER_VALIDATE_INT ) ) {
- $where .= " AND T.member_type = $memberTypeFilter ";
+ $whereParts[] = " T.member IN (SELECT id FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members where member_type = $memberTypeFilter) ";
$mTypeSelected = $memberTypeFilter;
}
-
- // If we have categories, add "selected" element default false;
- if (is_array($categories)) {
- reset($categories);
- foreach ( $categories as $k => $v ) {
- $categories[$k]['selected'] = false;
- }
- }
-
if ( isset( $_REQUEST['search'] ) && filter_var( $_REQUEST['search'], FILTER_VALIDATE_BOOLEAN ) ) {
// Do search
- $searchResults = array(
- array(
- 'name' => 'Gaslight Media',
- 'status' => 'Active',
- )
- );
+ require_once GLM_MEMBERS_PLUGIN_CLASS_PATH . '/data/dataMemberInfo.php';
+ $Members = new GlmDataMemberInfo( $this->wpdb, $this->config );
+
+ $where = implode( ' AND ', $whereParts );
+ // echo '<pre>$where: ' . print_r( $where, true ) . '</pre>';
+
+ $searchResults = $Members->getList( $where );
+
}
- $templateData['mTypeSelected'] = $mTypeSelected;
- $templateData['categories'] = $categories;
- $templateData['member_types'] = $member_types;
- $templateData['searchResults'] = $searchResults;
+ $tData = array(
+ 'mTypeSelected' => $mTypeSelected,
+ 'categories' => $categories,
+ 'member_types' => $member_types,
+ 'searchResults' => $searchResults,
+ );
break;
+
case 'list':
$view = 'list';
$messages = $this->getList();
- // echo '<pre>' . print_r( $messages, true ) . '</pre>';
- $templateData['messages'] = $messages;
+ $tData = array(
+ 'messages' => $messages,
+ );
break;
+
case 'editHtmlEmail':
- $view = 'editHtmlEmail';
+ $view = 'editHtmlEmail';
+ $newEntry = false;
if ( isset( $_REQUEST['id'] ) && $id = filter_var( $_REQUEST['id'], FILTER_VALIDATE_INT ) ) {
$message = $this->editEntry( $id );
} else {
- $message = $this->newEntry();
- $templateData['newEntry'] = true;
+ $message = $this->newEntry();
+ $newEntry = true;
}
- $templateData['message'] = $message;
+ $tData = array(
+ 'message' => $message,
+ 'newEntry' => $newEntry,
+ );
break;
+
case 'updateHtmlEmail':
- // echo '<pre>$_REQUEST: ' . print_r( $_REQUEST, true) . '</pre>';
$_REQUEST['last_updated'] = date( 'Y-m-d H:i:s' );
if ( isset( $_REQUEST['id'] ) && $id = filter_var( $_REQUEST['id'], FILTER_VALIDATE_INT ) ) {
$message = $this->updateEntry( $id );
} else {
$message = $this->insertEntry();
- // echo '<pre>' . print_r( $message, true) . '</pre>';
}
break;
+
default:
break;
}
+ $templateData = array_merge( $templateData, $tData );
// Return status, suggested view, and data to controller
return array(
'status' => $success,
'menuItemRedirect' => false,
'modelRedirect' => false,
- 'view' => 'admin/messages/'.$view.'.html',
+ 'view' => 'admin/messages/' . $view . '.html',
'data' => $templateData
);
{include file='admin/header.html'}
-
-
-<form action="{$thisUrl}?page={$thisPage}" method="post">
- <input type="hidden" name="page" value="{$thisPage}" />
- <input type="hidden" name="option" value="search" />
- <input type="hidden" name="search" value="1" />
- <table>
- <tr>
- <td colspan="2">
- {* Multiselect Search Module. Set the necessary parameters for the element here *}
- {assign var="multiSelectFilterID" value="filterCategories"}
- {assign var="multiSelectFilterName" value="filterCategories[]"}
- {assign var="multiSelectFilterData" value=$categories}
- {assign var="multiSelectFilterPlaceholder" value="Filter Categories"}
- {assign var="multiSelectFilterSearchTerm" value="Categories"}
- {include file='admin/ui/multiSelectSearch.html'}
- {* End Multiselect Search Module *}
- </td>
- </tr>
- <tr>
- <th>Member Type</th>
- <td>
- <select id="filterMemberTypes" name="filterMemberTypes">
- <option value=""></option>
- {foreach $member_types as $type}
- <option value="{$type.id}"{if $type.id == $mTypeSelected} selected{/if}>{$type.name}</option>
- {/foreach}
- </select>
- </td>
- </tr>
- <tr>
- <td colspan="2">
- <input type="submit" value="Search" />
- </td>
- </tr>
- </table>
-</form>
+{if $searchResults}
+ <form action="{$thisUrl}?page={$thisPage}" method="post">
+ <input type="hidden" name="page" value="{$thisPage}" />
+ <input type="hidden" name="option" value="search" />
+ <input type="hidden" name="option2" value="sendMessages" />
+ <input type="hidden" name="search" value="1" />
+ {if $smarty.request.filterCategories}
+ {foreach $smarty.request.filterCategories as $fCat}
+ <input type="hidden" name="filterCategories[]" value="{$fCat}" />
+ {/foreach}
+ {/if}
+ {if $smarty.request.filterMemberTypes}
+ <input type="hidden" name="filterMemberTypes" value="{$smarty.request.filterMemberTypes}" />
+ {/if}
+ <table>
+ <tr>
+ <th>Message</th>
+ <td>
+ <select name="message_id" required>
+ <option value="">-- Select --</option>
+ <option value="x">Message One</option>
+ <option value="x">Message Two</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <input type="submit" value="Send Messages" />
+ </td>
+ </tr>
+ </table>
+ </form>
+{else}
+ <form action="{$thisUrl}?page={$thisPage}" method="post">
+ <input type="hidden" name="page" value="{$thisPage}" />
+ <input type="hidden" name="option" value="search" />
+ <input type="hidden" name="search" value="1" />
+ <table>
+ <tr>
+ <td colspan="2">
+ {* Multiselect Search Module. Set the necessary parameters for the element here *}
+ {assign var="multiSelectFilterID" value="filterCategories"}
+ {assign var="multiSelectFilterName" value="filterCategories[]"}
+ {assign var="multiSelectFilterData" value=$categories}
+ {assign var="multiSelectFilterPlaceholder" value="Filter Categories"}
+ {assign var="multiSelectFilterSearchTerm" value="Categories"}
+ {include file='admin/ui/multiSelectSearch.html'}
+ {* End Multiselect Search Module *}
+ </td>
+ </tr>
+ <tr>
+ <th>Member Type</th>
+ <td>
+ <select id="filterMemberTypes" name="filterMemberTypes">
+ <option value=""></option>
+ {foreach $member_types as $type}
+ <option value="{$type.id}"{if $type.id == $mTypeSelected} selected{/if}>{$type.name}</option>
+ {/foreach}
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <input type="submit" value="Search" />
+ </td>
+ </tr>
+ </table>
+ </form>
+{/if}
{if $searchResults}
- {$searchResults|@print_r}
+ <table class="wp-list-table widefat fixed posts glm-admin-table">
+ <thead>
+ <tr>
+ <th>ID</th>
+ <th>Member Name</th>
+ </tr>
+ </thead>
+ {foreach $searchResults as $member}
+ <tr>
+ <td>{$member.member_pointer}</td>
+ <td>{$member.member_name}</td>
+ </tr>
+ {/foreach}
+ </table>
{/if}
{include file='admin/footer.html'}