adding pagination to search results
authorAnthony Talarico <talarico@gaslightmedia.com>
Wed, 3 May 2017 16:11:14 +0000 (12:11 -0400)
committerAnthony Talarico <talarico@gaslightmedia.com>
Wed, 3 May 2017 16:11:14 +0000 (12:11 -0400)
adding the query params filter to the functions file and adding the filter to the list page
to apply the query params in the search fields for pagination

functions.php
glm-member-db/views/front/members/list.html

index e3bd6eb..8a2196f 100644 (file)
@@ -67,6 +67,36 @@ add_filter('glm-member-db-front-search-query', function( $queryParts ) {
     }
     return $queryParts;
 });
+add_filter('glm-member-db-fields-front-list-query-params', function( $query ){
+    $queryParams = array();
+    // Check for manufactures
+    if ( isset( $_REQUEST['categories'] ) && is_array( $_REQUEST['categories'] ) ) {
+        foreach ( $_REQUEST['categories'] as $man ) {
+            $queryParams[] = "categories[]={$man}";
+        }
+    }
+    // This needs to be done for now until it is in the main plugin.
+    if ( isset( $_REQUEST['counties'] ) && is_array( $_REQUEST['counties'] ) ) {
+        foreach ( $_REQUEST['counties'] as $cat ) {
+            $queryParams[] = "counties[]={$cat}";
+        }
+    }
+     if ( isset( $_REQUEST['cities'] ) && is_array( $_REQUEST['cities'] ) ) {
+        foreach ( $_REQUEST['cities'] as $cat ) {
+            $queryParams[] = "cities[]={$cat}";
+        }
+    }
+     if ( isset( $_REQUEST['regionUserSearch'] ) && is_array( $_REQUEST['regionUserSearch'] ) ) {
+        foreach ( $_REQUEST['regionUserSearch'] as $cat ) {
+            $queryParams[] = "regionUserSearch[]={$cat}";
+        }
+    }
+    if ( isset( $_REQUEST['textSearch'] )  ) {
+        $cat = filter_var($_REQUEST['textSearch']);
+        $queryParams[] = "textSearch={$cat}";
+    }
+    return ( !empty( $queryParams ) ? $query . '&'.implode( '&', $queryParams): $query);
+},10, 1);
 /**
  * Return the client info option for the given key
  *
index b08b823..9ef8cdf 100644 (file)
     {/if}
 
     {if $paging}
+
     <div id="glm-member-paging-top" class="paging-wrapper">
         <div><span>showing {$start} through {$lastDisplayed} of {$filteredMembersFound}</span></div>
         <div>
-            <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&pageSelect=Next&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}" class="glm-alpha-link" {if !$nextStart} style="pointer-events: none; opacity: 0.5;"{/if}>Next page</a>
-            <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&pageSelect=Previous&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}" class="glm-alpha-link" {if !$prevStart} style="pointer-events: none; opacity: 0.5;"{/if}>Previous page</a>
+            <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&pageSelect=Previous&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}{apply_filters('glm-member-db-fields-front-list-query-params', '')}" class="glm-alpha-link" {if !$prevStart} style="pointer-events: none; opacity: 0.5;"{/if}>Previous page</a>
+            <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&pageSelect=Next&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}{apply_filters('glm-member-db-fields-front-list-query-params', '')}" class="glm-alpha-link" {if !$nextStart} style="pointer-events: none; opacity: 0.5;"{/if}>Next page</a>a={$alphaSelected}" class="glm-alpha-link" {if !$prevStart} style="pointer-events: none; opacity: 0.5;"{/if}>Previous page</a>
         </div>
     </div>
+
+        showing {$start} through {$lastDisplayed} of {$filteredMembersFound}
     {/if}