Add member type into member export.
authorSteve Sutton <steve@gaslightmedia.com>
Fri, 8 Jun 2018 17:58:14 +0000 (13:58 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Fri, 8 Jun 2018 17:58:14 +0000 (13:58 -0400)
Update export to properly get Archived members.

models/admin/ajax/membersListExport.php
models/admin/members/list.php
views/admin/members/list.html

index 6d00eb9..a2905ca 100644 (file)
@@ -131,24 +131,40 @@ class GlmMembersAdmin_ajax_membersListExport extends GlmDataMemberInfo
 
         // Check if this is a request to show archived members
         if (isset($_REQUEST['filterArchived'])) {
-            $where .= " AND T.status = ".$this->config['access_numb']['Archived'];
+            // $where .= " AND T.status = ".$this->config['status_numb']['Archived'];
+            $where .= " AND T.member IN (
+                SELECT DISTINCT(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 {
-            $where .= " AND T.status = ".$this->config['status_numb']['Active'];
+            // $where .= " AND T.status != ".$this->config['status_numb']['Archived'];
+            $where .= " AND T.member IN (
+                SELECT DISTINCT(id)
+                  FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members
+                 WHERE access != " . $this->config['access_numb']['Archived'] .  "
+            )";
+        }
+
+        // Check if there is a member_type filter
+        if ( isset( $_REQUEST['filterMemberTypes'] ) && $memberTypeFilter = filter_var( $_REQUEST['filterMemberTypes'], FILTER_VALIDATE_INT ) ) {
+            $where .= " AND T.member IN (
+                SELECT DISTINCT(id)
+                  FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members
+                 WHERE member_type = $memberTypeFilter
+            )";
+            $mTypeSelected = $memberTypeFilter;
         }
 
             // Check for a text search
         if (trim($_REQUEST['text_search']) != '') {
 
             $textSearch = addslashes(filter_input(INPUT_POST, 'text_search', FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES));
-            $where .= " AND T.member in (
-                SELECT DISTINCT(member)
-                  FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info
-                 WHERE member_name like '%$textSearch%'
-            )";
+            $where .= " AND T.member_nawe LIKE '%$text_search%'";
         }
 
         // Check if there is a category filter (multi-select)
@@ -220,12 +236,14 @@ class GlmMembersAdmin_ajax_membersListExport extends GlmDataMemberInfo
         $category_data = $this->wpdb->get_results( $sql, ARRAY_A );
         //echo '<pre>$category_data: ' . print_r( $category_data, true ) . '</pre>';
 
-        //echo '<pre>$where: ' . print_r( $where, true ) . '</pre>';
+        // echo '<pre>$where: ' . print_r( $where, true ) . '</pre>';
         // Get a current list of members without paging
         $list = $this->getList($where, "member_name");
 
-        //echo '<pre>$list: ' . print_r( $list, true ) . '</pre>';
-        //exit;
+        // echo '<pre>$count: ' . print_r( count($list), true ) . '</pre>';
+
+        // echo '<pre>$list: ' . print_r( $list, true ) . '</pre>';
+        // exit;
 
         // If we have list entries - even if it's an empty list
         $success     = true;
index 6395885..0fefd08 100644 (file)
@@ -309,6 +309,8 @@ class GlmMembersAdmin_members_list extends GlmDataMembers
             }
         }
 
+        // echo '<pre>$where: ' . print_r( $where, true ) . '</pre>';
+
         // Get stats for number of members found matching current selection criteria (includes alpha selection)
         $filteredMembersFound = $this->getStats(str_replace('T.', '', $where.$alphaWhere));
 
index 3d70b16..4d1de44 100644 (file)
 
     </form>
 
-    <div id="exportMembersDialog" class="glm-dialog-box" title="Export {$terms.term_member_cap} Profiles">
+    <div id="exportMembersDialog" class="glm-dialog-box" title="Export {$terms.term_member_cap}">
         <form id="exportForm" action="{$ajaxUrl}" method="post" enctype="multipart/form-data">
             <input type="hidden" name="action" value="glm_members_admin_ajax">
             <input type="hidden" name="glm_action" value="membersListExport">
                         </select>
                     </td>
                 </tr>
+                <tr>
+                    <th>Member Types:</th>
+                    <td>
+                        <select id="exportFilterMemberTypes" 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><th>Show Archived: </th><td><input type="checkbox" name="filterArchived"></td></tr>
                 <tr><th>Featured Only: </th><td><input type="checkbox" name="filterFeatured"></td></tr>
                 <tr><th>Pending Only: </th><td><input type="checkbox" name="filterPending"></td></tr>