Changeset 3368
- Timestamp:
- 11/06/2010 08:15:27 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-core.php
r3367 r3368 535 535 'type' => 'active', // active, newest, alphabetical, random or popular 536 536 'user_id' => false, // Pass a user_id to limit to only friend connections for this user 537 'exclude' => false, // Users to exclude from results 537 538 'search_terms' => false, // Limit to users that match these search terms 538 539 … … 546 547 extract( $params, EXTR_SKIP ); 547 548 548 return apply_filters( 'bp_core_get_users', BP_Core_User::get_users( $type, $per_page, $page, $user_id, $include, $search_terms, $populate_extras ), &$params );549 return apply_filters( 'bp_core_get_users', BP_Core_User::get_users( $type, $per_page, $page, $user_id, $include, $search_terms, $populate_extras, $exclude ), &$params ); 549 550 } 550 551 -
trunk/bp-core/bp-core-classes.php
r3300 r3368 107 107 /* Static Functions */ 108 108 109 function get_users( $type, $limit = null, $page = 1, $user_id = false, $include = false, $search_terms = false, $populate_extras = true ) {109 function get_users( $type, $limit = null, $page = 1, $user_id = false, $include = false, $search_terms = false, $populate_extras = true, $exclude = false ) { 110 110 global $wpdb, $bp; 111 111 … … 141 141 if ( 'alphabetical' == $type ) 142 142 $sql['where_alpha'] = "AND pd.field_id = 1"; 143 144 if ( !empty( $exclude ) ) 145 $sql['where_exclude'] = "AND u.ID NOT IN ({$exclude})"; 143 146 144 147 if ( $include ) { … … 232 235 } 233 236 234 function get_users_by_letter( $letter, $limit = null, $page = 1, $populate_extras = true ) {237 function get_users_by_letter( $letter, $limit = null, $page = 1, $populate_extras = true, $exclude = false ) { 235 238 global $wpdb, $bp; 236 239 … … 252 255 $status_sql = bp_core_get_status_sql( 'u.' ); 253 256 254 $total_users_sql = apply_filters( 'bp_core_users_by_letter_count_sql', $wpdb->prepare( "SELECT COUNT(DISTINCT u.ID) FROM " . CUSTOM_USER_TABLE . " u LEFT JOIN {$bp->profile->table_name_data} pd ON u.ID = pd.user_id LEFT JOIN {$bp->profile->table_name_fields} pf ON pd.field_id = pf.id WHERE {$status_sql} AND pf.name = %s AND pd.value LIKE '$letter%%' ORDER BY pd.value ASC", BP_XPROFILE_FULLNAME_FIELD_NAME ), $letter ); 255 $paged_users_sql = apply_filters( 'bp_core_users_by_letter_sql', $wpdb->prepare( "SELECT DISTINCT u.ID as id, u.user_registered, u.user_nicename, u.user_login, u.user_email FROM " . CUSTOM_USER_TABLE . " u LEFT JOIN {$bp->profile->table_name_data} pd ON u.ID = pd.user_id LEFT JOIN {$bp->profile->table_name_fields} pf ON pd.field_id = pf.id WHERE {$status_sql} AND pf.name = %s AND pd.value LIKE '$letter%%' ORDER BY pd.value ASC{$pag_sql}", BP_XPROFILE_FULLNAME_FIELD_NAME ), $letter, $pag_sql ); 256 257 $exclude_sql = ( !empty( $exclude ) ) ? " AND u.ID NOT IN ({$exclude})" : ""; 258 259 $total_users_sql = apply_filters( 'bp_core_users_by_letter_count_sql', $wpdb->prepare( "SELECT COUNT(DISTINCT u.ID) FROM " . CUSTOM_USER_TABLE . " u LEFT JOIN {$bp->profile->table_name_data} pd ON u.ID = pd.user_id LEFT JOIN {$bp->profile->table_name_fields} pf ON pd.field_id = pf.id WHERE {$status_sql} AND pf.name = %s {$exclude_sql} AND pd.value LIKE '$letter%%' ORDER BY pd.value ASC", BP_XPROFILE_FULLNAME_FIELD_NAME ), $letter ); 260 $paged_users_sql = apply_filters( 'bp_core_users_by_letter_sql', $wpdb->prepare( "SELECT DISTINCT u.ID as id, u.user_registered, u.user_nicename, u.user_login, u.user_email FROM " . CUSTOM_USER_TABLE . " u LEFT JOIN {$bp->profile->table_name_data} pd ON u.ID = pd.user_id LEFT JOIN {$bp->profile->table_name_fields} pf ON pd.field_id = pf.id WHERE {$status_sql} AND pf.name = %s {$exclude_sql} AND pd.value LIKE '$letter%%' ORDER BY pd.value ASC{$pag_sql}", BP_XPROFILE_FULLNAME_FIELD_NAME ), $letter, $pag_sql ); 261 257 262 $total_users = $wpdb->get_var( $total_users_sql ); 258 263 $paged_users = $wpdb->get_results( $paged_users_sql ); -
trunk/bp-core/bp-core-templatetags.php
r3365 r3368 18 18 var $total_member_count; 19 19 20 function bp_core_members_template( $type, $page_number, $per_page, $max, $user_id, $search_terms, $include, $populate_extras ) {20 function bp_core_members_template( $type, $page_number, $per_page, $max, $user_id, $search_terms, $include, $populate_extras, $exclude ) { 21 21 global $bp; 22 22 … … 26 26 27 27 if ( isset( $_REQUEST['letter'] ) && '' != $_REQUEST['letter'] ) 28 $this->members = BP_Core_User::get_users_by_letter( $_REQUEST['letter'], $this->pag_num, $this->pag_page, $populate_extras );28 $this->members = BP_Core_User::get_users_by_letter( $_REQUEST['letter'], $this->pag_num, $this->pag_page, $populate_extras, $exclude ); 29 29 else if ( false !== $include ) 30 30 $this->members = BP_Core_User::get_specific_users( $include, $this->pag_num, $this->pag_page, $populate_extras ); 31 31 else 32 $this->members = bp_core_get_users( array( 'type' => $this->type, 'per_page' => $this->pag_num, 'page' => $this->pag_page, 'user_id' => $user_id, 'include' => $include, 'search_terms' => $search_terms, 'populate_extras' => $populate_extras ) );32 $this->members = bp_core_get_users( array( 'type' => $this->type, 'per_page' => $this->pag_num, 'page' => $this->pag_page, 'user_id' => $user_id, 'include' => $include, 'search_terms' => $search_terms, 'populate_extras' => $populate_extras, 'exclude' => $exclude ) ); 33 33 34 34 if ( !$max || $max >= (int)$this->members['total'] ) … … 141 141 'max' => false, 142 142 143 'include' => false, // Pass a user_id or comma separated list of user_ids to only show these users 143 'include' => false, // Pass a user_id or a list (comma-separated or array) of user_ids to only show these users 144 'exclude' => false, // Pass a user_id or a list (comma-separated or array) of user_ids to exclude these users 144 145 145 146 'user_id' => $user_id, // Pass a user_id to only show friends of this user … … 161 162 return false; 162 163 163 $members_template = new BP_Core_Members_Template( $type, $page, $per_page, $max, $user_id, $search_terms, $include, (bool)$populate_extras );164 $members_template = new BP_Core_Members_Template( $type, $page, $per_page, $max, $user_id, $search_terms, $include, (bool)$populate_extras, $exclude ); 164 165 return apply_filters( 'bp_has_members', $members_template->has_members(), &$members_template ); 165 166 }
Note: See TracChangeset
for help on using the changeset viewer.