Ticket #4992: 4992.patch
File 4992.patch, 3.9 KB (added by , 12 years ago) |
---|
-
bp-core/bp-core-classes.php
803 803 } 804 804 805 805 if ( !empty( $exclude ) ) { 806 $exclude = wp_parse_id_list( $exclude ); 807 $exclude = $wpdb->escape( implode( ',', $exclude ) ); 806 808 $sql['where_exclude'] = "AND u.ID NOT IN ({$exclude})"; 807 809 } 808 810 … … 812 814 $sql['where_users'] = "AND 0 = 1"; 813 815 } else { 814 816 if ( !empty( $include ) ) { 815 if ( is_array( $include ) ) { 816 $uids = $wpdb->escape( implode( ',', (array) $include ) ); 817 } else { 818 $uids = $wpdb->escape( $include ); 819 } 820 821 if ( !empty( $uids ) ) { 822 $sql['where_users'] = "AND u.ID IN ({$uids})"; 823 } 817 $include = wp_parse_id_list( $include ); 818 $include = esc_sql( implode( ',', $include ) ); 819 $sql['where_users'] = "AND u.ID IN ({$include})"; 824 820 } elseif ( !empty( $user_id ) && bp_is_active( 'friends' ) ) { 825 821 $friend_ids = friends_get_friend_user_ids( $user_id ); 826 $friend_ids = $wpdb->escape( implode( ',', (array) $friend_ids ) );827 822 828 823 if ( !empty( $friend_ids ) ) { 824 $friend_ids = esc_sql( implode( ',', wp_parse_id_list( $friend_ids ) ) ); 829 825 $sql['where_friends'] = "AND u.ID IN ({$friend_ids})"; 830 826 831 827 // User has no friends, return false since there will be no users to fetch. … … 911 907 $user_ids[] = $user->id; 912 908 } 913 909 914 $user_ids = $wpdb->escape( join( ',', (array) $user_ids ) );915 916 910 // Add additional data to the returned results 917 911 $paged_users = BP_Core_User::get_user_extras( $paged_users, $user_ids, $type ); 918 912 } … … 981 975 foreach ( (array) $paged_users as $user ) 982 976 $user_ids[] = $user->id; 983 977 984 $user_ids = $wpdb->escape( join( ',', (array) $user_ids ) );985 986 978 // Add additional data to the returned results 987 979 if ( $populate_extras ) { 988 980 $paged_users = BP_Core_User::get_user_extras( $paged_users, $user_ids ); … … 1009 1001 if ( $limit && $page ) 1010 1002 $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); 1011 1003 1004 $user_ids = implode( ',', wp_parse_id_list( $user_ids ) ); 1012 1005 $status_sql = bp_core_get_status_sql(); 1013 1006 1014 $total_users_sql = apply_filters( 'bp_core_get_specific_users_count_sql', "SELECT COUNT(DISTINCT ID) FROM {$wpdb->users} WHERE {$status_sql} AND ID IN ( " . $wpdb->escape( $user_ids ) . " )" );1015 $paged_users_sql = apply_filters( 'bp_core_get_specific_users_count_sql', "SELECT DISTINCT ID as id, user_registered, user_nicename, user_login, user_email FROM {$wpdb->users} WHERE {$status_sql} AND ID IN ( " . $wpdb->escape( $user_ids ) . ") {$pag_sql}" );1007 $total_users_sql = apply_filters( 'bp_core_get_specific_users_count_sql', "SELECT COUNT(DISTINCT ID) FROM {$wpdb->users} WHERE {$status_sql} AND ID IN ({$user_ids})" ); 1008 $paged_users_sql = apply_filters( 'bp_core_get_specific_users_count_sql', "SELECT DISTINCT ID as id, user_registered, user_nicename, user_login, user_email FROM {$wpdb->users} WHERE {$status_sql} AND ID IN ({$user_ids}) {$pag_sql}" ); 1016 1009 1017 1010 $total_users = $wpdb->get_var( $total_users_sql ); 1018 1011 $paged_users = $wpdb->get_results( $paged_users_sql ); … … 1067 1060 foreach ( (array) $paged_users as $user ) 1068 1061 $user_ids[] = $user->id; 1069 1062 1070 $user_ids = $wpdb->escape( join( ',', (array) $user_ids ) );1071 1072 1063 // Add additional data to the returned results 1073 1064 if ( $populate_extras ) 1074 1065 $paged_users = BP_Core_User::get_user_extras( $paged_users, $user_ids ); … … 1095 1086 if ( empty( $user_ids ) ) 1096 1087 return $paged_users; 1097 1088 1089 // Sanitize user ID's 1090 $user_ids = implode( ',', wp_parse_id_list( $user_ids ) ); 1091 1098 1092 // Fetch the user's full name 1099 1093 if ( bp_is_active( 'xprofile' ) && 'alphabetical' != $type ) { 1100 1094 $names = $wpdb->get_results( $wpdb->prepare( "SELECT pd.user_id as id, pd.value as fullname FROM {$bp->profile->table_name_fields} pf, {$bp->profile->table_name_data} pd WHERE pf.id = pd.field_id AND pf.name = %s AND pd.user_id IN ( {$user_ids} )", bp_xprofile_fullname_field_name() ) );