Changeset 1021 for trunk/bp-messages/bp-messages-classes.php
- Timestamp:
- 02/06/2009 03:07:48 AM (17 years ago)
- File:
-
- 1 edited
-
trunk/bp-messages/bp-messages-classes.php (modified) (35 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-messages/bp-messages-classes.php
r713 r1021 38 38 global $wpdb, $bp; 39 39 40 $thread = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM " . $bp['messages']['table_name_threads'] . "WHERE id = %d", $id ) );40 $thread = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$bp->messages->table_name_threads} WHERE id = %d", $id ) ); 41 41 42 42 if ( $thread ) { … … 63 63 foreach ( $this->message_ids as $key => $message_id ) { 64 64 if ( $this->box == 'sentbox' ) { 65 if ( !messages_is_user_sender( $bp ['loggedin_userid'], $message_id ) ) {65 if ( !messages_is_user_sender( $bp->loggedin_user->id, $message_id ) ) { 66 66 unset( $this->message_ids[$key] ); 67 67 } else { … … 69 69 } 70 70 } else { 71 if ( messages_is_user_sender( $bp ['loggedin_userid'], $message_id ) ) {71 if ( messages_is_user_sender( $bp->loggedin_user->id, $message_id ) ) { 72 72 unset( $this->message_ids[$key] ); 73 73 } else { … … 94 94 $this->unread_count = $this->get_unread(); 95 95 96 $last_message = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM " . $bp['messages']['table_name_messages'] . "WHERE id = %d", $this->last_message_id ) );96 $last_message = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$bp->messages->table_name_messages} WHERE id = %d", $this->last_message_id ) ); 97 97 98 98 if ( $last_message ) { … … 111 111 112 112 if ( $this->message_ids) 113 return $wpdb->get_results( "SELECT * FROM " . $bp['messages']['table_name_messages'] . "WHERE id IN (" . $wpdb->escape($this->message_ids) . ")" );113 return $wpdb->get_results( "SELECT * FROM {$bp->messages->table_name_messages} WHERE id IN (" . $wpdb->escape($this->message_ids) . ")" ); 114 114 else 115 115 return false; … … 119 119 global $wpdb, $bp; 120 120 121 $sql = $wpdb->prepare( "SELECT unread_count FROM " . $bp['messages']['table_name_recipients'] . " WHERE thread_id = %d AND user_id = %d", $this->thread_id, $bp['loggedin_userid']);121 $sql = $wpdb->prepare( "SELECT unread_count FROM {$bp->messages->table_name_recipients} WHERE thread_id = %d AND user_id = %d", $this->thread_id, $bp->loggedin_user->id ); 122 122 $unread_count = $wpdb->get_var($sql); 123 123 … … 136 136 global $wpdb, $bp; 137 137 138 $recipients = $wpdb->get_col( $wpdb->prepare( "SELECT user_id FROM " . $bp['messages']['table_name_recipients'] . "WHERE thread_id = %d", $this->thread_id ) );138 $recipients = $wpdb->get_col( $wpdb->prepare( "SELECT user_id FROM {$bp->messages->table_name_recipients} WHERE thread_id = %d", $this->thread_id ) ); 139 139 140 140 for ( $i = 0; $i < count($recipients); $i++ ) { 141 141 $recipient = $recipients[$i]; 142 142 143 if ( count($recipients) > 1 && $recipient != $bp ['loggedin_userid'])143 if ( count($recipients) > 1 && $recipient != $bp->loggedin_user->id ) 144 144 $recipient_ids[] = $recipient; 145 145 } … … 153 153 global $wpdb, $bp; 154 154 155 $delete_for_user = $wpdb->query( $wpdb->prepare( "UPDATE " . $bp['messages']['table_name_recipients'] . " SET is_deleted = 1 WHERE thread_id = %d AND user_id = %d", $thread_id, $bp['loggedin_userid']) );155 $delete_for_user = $wpdb->query( $wpdb->prepare( "UPDATE {$bp->messages->table_name_recipients} SET is_deleted = 1 WHERE thread_id = %d AND user_id = %d", $thread_id, $bp->loggedin_user->id ) ); 156 156 157 157 // Check to see if any more recipients remain for this message 158 158 // if not, then delete the message from the database. 159 $recipients = $wpdb->get_results( $wpdb->prepare( "SELECT id FROM " . $bp['messages']['table_name_recipients'] . "WHERE thread_id = %d AND is_deleted = 0", $thread_id ) );159 $recipients = $wpdb->get_results( $wpdb->prepare( "SELECT id FROM {$bp->messages->table_name_recipients} WHERE thread_id = %d AND is_deleted = 0", $thread_id ) ); 160 160 161 161 if ( !$recipients ) { 162 162 // Get message ids: 163 $message_ids = $wpdb->get_var( $wpdb->prepare( "SELECT message_ids FROM " . $bp['messages']['table_name_threads'] . "WHERE id = %d", $thread_id ) );163 $message_ids = $wpdb->get_var( $wpdb->prepare( "SELECT message_ids FROM {$bp->messages->table_name_threads} WHERE id = %d", $thread_id ) ); 164 164 $message_ids = unserialize($message_ids); 165 165 166 166 // delete thread: 167 $wpdb->query( $wpdb->prepare( "DELETE FROM " . $bp['messages']['table_name_threads'] . "WHERE id = %d", $thread_id ) );167 $wpdb->query( $wpdb->prepare( "DELETE FROM {$bp->messages->table_name_threads} WHERE id = %d", $thread_id ) ); 168 168 169 169 // delete messages: 170 170 for ( $i = 0; $i < count($message_ids); $i++ ) { 171 $wpdb->query( $wpdb->prepare( "DELETE FROM " . $bp['messages']['table_name_messages'] . "WHERE id = %d", $message_ids[$i] ) );171 $wpdb->query( $wpdb->prepare( "DELETE FROM {$bp->messages->table_name_messages} WHERE id = %d", $message_ids[$i] ) ); 172 172 } 173 173 174 174 // delete the recipients 175 $wpdb->query( $wpdb->prepare( "DELETE FROM " . $bp['messages']['table_name_recipients'] . "WHERE id = %d", $thread_id ) );175 $wpdb->query( $wpdb->prepare( "DELETE FROM {$bp->messages->table_name_recipients} WHERE id = %d", $thread_id ) ); 176 176 } 177 177 … … 186 186 $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); 187 187 188 $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.is_deleted = 0 AND r.user_id = %d$exclude_sender ORDER BY t.last_post_date DESC$pag_sql", $bp['loggedin_userid']);188 $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.is_deleted = 0 AND r.user_id = %d$exclude_sender ORDER BY t.last_post_date DESC$pag_sql", $bp->loggedin_user->id ); 189 189 190 190 if ( !$thread_ids = $wpdb->get_results($sql) ) … … 207 207 global $wpdb, $bp; 208 208 209 $sql = $wpdb->prepare( "UPDATE " . $bp['messages']['table_name_recipients'] . " SET unread_count = 0 WHERE user_id = %d AND thread_id = %d", $bp['loggedin_userid'], $thread_id );209 $sql = $wpdb->prepare( "UPDATE {$bp->messages->table_name_recipients} SET unread_count = 0 WHERE user_id = %d AND thread_id = %d", $bp->loggedin_user->id, $thread_id ); 210 210 $wpdb->query($sql); 211 211 } … … 214 214 global $wpdb, $bp; 215 215 216 $sql = $wpdb->prepare( "UPDATE " . $bp['messages']['table_name_recipients'] . " SET unread_count = 1 WHERE user_id = %d AND thread_id = %d", $bp['loggedin_userid'], $thread_id );216 $sql = $wpdb->prepare( "UPDATE {$bp->messages->table_name_recipients} SET unread_count = 1 WHERE user_id = %d AND thread_id = %d", $bp->loggedin_user->id, $thread_id ); 217 217 $wpdb->query($sql); 218 218 } … … 225 225 $exclude_sender = ' AND sender_only != 1'; 226 226 227 return (int) $wpdb->get_var( $wpdb->prepare( "SELECT count(thread_id) FROM " . $bp['messages']['table_name_recipients'] . "WHERE user_id = %d AND is_deleted = 0$exclude_sender", $user_id ) );227 return (int) $wpdb->get_var( $wpdb->prepare( "SELECT count(thread_id) FROM {$bp->messages->table_name_recipients} WHERE user_id = %d AND is_deleted = 0$exclude_sender", $user_id ) ); 228 228 } 229 229 … … 231 231 global $wpdb, $bp; 232 232 233 $sender_ids = $wpdb->get_var( $wpdb->prepare( "SELECT sender_ids FROM " . $bp['messages']['table_name_threads'] . "WHERE id = %d", $thread_id ) );233 $sender_ids = $wpdb->get_var( $wpdb->prepare( "SELECT sender_ids FROM {$bp->messages->table_name_threads} WHERE id = %d", $thread_id ) ); 234 234 235 235 if ( !$sender_ids ) … … 238 238 $sender_ids = unserialize($sender_ids); 239 239 240 return in_array( $bp ['loggedin_userid'], $sender_ids );240 return in_array( $bp->loggedin_user->id, $sender_ids ); 241 241 } 242 242 … … 244 244 global $wpdb, $bp; 245 245 246 $sql = $wpdb->prepare("SELECT last_sender_id FROM " . $bp['messages']['table_name_threads'] . "WHERE id = %d", $thread_id);246 $sql = $wpdb->prepare("SELECT last_sender_id FROM {$bp->messages->table_name_threads} WHERE id = %d", $thread_id); 247 247 248 248 if ( !$sender_id = $wpdb->get_var($sql) ) … … 255 255 global $wpdb, $bp; 256 256 257 $sql = $wpdb->prepare( "SELECT unread_count FROM " . $bp['messages']['table_name_recipients'] . " WHERE user_id = %d AND is_deleted = 0", $bp['loggedin_userid']);257 $sql = $wpdb->prepare( "SELECT unread_count FROM {$bp->messages->table_name_recipients} WHERE user_id = %d AND is_deleted = 0", $bp->loggedin_user->id ); 258 258 259 259 if ( !$unread_counts = $wpdb->get_results($sql) ) … … 271 271 global $wpdb, $bp; 272 272 273 $sql = $wpdb->prepare("SELECT id FROM " . $bp['messages']['table_name_recipients'] . " WHERE thread_id = %d AND user_id = %d", $id, $bp['loggedin_userid']);273 $sql = $wpdb->prepare("SELECT id FROM {$bp->messages->table_name_recipients} WHERE thread_id = %d AND user_id = %d", $id, $bp->loggedin_user->id ); 274 274 $has_access = $wpdb->get_var($sql); 275 275 … … 308 308 309 309 $this->date_sent = time(); 310 $this->sender_id = $bp ['loggedin_userid'];310 $this->sender_id = $bp->loggedin_user->id; 311 311 312 312 if ( $id ) { … … 318 318 global $wpdb, $bp; 319 319 320 $sql = $wpdb->prepare("SELECT * FROM " . $bp['messages']['table_name_messages'] . "WHERE id = %d", $id);320 $sql = $wpdb->prepare("SELECT * FROM {$bp->messages->table_name_messages} WHERE id = %d", $id); 321 321 322 322 if ( $message = $wpdb->get_row($sql) ) { … … 336 336 337 337 // First insert the message into the messages table 338 if ( !$wpdb->query( $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 )", $this->sender_id, $this->subject, $this->message, $this->date_sent, $this->message_order, $this->sender_is_group ) ) )338 if ( !$wpdb->query( $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 )", $this->sender_id, $this->subject, $this->message, $this->date_sent, $this->message_order, $this->sender_is_group ) ) ) 339 339 return false; 340 340 … … 342 342 if ( $this->thread_id ) { 343 343 // Select and update the current message ids for the thread. 344 $the_ids = $wpdb->get_row( $wpdb->prepare( "SELECT message_ids, sender_ids FROM " . $bp['messages']['table_name_threads'] . "WHERE id = %d", $this->thread_id ) );344 $the_ids = $wpdb->get_row( $wpdb->prepare( "SELECT message_ids, sender_ids FROM {$bp->messages->table_name_threads} WHERE id = %d", $this->thread_id ) ); 345 345 $message_ids = unserialize($the_ids->message_ids); 346 346 $message_ids[] = $wpdb->insert_id; … … 359 359 360 360 // Update the thread the message belongs to. 361 $wpdb->query( $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 ) );361 $wpdb->query( $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 ) ); 362 362 363 363 // Find the recipients and update the unread counts for each … … 366 366 367 367 for ( $i = 0; $i < count($this->recipients); $i++ ) { 368 if ( $this->recipients[$i]->user_id != $bp ['loggedin_userid'])369 $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, $this->recipients[$i] ) );368 if ( $this->recipients[$i]->user_id != $bp->loggedin_user->id ) 369 $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, $this->recipients[$i] ) ); 370 370 } 371 371 } else { … … 373 373 $message_id = $wpdb->insert_id; 374 374 $serialized_message_id = serialize( array( (int)$message_id ) ); 375 $serialized_sender_id = serialize( array( (int)$bp ['loggedin_userid']) );376 377 $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 );375 $serialized_sender_id = serialize( array( (int)$bp->loggedin_user->id ) ); 376 377 $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 ); 378 378 379 379 if ( $wpdb->query($sql) === false ) … … 385 385 // Add a new entry for each recipient; 386 386 for ( $i = 0; $i < count($this->recipients); $i++ ) { 387 $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 ) );387 $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 ) ); 388 388 } 389 389 390 390 if ( !in_array( $this->sender_id, $this->recipients ) ) { 391 391 // Finally, add a recipient entry for the sender, as replies need to go to this person too. 392 $wpdb->query( $wpdb->prepare( "INSERT INTO " . $bp['messages']['table_name_recipients'] . "( user_id, thread_id, unread_count, sender_only ) VALUES ( %d, %d, 0, 0 )", $this->sender_id, $this->thread_id ) );392 $wpdb->query( $wpdb->prepare( "INSERT INTO {$bp->messages->table_name_recipients} ( user_id, thread_id, unread_count, sender_only ) VALUES ( %d, %d, 0, 0 )", $this->sender_id, $this->thread_id ) ); 393 393 } 394 394 } … … 403 403 global $bp, $wpdb; 404 404 405 return $wpdb->get_results( $wpdb->prepare( "SELECT user_id FROM " . $bp['messages']['table_name_recipients'] . "WHERE thread_id = %d", $this->thread_id ) );405 return $wpdb->get_results( $wpdb->prepare( "SELECT user_id FROM {$bp->messages->table_name_recipients} WHERE thread_id = %d", $this->thread_id ) ); 406 406 } 407 407 … … 425 425 global $wpdb, $bp; 426 426 427 $message_ids = $wpdb->get_var( $wpdb->prepare( "SELECT message_ids FROM " . $bp['messages']['table_name_threads'] . "WHERE id = %d", $thread_id ) );427 $message_ids = $wpdb->get_var( $wpdb->prepare( "SELECT message_ids FROM {$bp->messages->table_name_threads} WHERE id = %d", $thread_id ) ); 428 428 $message_ids = implode( ',', unserialize($message_ids)); 429 429 430 $sql = $wpdb->prepare( "SELECT id FROM " . $bp['messages']['table_name_messages'] . " WHERE sender_id = %d AND id IN (" . $wpdb->escape($message_ids) . ") ORDER BY date_sent DESC LIMIT 1", $bp['loggedin_userid']);430 $sql = $wpdb->prepare( "SELECT id FROM {$bp->messages->table_name_messages} WHERE sender_id = %d AND id IN (" . $wpdb->escape($message_ids) . ") ORDER BY date_sent DESC LIMIT 1", $bp->loggedin_user->id ); 431 431 return $wpdb->get_var($sql); 432 432 } … … 434 434 function is_user_sender( $user_id, $message_id ) { 435 435 global $wpdb, $bp; 436 return $wpdb->get_var( $wpdb->prepare( "SELECT id FROM " . $bp['messages']['table_name_messages'] . "WHERE sender_id = %d AND id = %d", $user_id, $message_id ) );436 return $wpdb->get_var( $wpdb->prepare( "SELECT id FROM {$bp->messages->table_name_messages} WHERE sender_id = %d AND id = %d", $user_id, $message_id ) ); 437 437 } 438 438 439 439 function get_message_sender( $message_id ) { 440 440 global $wpdb, $bp; 441 return $wpdb->get_var( $wpdb->prepare( "SELECT sender_id FROM " . $bp['messages']['table_name_messages'] . "WHERE id = %d", $message_id ) );441 return $wpdb->get_var( $wpdb->prepare( "SELECT sender_id FROM {$bp->messages->table_name_messages} WHERE id = %d", $message_id ) ); 442 442 } 443 443 } … … 460 460 global $wpdb, $bp; 461 461 462 $notice = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM " . $bp['messages']['table_name_notices'] . "WHERE id = %d", $this->id ) );462 $notice = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$bp->messages->table_name_notices} WHERE id = %d", $this->id ) ); 463 463 464 464 if ( $notice ) { … … 474 474 475 475 if ( !$this->id ) { 476 $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 );476 $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 ); 477 477 } else { 478 $sql = $wpdb->prepare( "UPDATE " . $bp['messages']['table_name_notices'] . "SET subject = %s, message = %s, is_active = %d WHERE id = %d", $this->subject, $this->message, $this->is_active, $this->id );478 $sql = $wpdb->prepare( "UPDATE {$bp->messages->table_name_notices} SET subject = %s, message = %s, is_active = %d WHERE id = %d", $this->subject, $this->message, $this->is_active, $this->id ); 479 479 } 480 480 … … 486 486 487 487 // Now deactivate all notices apart from the new one. 488 $wpdb->query( $wpdb->prepare( "UPDATE " . $bp['messages']['table_name_notices'] . "SET is_active = 0 WHERE id != %d", $id ) );489 490 update_usermeta( $bp ['loggedin_userid'], 'last_activity', date( 'Y-m-d H:i:s' ) );488 $wpdb->query( $wpdb->prepare( "UPDATE {$bp->messages->table_name_notices} SET is_active = 0 WHERE id != %d", $id ) ); 489 490 update_usermeta( $bp->loggedin_user->id, 'last_activity', date( 'Y-m-d H:i:s' ) ); 491 491 492 492 return true; … … 512 512 global $wpdb, $bp; 513 513 514 $sql = $wpdb->prepare( "DELETE FROM " . $bp['messages']['table_name_notices'] . "WHERE id = %d", $this->id );514 $sql = $wpdb->prepare( "DELETE FROM {$bp->messages->table_name_notices} WHERE id = %d", $this->id ); 515 515 516 516 if ( !$wpdb->query($sql) ) … … 525 525 global $wpdb, $bp; 526 526 527 $notices = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM " . $bp['messages']['table_name_notices'] . "ORDER BY date_sent DESC" ) );527 $notices = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->messages->table_name_notices} ORDER BY date_sent DESC" ) ); 528 528 return $notices; 529 529 } … … 532 532 global $wpdb, $bp; 533 533 534 $notice_count = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM " . $bp ['messages']['table_name_notices']) );534 $notice_count = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM " . $bp->messages->table_name_notices ) ); 535 535 return $notice_count; 536 536 } … … 539 539 global $wpdb, $bp; 540 540 541 $notice_id = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM " . $bp['messages']['table_name_notices'] . "WHERE is_active = 1") );541 $notice_id = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM {$bp->messages->table_name_notices} WHERE is_active = 1") ); 542 542 return new BP_Messages_Notice($notice_id); 543 543 }
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)