Index: members.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/members/Attic/members.install,v
retrieving revision 1.1.2.3
diff -u -F^f -r1.1.2.3 members.install
--- members.install	26 Jun 2007 14:02:19 -0000	1.1.2.3
+++ members.install	7 Jan 2008 20:52:31 -0000
@@ -13,6 +13,7 @@ function members_install() {
         page_title varchar(255) default NULL,
         url varchar(255) default NULL,
         roles varchar(255) NOT NULL,
+        statuses varchar(255) NOT NULL,
         `fields` longtext NOT NULL,
         encode_mailto tinyint(1) unsigned NOT NULL,
         field_length int(10) unsigned NOT NULL,
@@ -84,6 +85,14 @@ function members_update_1() {
   return $ret;	
 }
 
+function members_update_2() {
+  $ret = array();
+
+  db_add_column($ret, 'members_page', 'statuses', 'varchar(255)');
+
+  return $ret;	
+}
+
 function members_uninstall() {
   if (db_table_exists('members_page')) {
     db_query("DROP TABLE {members_page}");
Index: members.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/members/members.module,v
retrieving revision 1.40.2.25
diff -u -F^f -r1.40.2.25 members.module
--- members.module	22 Nov 2007 10:36:28 -0000	1.40.2.25
+++ members.module	7 Jan 2008 20:52:31 -0000
@@ -608,6 +608,19 @@ function members_edit_page($name, $op=""
     '#required' => TRUE,
   );
 
+  $form['filters']['statuses'] = array(
+    '#type' => 'select',
+    '#title' => t('Status'),
+    '#default_value' => explode(',', $member->statuses),
+    '#options' => array(
+      '1' => 'Active',
+      '0' => 'Blocked'
+    ),
+    '#description' => t('Only users with the selected status(es) will be displayed.'),
+    '#multiple' => 1,
+    '#required' => TRUE,
+  );
+
   // Field settings
 
   if (!empty($tempfields)) {
@@ -716,14 +729,21 @@ function members_edit_page_submit($form_
   else {
   	$roles = "";
   }
-  
+
+  if(!empty($form['statuses'])) {
+    $statuses = implode(',', $form['statuses']);
+  }
+  else {
+  	$statuses = '';
+  }
+
   $fields = implode(",", unserialize($form['tempfields']));
 
   if ($form['mid']) {
-    db_query("UPDATE {members_page} SET name='%s', description='%s', access='%s', page=%d, page_title='%s', url='%s', use_pager=%d, page_header='%s', page_header_format=%d, page_footer='%s', page_footer_format=%d, page_empty='%s', page_empty_format=%d, menu=%d, menu_title='%s', block=%d, block_title='%s', users_per_block=%d, block_more=%d, block_use_page_header=%d, block_header='%s', block_header_format=%d, block_use_page_footer=%d, block_footer='%s', block_footer_format=%d, block_use_page_empty=%d, block_empty='%s', block_empty_format=%d, roles='%s', `fields`='%s', encode_mailto=%d, field_length=%d, users_per_page=%d WHERE mid=%d LIMIT 1", $form['name'], $form['description'], $access, $form['page'], $form['page_title'], $form['url'], $form['use_pager'], $form['page_header'], $form['page_header_format'], $form['page_footer'], $form['page_footer_format'], $form['page_empty'], $form['page_empty_format'], $form['menu'], $form['menu_title'], $form['block'], $form['block_title'], $form['users_per_block'], $form['block_more'], $form['block_use_page_header'], $form['block_header'], $form['block_header_format'], $form['block_use_page_footer'], $form['block_footer'], $form['blocker_footer_format'], $form['block_use_page_empty'], $form['block_empty'], $form['block_empty_format'], $roles, $fields, $form['encode_mailto'], $form['field_length'], $form['users_per_page'], $form['mid']);
+    db_query("UPDATE {members_page} SET name='%s', description='%s', access='%s', page=%d, page_title='%s', url='%s', use_pager=%d, page_header='%s', page_header_format=%d, page_footer='%s', page_footer_format=%d, page_empty='%s', page_empty_format=%d, menu=%d, menu_title='%s', block=%d, block_title='%s', users_per_block=%d, block_more=%d, block_use_page_header=%d, block_header='%s', block_header_format=%d, block_use_page_footer=%d, block_footer='%s', block_footer_format=%d, block_use_page_empty=%d, block_empty='%s', block_empty_format=%d, roles='%s', statuses='%s', `fields`='%s', encode_mailto=%d, field_length=%d, users_per_page=%d WHERE mid=%d LIMIT 1", $form['name'], $form['description'], $access, $form['page'], $form['page_title'], $form['url'], $form['use_pager'], $form['page_header'], $form['page_header_format'], $form['page_footer'], $form['page_footer_format'], $form['page_empty'], $form['page_empty_format'], $form['menu'], $form['menu_title'], $form['block'], $form['block_title'], $form['users_per_block'], $form['block_more'], $form['block_use_page_header'], $form['block_header'], $form['block_header_format'], $form['block_use_page_footer'], $form['block_footer'], $form['blocker_footer_format'], $form['block_use_page_empty'], $form['block_empty'], $form['block_empty_format'], $roles, $statuses, $fields, $form['encode_mailto'], $form['field_length'], $form['users_per_page'], $form['mid']);
   }
   else {
-    db_query("INSERT INTO {members_page} (name, description, access, page, page_title, url, use_pager, page_header, page_header_format, page_footer, page_footer_format, page_empty, page_empty_format, menu, menu_title, block, block_title, users_per_block, block_more, block_use_page_header, block_header, block_header_format, block_use_page_footer, block_footer, block_footer_format, block_use_page_empty, block_empty, block_empty_format, roles, `fields`, encode_mailto, field_length, users_per_page) VALUES ('%s', '%s', '%s', %d, '%s', '%s', %d, '%s', %d, '%s', %d, '%s', %d, %d, '%s', %d, '%s', %d, %d, %d, '%s', %d, %d, '%s', %d, %d, '%s', %d, '%s', '%s', %d, %d, %d)", $form['name'], $form['description'], $access, $form['page'], $form['page_title'], $form['url'], $form['use_pager'], $form['page_header'], $form['page_header_format'], $form['page_footer'], $form['page_footer_format'], $form['page_empty'], $form['page_empty_format'], $form['menu'], $form['menu_title'], $form['block'], $form['block_title'], $form['users_per_block'], $form['block_more'], $form['block_use_page_header'], $form['block_header'], $form['block_header_format'], $form['block_use_page_footer'], $form['block_footer'], $form['block_footer_format'], $form['block_use_page_empty'], $form['block_empty'], $form['block_empty_format'], $roles, $fields, $form['encode_mailto'], $form['field_length'], $form['users_per_page']);
+    db_query("INSERT INTO {members_page} (name, description, access, page, page_title, url, use_pager, page_header, page_header_format, page_footer, page_footer_format, page_empty, page_empty_format, menu, menu_title, block, block_title, users_per_block, block_more, block_use_page_header, block_header, block_header_format, block_use_page_footer, block_footer, block_footer_format, block_use_page_empty, block_empty, block_empty_format, roles, statuses, `fields`, encode_mailto, field_length, users_per_page) VALUES ('%s', '%s', '%s', %d, '%s', '%s', %d, '%s', %d, '%s', %d, '%s', %d, %d, '%s', %d, '%s', %d, %d, %d, '%s', %d, %d, '%s', %d, %d, '%s', %d, '%s', '%s', '%s', %d, %d, %d)", $form['name'], $form['description'], $access, $form['page'], $form['page_title'], $form['url'], $form['use_pager'], $form['page_header'], $form['page_header_format'], $form['page_footer'], $form['page_footer_format'], $form['page_empty'], $form['page_empty_format'], $form['menu'], $form['menu_title'], $form['block'], $form['block_title'], $form['users_per_block'], $form['block_more'], $form['block_use_page_header'], $form['block_header'], $form['block_header_format'], $form['block_use_page_footer'], $form['block_footer'], $form['block_footer_format'], $form['block_use_page_empty'], $form['block_empty'], $form['block_empty_format'], $roles, $statuses, $fields, $form['encode_mailto'], $form['field_length'], $form['users_per_page']);
   }
 
   if ($form['mid']) {
@@ -945,10 +965,10 @@ function members_page($mid = "", $type =
       }
       
       if(in_array("2",$roles)) {
-        $allusers = 1;
+        $allroles = 1;
         $query = "SELECT DISTINCT(u.uid) FROM {users} u";
       } else {
-        $allusers = 0;
+        $allroles = 0;
         foreach ($roles as $rid) {
           $list[] = "'" . db_escape_string($rid) ."'";
         }
@@ -963,11 +983,18 @@ function members_page($mid = "", $type =
       else {
         $query.= " WHERE";
       }
-      if ($allusers == 0) {
-        $query.= " r.rid IN ($list) AND u.status=1" . tablesort_sql($header);
-      } else {
-        $query.= " u.status=1" . tablesort_sql($header);
+      if ($allroles == 0) {
+        $query.= " r.rid IN ($list)";
+      }
+      
+      if (!empty($member->statuses)) {
+        $query .=  " AND u.status IN ($member->statuses) ";
       }
+      else {
+        $query .=  ' AND u.status = 1 ';
+      }
+
+      $query .= tablesort_sql($header);
       
       if($type=="block") {
         $query.= " LIMIT " . $member->users_per_block;
