);
switch ( $option ) {
+ case 'search':
+ $view = 'search';
+ $searchResults = array();
+ $mTypeSelected = false;
+
+ 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);
+
+ // Get a list of member_types for filtering
+ require_once GLM_MEMBERS_PLUGIN_CLASS_PATH . '/data/dataMemberTypes.php';
+ $MemberTypes = new GlmDataMemberTypes( $this->wpdb, $this->config );
+ $member_types = $MemberTypes->getList();
+
+ // 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 ";
+ $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',
+ )
+ );
+ }
+
+ $templateData['mTypeSelected'] = $mTypeSelected;
+ $templateData['categories'] = $categories;
+ $templateData['member_types'] = $member_types;
+ $templateData['searchResults'] = $searchResults;
+ break;
case 'list':
$view = 'list';
$messages = $this->getList();
{include file='admin/header.html'}
-<a href="{$thisUrl}?page={$thisPage}&option=list">HTML Messages</a>
-<a href="{$thisUrl}?page={$thisPage}&option=editHtmlEmail" class="button glm-right">Add HTML Email</a>
+<ul>
+ <li>
+ <a href="{$thisUrl}?page={$thisPage}&option=list">HTML Messages</a>
+ </li>
+ <li>
+ <a href="{$thisUrl}?page={$thisPage}&option=search">Search Members</a>
+ </li>
+ <li>
+ <a href="{$thisUrl}?page={$thisPage}&option=editHtmlEmail" class="button glm-right">Add HTML Email</a>
+ </li>
+</ul>
This is your dashboard
<div id="glm-messages-app"></div>
-{*
+{* React Part
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
--- /dev/null
+<h2>Search Members</h2>
+
+{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}
+ {$searchResults|@print_r}
+{/if}
+
+{include file='admin/footer.html'}