--- members.module 2006-03-03 12:56:52.000000000 -0500 +++ /Users/tim/Desktop/members/members.module 2007-01-23 05:22:16.000000000 -0500 @@ -10,12 +10,45 @@ function members_help($section) { } function members_settings() { - $output = form_select(t("Roles to show"), "members_roles", variable_get("members_roles", array()), user_roles(1), t("Select roles to show in the members listing."), 0, 1); - $output .= form_select(t("Columns to show"), "members_fields", variable_get("members_fields", _member_fields()), _member_fields(), t("Select the fields which should be displayed on your members overview page. Note that some fields require certain modules to be active."), 0, 1); - $output .= form_checkbox(t('Obfuscate e-mail addresses using javascript'), 'members_encode_mailto', 1, variable_get('members_encode_mailto', 1), t('When checked, email addresses will not be included directly in the HTML source to deter spam crawlers. Note: this requires users have a javascript-enabled browser')); - $output .= form_textfield(t('Truncated field length'), 'members_field_length', variable_get('members_field_length', 0), 4, 6, t('If set (and non zero), all fields will be truncated to this length (in characters) to preserve table layouts')); - return $output; + $form["members_roles"] = array( + '#type' => 'select', + '#title' => t("Roles to show"), + '#default_value' => variable_get("members_roles", array()), + '#options' => user_roles(1), + '#description' => t("Select roles to show in the members listing."), + '#extra' => 0, + '#multiple' => 1, + ); + + $form["members_fields"] = array( + '#type' => 'select', + '#title' => t("Columns to show"), + '#default_value' => variable_get("members_fields", _member_fields()), + '#options' => _member_fields(), + '#description' => t("Select the fields which should be displayed on your members overview page. Note that some fields require certain modules to be active."), + '#extra' => 0, + '#multiple' => 1, + ); + + $form['members_encode_mailto'] = array( + '#type' => 'checkbox', + '#title' => t('Obfuscate e-mail addresses using javascript'), + '#return_value' => 1, + '#default_value' => variable_get('members_encode_mailto', 1), + '#description' => t('When checked, email addresses will not be included directly in the HTML source to deter spam crawlers. Note: this requires users have a javascript-enabled browser'), + ); + + $form['members_field_length'] = array( + '#type' => 'textfield', + '#title' => t('Truncated field length'), + '#default_value' => variable_get('members_field_length', 0), + '#size' => 4, + '#maxlength' => 6, + '#description' => t('If set (and non zero), all fields will be truncated to this length (in characters) to preserve table layouts'), + ); + + return $form; } function members_menu($may_cache) { @@ -50,7 +83,6 @@ function members_page($rids = null) { } if ($roles) { - $fields = array(); $enabled_fields = variable_get("members_fields", _member_fields()); foreach (_member_fields() as $field => $data) { @@ -67,12 +99,17 @@ function members_page($rids = null) { $header[] = array("data" => $data, "field" => $field); } - foreach ($roles as $rid) { - $list[] = "'" . db_escape_string($rid) ."'"; + if(in_array("2",$roles)) { + $allusers = 1; + $query = "SELECT DISTINCT(u.uid) FROM {users} u"; + } else { + $allusers = 0; + foreach ($roles as $rid) { + $list[] = "'" . db_escape_string($rid) ."'"; + } + $list = implode(',', $list); + $query = "SELECT DISTINCT(u.uid) FROM {users} u INNER JOIN {users_roles} r ON u.uid=r.uid"; } - $list = implode(',', $list); - - $query = "SELECT DISTINCT(u.uid) FROM {users} u INNER JOIN {users_roles} r ON u.uid=r.uid"; $sort = tablesort_get_order($header); if ($sort['sql'] == 'p.value') { $fieldid = db_result(db_query("SELECT fid FROM {profile_fields} WHERE name='%s'",substr(array_search($sort['name'], $fields), 8))); @@ -81,7 +118,11 @@ function members_page($rids = null) { else { $query.= " WHERE"; } - $query.= " r.rid IN ($list) AND u.status=1" . tablesort_sql($header); + if ($allusers == 0) { + $query.= " r.rid IN ($list) AND u.status=1" . tablesort_sql($header); + } else { + $query.= " u.status=1" . tablesort_sql($header); + } $result = pager_query($query, 200); $rows = array(); @@ -136,7 +177,7 @@ function members_page($rids = null) { $rows[] = $row; } - if ($pager = theme("pager", NULL, 200, 0, tablesort_pager())) { + if ($pager = theme("pager", NULL, 200, 0)) { $rows[] = array(array("data" => $pager, "colspan" => count($header))); } @@ -157,7 +198,8 @@ function _member_fields() { // profile fields if (module_exist('profile')) { - $result = db_query("SELECT name,title FROM {profile_fields} WHERE visibility = %d ORDER BY weight ASC", PROFILE_PUBLIC_LISTINGS); + # $result = db_query("SELECT name,title FROM {profile_fields} WHERE visibility = %d ORDER BY weight ASC", PROFILE_PUBLIC_LISTINGS); + $result = db_query("SELECT name,title FROM {profile_fields} ORDER BY weight ASC"); while ($row = db_fetch_object($result)) { $output["profile.$row->name"] = $row->title; }