Ticket #5155: 5155.diff
File 5155.diff, 7.6 KB (added by , 11 years ago) |
---|
-
bp-themes/bp-default/_inc/ajax.php
901 901 $pag_page = 1; 902 902 $limit = (int) $_GET['limit'] ? $_GET['limit'] : apply_filters( 'bp_autocomplete_max_results', 10 ); 903 903 904 $query_args = array( 905 'search_terms' => $_GET['q'], 906 'per_page' => $limit, 907 'page' => $pag_page 908 ); 909 904 910 // Get the user ids based on the search terms 905 911 if ( ! empty( $autocomplete_all ) ) { 906 $users = BP_Core_User::search_users( $_GET['q'], $limit, $pag_page );907 912 913 $users = bp_core_get_users( $query_args ); 914 908 915 if ( ! empty( $users['users'] ) ) { 909 916 // Build an array with the correct format 910 917 $user_ids = array(); … … 919 926 920 927 } else { 921 928 if ( bp_is_active( 'friends' ) ) { 922 $users = friends_search_friends( $_GET['q'], bp_loggedin_user_id(), $limit, 1 );923 929 930 $query_args['user_id'] = bp_loggedin_user_id(); 931 $users = bp_core_get_users( $query_args ); 932 933 if ( ! empty( $users['users'] ) ) { 934 // Build an array with the correct format 935 $friends = array(); 936 foreach( $users['users'] as $user ) { 937 if ( $user->id != bp_loggedin_user_id() ) { 938 $friends['friends'][] = $user->id; 939 } 940 } 941 } 942 943 $friends['total'] = $users['total']; 944 924 945 // Keeping the bp_friends_autocomplete_list filter for backward compatibility 925 $ users = apply_filters( 'bp_friends_autocomplete_list', $users, $_GET['q'], $limit );946 $friends = apply_filters( 'bp_friends_autocomplete_list', $friends, $_GET['q'], $limit ); 926 947 927 if ( ! empty( $ users['friends'] ) ) {928 $user_ids = apply_filters( 'bp_friends_autocomplete_ids', $ users['friends'], $_GET['q'], $limit );948 if ( ! empty( $friends['friends'] ) ) { 949 $user_ids = apply_filters( 'bp_friends_autocomplete_ids', $friends['friends'], $_GET['q'], $limit ); 929 950 } 930 951 } 931 952 } -
bp-core/bp-core-classes.php
355 355 // 'search_terms' searches the xprofile fields 356 356 // To avoid global joins, do a separate query 357 357 // @todo remove need for bp_is_active() check 358 if ( false !== $search_terms && bp_is_active( 'xprofile' )) {358 if ( false !== $search_terms ) { 359 359 $search_terms_clean = mysql_real_escape_string( mysql_real_escape_string( $search_terms ) ); 360 360 $search_terms_clean = like_escape( $search_terms_clean ); 361 $found_user_ids_query = "SELECT user_id FROM {$bp->profile->table_name_data} WHERE value LIKE '%" . $search_terms_clean . "%'"; 361 362 if( bp_is_active( 'xprofile' ) ) 363 $found_user_ids_query = "SELECT DISTINCT(user_id) FROM {$bp->profile->table_name_data} xprofile LEFT JOIN {$wpdb->users} wpusers ON( xprofile.user_id = wpusers.ID ) WHERE xprofile.value LIKE '%" . $search_terms_clean . "%' wpusers.user_login LIKE '%" . $search_terms_clean . "%' OR wpusers.user_nicename LIKE '%" . $search_terms_clean . "%'"; 364 else 365 $found_user_ids_query = "SELECT DISTINCT(ID) as user_id FROM {$wpdb->users} WHERE user_login LIKE '%" . $search_terms_clean . "%' OR user_nicename LIKE '%" . $search_terms_clean . "%'"; 366 362 367 $found_user_ids = $wpdb->get_col( $found_user_ids_query ); 363 368 364 369 if ( ! empty( $found_user_ids ) ) { … … 1105 1110 $search_terms = esc_sql( like_escape( $search_terms ) ); 1106 1111 $status_sql = bp_core_get_status_sql( 'u.' ); 1107 1112 1108 $total_users_sql = apply_filters( 'bp_core_search_users_count_sql', "SELECT COUNT(DISTINCT u.ID) as id FROM {$wpdb->users} u LEFT JOIN {$bp->profile->table_name_data} pd ON u.ID = pd.user_id WHERE {$status_sql} AND pd.value LIKE '%%{$search_terms}%%' ORDER BY pd.value ASC", $search_terms ); 1109 $paged_users_sql = apply_filters( 'bp_core_search_users_sql', "SELECT DISTINCT u.ID as id, u.user_registered, u.user_nicename, u.user_login, u.user_email FROM {$wpdb->users} u LEFT JOIN {$bp->profile->table_name_data} pd ON u.ID = pd.user_id WHERE {$status_sql} AND pd.value LIKE '%%{$search_terms}%%' ORDER BY pd.value ASC{$pag_sql}", $search_terms, $pag_sql ); 1110 1113 if( bp_is_active( 'xprofile' ) ) { 1114 $total_users_sql = apply_filters( 'bp_core_search_users_count_sql', "SELECT COUNT(DISTINCT u.ID) as id FROM {$wpdb->users} u LEFT JOIN {$bp->profile->table_name_data} pd ON u.ID = pd.user_id WHERE {$status_sql} AND pd.value LIKE '%%{$search_terms}%%' ORDER BY pd.value ASC", $search_terms ); 1115 $paged_users_sql = apply_filters( 'bp_core_search_users_sql', "SELECT DISTINCT u.ID as id, u.user_registered, u.user_nicename, u.user_login, u.user_email FROM {$wpdb->users} u LEFT JOIN {$bp->profile->table_name_data} pd ON u.ID = pd.user_id WHERE {$status_sql} AND pd.value LIKE '%%{$search_terms}%%' ORDER BY pd.value ASC{$pag_sql}", $search_terms, $pag_sql ); 1116 } else { 1117 $total_users_sql = apply_filters( 'bp_core_search_users_count_sql', "SELECT COUNT(DISTINCT u.ID) as id FROM {$wpdb->users} u WHERE {$status_sql} AND ( u.user_login LIKE '%%{$search_terms}%%' OR u.user_nicename LIKE '%%{$search_terms}%%' ) ORDER BY u.user_nicename ASC", $search_terms ); 1118 $paged_users_sql = apply_filters( 'bp_core_search_users_sql', "SELECT DISTINCT u.ID as id, u.user_registered, u.user_nicename, u.user_login, u.user_email FROM {$wpdb->users} u WHERE {$status_sql} AND ( u.user_login LIKE '%%{$search_terms}%%' OR u.user_nicename LIKE '%%{$search_terms}%%' ) ORDER BY u.user_nicename ASC{$pag_sql}", $search_terms, $pag_sql ); 1119 } 1120 1111 1121 $total_users = $wpdb->get_var( $total_users_sql ); 1112 1122 $paged_users = $wpdb->get_results( $paged_users_sql ); 1113 1123 -
bp-templates/bp-legacy/buddypress-functions.php
1250 1250 $pag_page = 1; 1251 1251 $limit = (int) $_GET['limit'] ? $_GET['limit'] : apply_filters( 'bp_autocomplete_max_results', 10 ); 1252 1252 1253 $query_args = array( 1254 'search_terms' => $_GET['q'], 1255 'per_page' => $limit, 1256 'page' => $pag_page 1257 ); 1258 1253 1259 // Get the user ids based on the search terms 1254 1260 if ( ! empty( $autocomplete_all ) ) { 1255 $users = BP_Core_User::search_users( $_GET['q'], $limit, $pag_page );1256 1261 1262 $users = bp_core_get_users( $query_args ); 1263 1257 1264 if ( ! empty( $users['users'] ) ) { 1258 1265 // Build an array with the correct format 1259 1266 $user_ids = array(); … … 1268 1275 1269 1276 } else { 1270 1277 if ( bp_is_active( 'friends' ) ) { 1271 $users = friends_search_friends( $_GET['q'], bp_loggedin_user_id(), $limit, 1 );1272 1278 1279 $query_args['user_id'] = bp_loggedin_user_id(); 1280 $users = bp_core_get_users( $query_args ); 1281 1282 if ( ! empty( $users['users'] ) ) { 1283 // Build an array with the correct format 1284 $friends = array(); 1285 foreach( $users['users'] as $user ) { 1286 if ( $user->id != bp_loggedin_user_id() ) { 1287 $friends['friends'][] = $user->id; 1288 } 1289 } 1290 } 1291 1292 $friends['total'] = $users['total']; 1293 1273 1294 // Keeping the bp_friends_autocomplete_list filter for backward compatibility 1274 $ users = apply_filters( 'bp_friends_autocomplete_list', $users, $_GET['q'], $limit );1295 $friends = apply_filters( 'bp_friends_autocomplete_list', $friends, $_GET['q'], $limit ); 1275 1296 1276 if ( ! empty( $ users['friends'] ) ) {1277 $user_ids = apply_filters( 'bp_friends_autocomplete_ids', $ users['friends'], $_GET['q'], $limit );1297 if ( ! empty( $friends['friends'] ) ) { 1298 $user_ids = apply_filters( 'bp_friends_autocomplete_ids', $friends['friends'], $_GET['q'], $limit ); 1278 1299 } 1279 1300 } 1280 1301 }