Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
06/16/2015 10:58:07 PM (10 years ago)
Author:
johnjamesjacoby
Message:

Messages: Modify message thread queries to exclude messages in deleted threads from "Starred" messages.

This change ensures that deleted messages do not appear in the "Starred" section of a member's private messages. Previously, it was possible to delete a private message thread, and still have it come back to life in the "Starred" messages section.

Fixes #6483. Props r-a-y. (2.3 branch, for 2.3.2)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.3/src/bp-messages/classes/class-bp-messages-thread.php

    r9949 r9950  
    456456        $r['user_id'] = (int) $r['user_id'];
    457457
     458        // Default deleted SQL
     459        $deleted_sql = 'r.is_deleted = 0';
     460
    458461        switch ( $r['box'] ) {
    459462            case 'sentbox' :
     
    463466
    464467            case 'inbox' :
    465             default :
    466468                $user_id_sql = 'AND ' . $wpdb->prepare( 'r.user_id = %d', $r['user_id'] );
    467469                $sender_sql  = 'AND r.sender_only = 0';
     470                break;
     471
     472            // Omit user-deleted threads from all other custom message boxes
     473            default :
     474                $deleted_sql = $wpdb->prepare( '( r.user_id = %d AND r.is_deleted = 0 )', $r['user_id'] );
    468475                break;
    469476        }
     
    484491        $sql['select'] = 'SELECT m.thread_id, MAX(m.date_sent) AS date_sent';
    485492        $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']}";
    486         $sql['where']  = "WHERE r.is_deleted = 0 {$user_id_sql} {$sender_sql} {$type_sql} {$search_sql} {$meta_query_sql['where']}";
     493        $sql['where']  = "WHERE {$deleted_sql} {$user_id_sql} {$sender_sql} {$type_sql} {$search_sql} {$meta_query_sql['where']}";
    487494        $sql['misc']   = "GROUP BY m.thread_id ORDER BY date_sent DESC {$pag_sql}";
    488495
Note: See TracChangeset for help on using the changeset viewer.