Changeset 9335 for trunk/src/bp-messages/bp-messages-classes.php
- Timestamp:
- 01/09/2015 07:54:02 PM (11 years ago)
- File:
-
- 1 edited
-
trunk/src/bp-messages/bp-messages-classes.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-messages/bp-messages-classes.php
r9332 r9335 360 360 'limit' => null, 361 361 'page' => null, 362 'search_terms' => '' 362 'search_terms' => '', 363 'meta_query' => array() 363 364 ); 364 365 $r = wp_parse_args( $args, $defaults ); 365 366 366 367 $pag_sql = $type_sql = $search_sql = $user_id_sql = $sender_sql = ''; 368 $meta_query_sql = array( 369 'join' => '', 370 'where' => '' 371 ); 367 372 368 373 if ( $r['limit'] && $r['page'] ) { … … 391 396 } 392 397 398 // Process meta query into SQL 399 $meta_query = self::get_meta_query_sql( $r['meta_query'] ); 400 if ( ! empty( $meta_query['join'] ) ) { 401 $meta_query_sql['join'] = $meta_query['join']; 402 } 403 if ( ! empty( $meta_query['where'] ) ) { 404 $meta_query_sql['where'] = $meta_query['where']; 405 } 406 393 407 // set up SQL array 394 408 $sql = array(); 395 409 $sql['select'] = 'SELECT m.thread_id, MAX(m.date_sent) AS date_sent'; 396 $sql['from'] = "FROM {$bp->messages->table_name_recipients} r INNER JOIN {$bp->messages->table_name_messages} m ON m.thread_id = r.thread_id ";397 $sql['where'] = "WHERE r.is_deleted = 0 {$user_id_sql} {$sender_sql} {$type_sql} {$search_sql} ";410 $sql['from'] = "FROM {$bp->messages->table_name_recipients} r INNER JOIN {$bp->messages->table_name_messages} m ON m.thread_id = r.thread_id {$meta_query_sql['join']}"; 411 $sql['where'] = "WHERE r.is_deleted = 0 {$user_id_sql} {$sender_sql} {$type_sql} {$search_sql} {$meta_query_sql['where']}"; 398 412 $sql['misc'] = "GROUP BY m.thread_id ORDER BY date_sent DESC {$pag_sql}"; 399 413 … … 434 448 */ 435 449 return apply_filters( 'bp_messages_thread_current_threads', array( 'threads' => &$threads, 'total' => (int) $total_threads ) ); 450 } 451 452 /** 453 * Get the SQL for the 'meta_query' param in BP_Messages_Thread::get_current_threads_for_user(). 454 * 455 * We use WP_Meta_Query to do the heavy lifting of parsing the meta_query array 456 * and creating the necessary SQL clauses. 457 * 458 * @since BuddyPress (2.2.0) 459 * 460 * @param array $meta_query An array of meta_query filters. See the 461 * documentation for WP_Meta_Query for details. 462 * @return array $sql_array 'join' and 'where' clauses. 463 */ 464 public static function get_meta_query_sql( $meta_query = array() ) { 465 global $wpdb; 466 467 $sql_array = array( 468 'join' => '', 469 'where' => '', 470 ); 471 472 if ( ! empty( $meta_query ) ) { 473 $meta_query = new WP_Meta_Query( $meta_query ); 474 475 // WP_Meta_Query expects the table name at 476 // $wpdb->messagemeta 477 $wpdb->messagemeta = buddypress()->messages->table_name_meta; 478 479 return $meta_query->get_sql( 'message', 'm', 'id' ); 480 } 481 482 return $sql_array; 436 483 } 437 484
Note: See TracChangeset
for help on using the changeset viewer.