Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
08/01/2008 04:03:12 AM (17 years ago)
Author:
apeatling
Message:
  • Moved all components to use the new $bp global. This replaces the mush of BuddyPress specific globals and now uses a specific function in each component to set any globals.
  • Moved all avatar functionality into the core component. This is in anticipation of group avatars.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-messages/bp-messages-classes.php

    r249 r251  
    3434   
    3535    function populate( $id ) { 
    36         global $wpdb, $bp_messages_table_name_threads, $bp_messages_table_name_messages;
    37         global $userdata;
    38 
    39         $sql = $wpdb->prepare( "SELECT * FROM $bp_messages_table_name_threads WHERE id = %d", $id );
     36        global $wpdb, $bp, $userdata;
     37
     38        $sql = $wpdb->prepare( "SELECT * FROM " . $bp['messages']['table_name_threads'] . " WHERE id = %d", $id );
    4039        $thread = $wpdb->get_row($sql);
    4140       
     
    7271                }
    7372               
    74                 $sql = $wpdb->prepare( "SELECT * FROM $bp_messages_table_name_messages WHERE id = %d", $this->last_message_id );   
     73                $sql = $wpdb->prepare( "SELECT * FROM " . $bp['messages']['table_name_messages'] . " WHERE id = %d", $this->last_message_id ); 
    7574                $last_message = $wpdb->get_row($sql);
    7675               
     
    8584   
    8685    function get_messages() {
    87         global $wpdb, $userdata;
    88         global $bp_messages_table_name_messages;
    89            
    90         $sql = "SELECT * FROM $bp_messages_table_name_messages WHERE id IN (" . $wpdb->escape($this->message_ids) . ")";
     86        global $wpdb, $userdata, $bp;
     87           
     88        $sql = "SELECT * FROM " . $bp['messages']['table_name_messages'] . " WHERE id IN (" . $wpdb->escape($this->message_ids) . ")";
    9189       
    9290        if ( !$messages = $wpdb->get_results($sql) )
     
    9795
    9896    function get_unread() {
    99         global $wpdb, $bp_messages_table_name_recipients, $userdata;
    100 
    101         $sql = $wpdb->prepare( "SELECT unread_count FROM $bp_messages_table_name_recipients WHERE thread_id = %d AND user_id = %d", $this->thread_id, $userdata->ID );
     97        global $wpdb, $bp, $userdata;
     98
     99        $sql = $wpdb->prepare( "SELECT unread_count FROM " . $bp['messages']['table_name_recipients'] . " WHERE thread_id = %d AND user_id = %d", $this->thread_id, $userdata->ID );
    102100        $unread_count = $wpdb->get_var($sql);
    103101       
     
    114112   
    115113    function get_recipients() {
    116         global $wpdb, $userdata;
    117         global $bp_messages_table_name_recipients;
    118 
    119         $recipients = $wpdb->get_results( $wpdb->prepare( "SELECT user_id FROM $bp_messages_table_name_recipients WHERE thread_id = %d", $this->thread_id ) );
     114        global $wpdb, $userdata, $bp;
     115
     116        $recipients = $wpdb->get_results( $wpdb->prepare( "SELECT user_id FROM " . $bp['messages']['table_name_recipients'] . " WHERE thread_id = %d", $this->thread_id ) );
    120117
    121118        for ( $i = 0; $i < count($recipients); $i++ ) {
     
    132129   
    133130    function get_current_threads_for_user( $user_id, $box = 'inbox', $limit = null, $page = null ) {
    134         global $wpdb, $userdata;
    135         global $bp_messages_table_name_recipients;
    136         global $bp_messages_table_name_threads;
     131        global $wpdb, $userdata, $bp;
    137132
    138133        $exclude_sender = '';
     
    144139            $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
    145140           
    146         $sql = $wpdb->prepare( "SELECT r.thread_id FROM $bp_messages_table_name_recipients r, $bp_messages_table_name_threads t WHERE t.id = r.thread_id AND r.user_id = %d$exclude_sender ORDER BY t.last_post_date DESC$pag_sql", $userdata->ID);
     141        $sql = $wpdb->prepare( "SELECT r.thread_id FROM " . $bp['messages']['table_name_recipients'] . " r, " . $bp['messages']['table_name_threads'] . " t WHERE t.id = r.thread_id AND r.user_id = %d$exclude_sender ORDER BY t.last_post_date DESC$pag_sql", $userdata->ID);
    147142
    148143        if ( !$thread_ids = $wpdb->get_results($sql) )
     
    162157   
    163158    function mark_as_read( $thread_id ) {
    164         global $wpdb, $userdata;
    165         global $bp_messages_table_name_recipients;
    166        
    167         $sql = $wpdb->prepare( "UPDATE $bp_messages_table_name_recipients SET unread_count = 0 WHERE user_id = %d AND thread_id = %d", $userdata->ID, $thread_id );
     159        global $wpdb, $userdata, $bp;
     160       
     161        $sql = $wpdb->prepare( "UPDATE " . $bp['messages']['table_name_recipients'] . " SET unread_count = 0 WHERE user_id = %d AND thread_id = %d", $userdata->ID, $thread_id );
    168162        $wpdb->query($sql);
    169163    }
    170164   
    171165    function mark_as_unread( $thread_id ) {
    172         global $wpdb, $userdata;
    173         global $bp_messages_table_name_recipients;
    174        
    175         $sql = $wpdb->prepare( "UPDATE $bp_messages_table_name_recipients SET unread_count = 1 WHERE user_id = %d AND thread_id = %d", $userdata->ID, $thread_id );
     166        global $wpdb, $userdata, $bp;
     167       
     168        $sql = $wpdb->prepare( "UPDATE " . $bp['messages']['table_name_recipients'] . " SET unread_count = 1 WHERE user_id = %d AND thread_id = %d", $userdata->ID, $thread_id );
    176169        $wpdb->query($sql);
    177170    }
    178171   
    179172    function get_total_threads_for_user( $user_id, $box = 'inbox' ) {
    180         global $wpdb, $userdata;
    181         global $bp_messages_table_name_recipients;
    182         global $bp_messages_table_name_threads;
     173        global $wpdb, $userdata, $bp;
    183174
    184175        $exclude_sender = '';
     
    186177            $exclude_sender = ' AND sender_only != 1';
    187178
    188         return (int) $wpdb->get_var( $wpdb->prepare( "SELECT count(thread_id) FROM $bp_messages_table_name_recipients WHERE user_id = %d$exclude_sender", $user_id ) );
     179        return (int) $wpdb->get_var( $wpdb->prepare( "SELECT count(thread_id) FROM " . $bp['messages']['table_name_recipients'] . " WHERE user_id = %d$exclude_sender", $user_id ) );
    189180    }
    190181   
    191182    function user_is_sender($thread_id) {
    192         global $wpdb, $bp_messages_table_name_threads;
    193         global $userdata;
    194        
    195         $sender_ids = $wpdb->get_var( $wpdb->prepare( "SELECT sender_ids FROM $bp_messages_table_name_threads WHERE id = %d", $thread_id ) );   
     183        global $wpdb, $bp, $userdata;
     184       
     185        $sender_ids = $wpdb->get_var( $wpdb->prepare( "SELECT sender_ids FROM " . $bp['messages']['table_name_threads'] . " WHERE id = %d", $thread_id ) );
    196186       
    197187        if ( !$sender_ids )
     
    204194
    205195    function get_last_sender($thread_id) {
    206         global $wpdb, $bp_messages_table_name_threads;
    207         global $userdata;
    208 
    209         $sql = $wpdb->prepare("SELECT last_sender_id FROM $bp_messages_table_name_threads WHERE id = %d", $thread_id);
     196        global $wpdb, $bp, $userdata;
     197
     198        $sql = $wpdb->prepare("SELECT last_sender_id FROM " . $bp['messages']['table_name_threads'] . " WHERE id = %d", $thread_id);
    210199
    211200        if ( !$sender_id = $wpdb->get_var($sql) )
     
    216205   
    217206    function delete($thread_id) {
    218         global $wpdb, $userdata;
    219         global $bp_messages_table_name_recipients, $bp_messages_table_name_messages, $bp_messages_table_name_threads;   
    220        
    221         $sql = $wpdb->prepare( "DELETE FROM $bp_messages_table_name_recipients WHERE thread_id = %d AND user_id = %d", $thread_id, $userdata->ID);
     207        global $wpdb, $userdata, $bp;
     208       
     209        $sql = $wpdb->prepare( "DELETE FROM " . $bp['messages']['table_name_recipients'] . " WHERE thread_id = %d AND user_id = %d", $thread_id, $userdata->ID);
    222210       
    223211        if ( !$result = $wpdb->query($sql) )
     
    226214        // Check to see if any more recipients remain for this message
    227215        // if not, then delete the message from the database.
    228         $recipients =  $wpdb->get_results( $wpdb->prepare( "SELECT id FROM $bp_messages_table_name_recipients WHERE thread_id = %d", $thread_id ) );
     216        $recipients =  $wpdb->get_results( $wpdb->prepare( "SELECT id FROM " . $bp['messages']['table_name_recipients'] . " WHERE thread_id = %d", $thread_id ) );
    229217
    230218        if ( !$recipients ) {
    231219            // Get message ids:
    232             $message_ids = $wpdb->get_var( $wpdb->prepare( "SELECT message_ids FROM $bp_messages_table_name_threads WHERE id = %d", $thread_id ) );
     220            $message_ids = $wpdb->get_var( $wpdb->prepare( "SELECT message_ids FROM " . $bp['messages']['table_name_threads'] . " WHERE id = %d", $thread_id ) );
    233221            $message_ids = unserialize($message_ids);
    234222           
    235223            // delete thread:
    236             $wpdb->query( $wpdb->prepare( "DELETE FROM $bp_messages_table_name_threads WHERE id = %d", $thread_id ) );
     224            $wpdb->query( $wpdb->prepare( "DELETE FROM " . $bp['messages']['table_name_threads'] . " WHERE id = %d", $thread_id ) );
    237225           
    238226            // delete messages:
    239227            for ( $i = 0; $i < count($message_ids); $i++ ) {
    240                 $wpdb->query( $wpdb->prepare( "DELETE FROM $bp_messages_table_name_messages WHERE id = %d", $message_ids[$i] ) );
     228                $wpdb->query( $wpdb->prepare( "DELETE FROM " . $bp['messages']['table_name_messages'] . " WHERE id = %d", $message_ids[$i] ) );
    241229            }
    242230        }
     
    247235   
    248236    function get_inbox_count() {
    249         global $wpdb, $bp_messages_table_name_recipients, $userdata;
    250 
    251         $sql = $wpdb->prepare( "SELECT unread_count FROM $bp_messages_table_name_recipients WHERE user_id = %d", $userdata->ID);
     237        global $wpdb, $bp, $userdata;
     238
     239        $sql = $wpdb->prepare( "SELECT unread_count FROM " . $bp['messages']['table_name_recipients'] . " WHERE user_id = %d", $userdata->ID);
    252240
    253241        if ( !$unread_counts = $wpdb->get_results($sql) )
     
    263251   
    264252    function check_access($id) {
    265         global $wpdb, $bp_messages_table_name_recipients, $userdata;
    266        
    267         $sql = $wpdb->prepare("SELECT id FROM $bp_messages_table_name_recipients WHERE thread_id = %d AND user_id = %d", $id, $userdata->ID );
     253        global $wpdb, $bp, $userdata;
     254       
     255        $sql = $wpdb->prepare("SELECT id FROM " . $bp['messages']['table_name_recipients'] . " WHERE thread_id = %d AND user_id = %d", $id, $userdata->ID );
    268256        $has_access = $wpdb->get_var($sql);
    269257       
     
    310298   
    311299    function populate( $id ) {
    312         global $wpdb, $bp_messages_table_name_messages;
    313        
    314         $sql = $wpdb->prepare("SELECT * FROM $bp_messages_table_name_messages WHERE id = %d", $id);
     300        global $wpdb, $bp;
     301       
     302        $sql = $wpdb->prepare("SELECT * FROM " . $bp['messages']['table_name_messages'] . " WHERE id = %d", $id);
    315303
    316304        if ( $message = $wpdb->get_row($sql) ) {
     
    327315   
    328316    function send() {   
    329         global $wpdb, $userdata;
    330         global $bp_messages_table_name_threads;
    331         global $bp_messages_table_name_messages;
    332         global $bp_messages_table_name_recipients;
     317        global $wpdb, $userdata, $bp;
    333318
    334319        // First insert the message into the messages table
    335         $sql = $wpdb->prepare( "INSERT INTO $bp_messages_table_name_messages ( sender_id, subject, message, date_sent, message_order, sender_is_group ) VALUES ( %d, %s, %s, FROM_UNIXTIME(%d), %d, %d )", $userdata->ID, $this->subject, $this->message, $this->date_sent, $this->message_order, $this->sender_is_group );
     320        $sql = $wpdb->prepare( "INSERT INTO " . $bp['messages']['table_name_messages'] . " ( sender_id, subject, message, date_sent, message_order, sender_is_group ) VALUES ( %d, %s, %s, FROM_UNIXTIME(%d), %d, %d )", $userdata->ID, $this->subject, $this->message, $this->date_sent, $this->message_order, $this->sender_is_group );
    336321
    337322        if ( $wpdb->query($sql) === false )
     
    341326        if ( $this->thread_id ) {
    342327            // Select and update the current message ids for the thread.
    343             $the_ids = $wpdb->get_row( $wpdb->prepare( "SELECT message_ids, sender_ids FROM $bp_messages_table_name_threads WHERE id = %d", $this->thread_id ) );
     328            $the_ids = $wpdb->get_row( $wpdb->prepare( "SELECT message_ids, sender_ids FROM " . $bp['messages']['table_name_threads'] . " WHERE id = %d", $this->thread_id ) );
    344329            $message_ids = unserialize($the_ids->message_ids);
    345330            $message_ids[] = $wpdb->insert_id;
     
    354339            $sender_ids = serialize($sender_ids);           
    355340           
    356             $sql = $wpdb->prepare( "UPDATE $bp_messages_table_name_threads SET message_ids = %s, sender_ids = %s, last_message_id = %d, last_sender_id = %d WHERE id = %d", $message_ids, $sender_ids, $wpdb->insert_id, $this->sender_id, $this->thread_id );
     341            $sql = $wpdb->prepare( "UPDATE " . $bp['messages']['table_name_threads'] . " SET message_ids = %s, sender_ids = %s, last_message_id = %d, last_sender_id = %d WHERE id = %d", $message_ids, $sender_ids, $wpdb->insert_id, $this->sender_id, $this->thread_id );
    357342
    358343            if ( $wpdb->query($sql) === false )
     
    360345           
    361346            // Find the recipients and update the unread counts for each
    362             $recipients = $wpdb->get_results( $wpdb->prepare( "SELECT user_id FROM $bp_messages_table_name_recipients WHERE thread_id = %d", $this->thread_id ) );
     347            $recipients = $wpdb->get_results( $wpdb->prepare( "SELECT user_id FROM " . $bp['messages']['table_name_recipients'] . " WHERE thread_id = %d", $this->thread_id ) );
    363348           
    364349            for ( $i = 0; $i < count($recipients); $i++ ) {
    365350                if ( $recipients[$i]->user_id != $userdata->ID )
    366                     $wpdb->query( $wpdb->prepare( "UPDATE $bp_messages_table_name_recipients SET unread_count = unread_count + 1, sender_only = 0 WHERE thread_id = %d AND user_id = %d", $this->thread_id, $recipients[$i]->user_id ) );
     351                    $wpdb->query( $wpdb->prepare( "UPDATE " . $bp['messages']['table_name_recipients'] . " SET unread_count = unread_count + 1, sender_only = 0 WHERE thread_id = %d AND user_id = %d", $this->thread_id, $recipients[$i]->user_id ) );
    367352            }
    368353        } else {
     
    372357            $serialized_sender_id = serialize( array( (int)$userdata->ID ) );
    373358           
    374             $sql = $wpdb->prepare( "INSERT INTO $bp_messages_table_name_threads ( message_ids, sender_ids, first_post_date, last_post_date, last_message_id, last_sender_id ) VALUES ( %s, %s, FROM_UNIXTIME(%d), FROM_UNIXTIME(%d), %d, %d )", $serialized_message_id, $serialized_sender_id, $this->date_sent, $this->date_sent, $message_id, $this->sender_id );
     359            $sql = $wpdb->prepare( "INSERT INTO " . $bp['messages']['table_name_threads'] . " ( message_ids, sender_ids, first_post_date, last_post_date, last_message_id, last_sender_id ) VALUES ( %s, %s, FROM_UNIXTIME(%d), FROM_UNIXTIME(%d), %d, %d )", $serialized_message_id, $serialized_sender_id, $this->date_sent, $this->date_sent, $message_id, $this->sender_id );
    375360           
    376361            if ( $wpdb->query($sql) === false )
     
    381366            // Add a new entry for each recipient;
    382367            for ( $i = 0; $i < count($this->recipients); $i++ ) {
    383                 $wpdb->query( $wpdb->prepare( "INSERT INTO $bp_messages_table_name_recipients ( user_id, thread_id, unread_count ) VALUES ( %d, %d, 1 )", $this->recipients[$i], $this->thread_id ) );
     368                $wpdb->query( $wpdb->prepare( "INSERT INTO " . $bp['messages']['table_name_recipients'] . " ( user_id, thread_id, unread_count ) VALUES ( %d, %d, 1 )", $this->recipients[$i], $this->thread_id ) );
    384369            }
    385370           
    386371            if ( !in_array( $this->sender_id, $this->recipients ) ) {
    387372                // Finally, add a recipient entry for the sender, as replies need to go to this person too.
    388                 $wpdb->query( $wpdb->prepare( "INSERT INTO $bp_messages_table_name_recipients ( user_id, thread_id, unread_count, sender_only ) VALUES ( %d, %d, 0, 1 )", $this->sender_id, $this->thread_id ) );
     373                $wpdb->query( $wpdb->prepare( "INSERT INTO " . $bp['messages']['table_name_recipients'] . " ( user_id, thread_id, unread_count, sender_only ) VALUES ( %d, %d, 0, 1 )", $this->sender_id, $this->thread_id ) );
    389374            }
    390375        }
     
    416401   
    417402    function get_last_sent_for_user( $thread_id ) {
    418         global $wpdb, $userdata;
    419         global $bp_messages_table_name_messages, $bp_messages_table_name_threads;
    420        
    421         $message_ids = $wpdb->get_var( $wpdb->prepare( "SELECT message_ids FROM $bp_messages_table_name_threads WHERE id = %d", $thread_id ) );
     403        global $wpdb, $userdata, $bp;
     404       
     405        $message_ids = $wpdb->get_var( $wpdb->prepare( "SELECT message_ids FROM " . $bp['messages']['table_name_threads'] . " WHERE id = %d", $thread_id ) );
    422406        $message_ids = implode( ',', unserialize($message_ids));
    423407
    424         $sql = "SELECT id FROM $bp_messages_table_name_messages WHERE sender_id = $userdata->ID AND id IN ($message_ids) ORDER BY date_sent DESC LIMIT 1";
     408        $sql = "SELECT id FROM " . $bp['messages']['table_name_messages'] . " WHERE sender_id = $userdata->ID AND id IN ($message_ids) ORDER BY date_sent DESC LIMIT 1";
    425409        return $wpdb->get_var($sql);
    426410    }
     
    443427   
    444428    function populate() {
    445         global $wpdb, $bp_messages_table_name_notices;
    446        
    447         $notice = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $bp_messages_table_name_notices WHERE id = %d", $this->id ) );
     429        global $wpdb, $bp;
     430       
     431        $notice = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM " . $bp['messages']['table_name_notices'] . " WHERE id = %d", $this->id ) );
    448432       
    449433        if ( $notice ) {
     
    456440   
    457441    function save() {
    458         global $wpdb, $bp_messages_table_name_notices;
     442        global $wpdb, $bp;
    459443       
    460444        if ( !$this->id ) {
    461             $sql = $wpdb->prepare( "INSERT INTO $bp_messages_table_name_notices (subject, message, date_sent, is_active) VALUES (%s, %s, FROM_UNIXTIME(%d), %d)", $this->subject, $this->message, $this->date_sent, $this->is_active );
     445            $sql = $wpdb->prepare( "INSERT INTO " . $bp['messages']['table_name_notices'] . " (subject, message, date_sent, is_active) VALUES (%s, %s, FROM_UNIXTIME(%d), %d)", $this->subject, $this->message, $this->date_sent, $this->is_active );   
    462446        } else {
    463             $sql = $wpdb->prepare( "UPDATE $bp_messages_table_name_notices SET subject = %s, message = %s, date_sent = FROM_UNIXTIME(%d), is_active = %d WHERE id = %d", $this->subject, $this->message, $this->date_sent, $this->is_active, $this->id );               
     447            $sql = $wpdb->prepare( "UPDATE " . $bp['messages']['table_name_notices'] . " SET subject = %s, message = %s, date_sent = FROM_UNIXTIME(%d), is_active = %d WHERE id = %d", $this->subject, $this->message, $this->date_sent, $this->is_active, $this->id );             
    464448        }
    465449   
     
    471455           
    472456        // Now deactivate all notices apart from the new one.
    473         $wpdb->query( $wpdb->prepare( "UPDATE $bp_messages_table_name_notices SET is_active = 0 WHERE id != %d", $id ) );
     457        $wpdb->query( $wpdb->prepare( "UPDATE " . $bp['messages']['table_name_notices'] . " SET is_active = 0 WHERE id != %d", $id ) );
    474458       
    475459        update_usermeta( $userdata->ID, 'last_activity', date( 'Y-m-d H:i:s' ) );
     
    495479   
    496480    function delete() {
    497         global $wpdb, $bp_messages_table_name_notices;
    498        
    499         $sql = $wpdb->prepare( "DELETE FROM $bp_messages_table_name_notices WHERE id = %d", $this->id );
     481        global $wpdb, $bp;
     482       
     483        $sql = $wpdb->prepare( "DELETE FROM " . $bp['messages']['table_name_notices'] . " WHERE id = %d", $this->id );
    500484       
    501485        if ( !$wpdb->query($sql) )
     
    508492   
    509493    function get_notices() {
    510         global $wpdb, $bp_messages_table_name_notices;
    511        
    512         $notices = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $bp_messages_table_name_notices ORDER BY date_sent DESC" ) );
     494        global $wpdb, $bp;
     495       
     496        $notices = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM " . $bp['messages']['table_name_notices'] . " ORDER BY date_sent DESC" ) );
    513497        return $notices;
    514498    }
    515499   
    516500    function get_total_notice_count() {
    517         global $wpdb, $bp_messages_table_name_notices;
    518        
    519         $notice_count = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM $bp_messages_table_name_notices" ) );
     501        global $wpdb, $bp;
     502       
     503        $notice_count = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM " . $bp['messages']['table_name_notices'] ) );
    520504        return $notice_count;
    521505    }
    522506   
    523507    function get_active() {
    524         global $wpdb, $bp_messages_table_name_notices;
    525        
    526         $notice_id = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM $bp_messages_table_name_notices WHERE is_active = 1") );
     508        global $wpdb, $bp;
     509       
     510        $notice_id = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM " . $bp['messages']['table_name_notices'] . " WHERE is_active = 1") );
    527511        return new BP_Messages_Notice($notice_id);
    528512    }
Note: See TracChangeset for help on using the changeset viewer.