Index: advuser.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/advuser/advuser.module,v
retrieving revision 1.13.2.10
diff -u -p -r1.13.2.10 advuser.module
--- advuser.module	6 Jun 2008 14:55:02 -0000	1.13.2.10
+++ advuser.module	8 Jun 2008 17:37:45 -0000
@@ -97,17 +97,21 @@ function advuser_admin_account() {
 
   $query = '';
   $ff = array();
+  $pf = array();
   foreach (advuser_profile_fields() as $field) {
     $ff[] = array('data'=>t($field->title), 'field'=>"$field->name.value");
+    $pf[] = "LEFT JOIN {profile_values} $field->name ON $field->name.fid = $field->fid AND $field->name.uid = u.uid";
   }
   $header = array_merge($header, $ff);
   $header[] = t('Operations');
 
+  $filter['join'] .= count($pf) ? ' ' . implode(' ', array_unique($pf)) : NULL;
+
   $sql = 'SELECT DISTINCT u.uid, u.name, u.status, u.created, u.access '.$pquery.' FROM {users} u LEFT JOIN {users_roles} ur ON u.uid = ur.uid '. $filter['join'] .' WHERE u.uid != 0 '. $filter['where'];
 
   $sql .= tablesort_sql($header);
   $query_count = 'SELECT COUNT(DISTINCT u.uid) FROM {users} u LEFT JOIN {users_roles} ur ON u.uid = ur.uid '. $filter['join'] .' WHERE u.uid != 0 '. $filter['where'];
-  $result = pager_query($sql, 50, 0, $query_count, $filter['args']);
+  $result = pager_query($sql, variable_get('advuser_listno', 50), 0, $query_count, $filter['args']);
 
   $form['options'] = array(
     '#type' => 'fieldset',
@@ -173,6 +177,7 @@ function advuser_admin_account() {
  * Theme user administration overview.
  */
 function theme_advuser_admin_account($form) {
+  static $profile_fields = array();
   // Overview table:
   $header = array(
     theme('table_select_header_cell'),
@@ -218,7 +223,14 @@ function theme_advuser_admin_account($fo
         if (is_array($fields)) {
           foreach ( $fields as $fid => $value) {
             if ( $value ) {
-              $field = db_fetch_object(db_query('SELECT * FROM {profile_fields} WHERE fid = %d', $fid));
+              if (empty($profile_fields[$fid])) {
+
+                $field = db_fetch_object(db_query('SELECT * FROM {profile_fields} WHERE fid = %d', $fid));
+                $profile_fields[$fid] = $field;
+              }
+              else {
+                $field = $profile_fields[$fid];
+              }
               $row[] = drupal_render($form[$field->name][$key]);
             }
           }
@@ -453,7 +465,7 @@ function advuser_settings() {
   //Maximum rows in dataset to display
   $form['advuser_mail']['advuser_listno'] = array(
     '#type' => 'select',
-    '#options' => drupal_map_assoc(array(0, 10, 25, 50, 75, 100, 125, 150, 175, 200)),
+    '#options' => drupal_map_assoc(array(1, 10, 25, 50, 75, 100, 125, 150, 175, 200)),
     '#title' => t('Number of users in listing'),
     '#description' => t('Sets how many users to display in table view'),
     '#default_value' => variable_get('advuser_listno', 50),
@@ -688,8 +700,11 @@ function advuser_profile_value($fid, $ui
  * @return array
  */
 function advuser_user_roles() {
-  $roles = user_roles(1);
-  unset ($roles[DRUPAL_AUTHENTICATED_RID]);
+  static $roles;
+  if (empty($roles)) {
+    $roles = user_roles(1);
+    unset ($roles[DRUPAL_AUTHENTICATED_RID]);
+  }
   return $roles;
 }
 
Index: advuser_filters.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/advuser/Attic/advuser_filters.inc,v
retrieving revision 1.1.2.10
diff -u -p -r1.1.2.10 advuser_filters.inc
--- advuser_filters.inc	6 Jun 2008 14:56:24 -0000	1.1.2.10
+++ advuser_filters.inc	8 Jun 2008 17:37:46 -0000
@@ -21,6 +21,7 @@ function advuser_filter_form() {
     '#type' => 'fieldset',
     '#title' => t('Show only users where'),
     '#theme' => 'advuser_filters',
+    '#collapsible' => TRUE,
     );
   foreach ($session as $filter) {
     list($type, $value, $op, $qop) = $filter;
@@ -351,7 +352,6 @@ function advuser_filters() {
       'title' => check_plain($field->title),
       'type' => $field->type,
       'class' => $field->name,
-      'join' => "LEFT JOIN {profile_values} $pv ON $pv.fid = $field->fid",
       'where' => "$pv.value %op '%s' AND $pv.uid = u.uid",
       'options' => $opts,
       'autocomplete' => $field->autocomplete ? $field->fid : FALSE,
