2012-07-11 16:28:51 +00:00
< ? php
2012-08-08 12:00:19 +00:00
/**
* BuddyPress Messages Classes
*
* @ package BuddyPress
* @ subpackage MessagesClasses
*/
2012-07-11 16:28:51 +00:00
// Exit if accessed directly
if ( ! defined ( 'ABSPATH' ) ) exit ;
2012-08-08 12:00:19 +00:00
class BP_Messages_Thread {
2012-07-11 16:28:51 +00:00
var $thread_id ;
var $messages ;
var $recipients ;
var $sender_ids ;
var $unread_count ;
2012-08-08 12:00:19 +00:00
/**
* The content of the last message in this thread
*
* @ since BuddyPress ( 1.2 )
* @ var string
*/
public $last_message_content ;
/**
* The date of the last message in this thread
*
* @ since BuddyPress ( 1.2 )
* @ var string
*/
public $last_message_date ;
/**
* The ID of the last message in this thread
*
* @ since BuddyPress ( 1.2 )
* @ var int
*/
public $last_message_id ;
/**
* The subject of the last message in this thread
*
* @ since BuddyPress ( 1.2 )
* @ var string
*/
public $last_message_subject ;
/**
* The user ID of the author of the last message in this thread
*
* @ since BuddyPress ( 1.2 )
* @ var int
*/
public $last_sender_id ;
/**
* Sort order of the messages in this thread ( ASC or DESC ) .
*
* @ since BuddyPress ( 1.5 )
* @ var string
*/
public $messages_order ;
2012-07-11 16:28:51 +00:00
function __construct ( $thread_id = false , $order = 'ASC' ) {
if ( $thread_id )
$this -> populate ( $thread_id , $order );
}
function populate ( $thread_id , $order ) {
global $wpdb , $bp ;
if ( 'ASC' != $order && 'DESC' != $order )
$order = 'ASC' ;
$this -> messages_order = $order ;
$this -> thread_id = $thread_id ;
if ( ! $this -> messages = $wpdb -> get_results ( $wpdb -> prepare ( " SELECT * FROM { $bp -> messages -> table_name_messages } WHERE thread_id = %d ORDER BY date_sent " . $order , $this -> thread_id ) ) )
return false ;
2012-08-08 12:00:19 +00:00
foreach ( ( array ) $this -> messages as $key => $message )
2012-07-11 16:28:51 +00:00
$this -> sender_ids [ $message -> sender_id ] = $message -> sender_id ;
// Fetch the recipients
$this -> recipients = $this -> get_recipients ();
// Get the unread count for the logged in user
2012-08-08 12:00:19 +00:00
if ( isset ( $this -> recipients [ bp_loggedin_user_id ()] ) )
$this -> unread_count = $this -> recipients [ bp_loggedin_user_id ()] -> unread_count ;
2012-07-11 16:28:51 +00:00
}
function mark_read () {
BP_Messages_Thread :: mark_as_read ( $this -> thread_id );
}
function mark_unread () {
BP_Messages_Thread :: mark_as_unread ( $this -> thread_id );
}
function get_recipients () {
global $wpdb , $bp ;
2012-08-08 12:00:19 +00:00
$recipients = array ();
$results = $wpdb -> get_results ( $wpdb -> prepare ( " SELECT * FROM { $bp -> messages -> table_name_recipients } WHERE thread_id = %d " , $this -> thread_id ) );
2012-07-11 16:28:51 +00:00
2012-08-08 12:00:19 +00:00
foreach ( ( array ) $results as $recipient )
2012-07-11 16:28:51 +00:00
$recipients [ $recipient -> user_id ] = $recipient ;
return $recipients ;
}
/** Static Functions **/
function delete ( $thread_id ) {
global $wpdb , $bp ;
2012-08-08 12:00:19 +00:00
$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 () ) );
2012-07-11 16:28:51 +00:00
// Check to see if any more recipients remain for this message
// if not, then delete the message from the database.
$recipients = $wpdb -> get_results ( $wpdb -> prepare ( " SELECT id FROM { $bp -> messages -> table_name_recipients } WHERE thread_id = %d AND is_deleted = 0 " , $thread_id ) );
if ( empty ( $recipients ) ) {
// Delete all the messages
$wpdb -> query ( $wpdb -> prepare ( " DELETE FROM { $bp -> messages -> table_name_messages } WHERE thread_id = %d " , $thread_id ) );
// Delete all the recipients
$wpdb -> query ( $wpdb -> prepare ( " DELETE FROM { $bp -> messages -> table_name_recipients } WHERE thread_id = %d " , $thread_id ) );
}
return true ;
}
2012-08-08 12:00:19 +00:00
function get_current_threads_for_user ( $user_id , $box = 'inbox' , $type = 'all' , $limit = null , $page = null , $search_terms = '' ) {
2012-07-11 16:28:51 +00:00
global $wpdb , $bp ;
2012-08-08 12:00:19 +00:00
$pag_sql = $type_sql = $search_sql = '' ;
2012-07-11 16:28:51 +00:00
if ( $limit && $page )
$pag_sql = $wpdb -> prepare ( " LIMIT %d, %d " , intval ( ( $page - 1 ) * $limit ), intval ( $limit ) );
if ( $type == 'unread' )
$type_sql = $wpdb -> prepare ( " AND r.unread_count != 0 " );
elseif ( $type == 'read' )
$type_sql = $wpdb -> prepare ( " AND r.unread_count = 0 " );
2012-08-08 12:00:19 +00:00
if ( ! empty ( $search_terms ) ) {
$search_terms = like_escape ( $wpdb -> escape ( $search_terms ) );
$search_sql = " AND ( subject LIKE '%% $search_terms %%' OR message LIKE '%% $search_terms %%' ) " ;
}
2012-07-11 16:28:51 +00:00
if ( 'sentbox' == $box ) {
2012-08-08 12:00:19 +00:00
$thread_ids = $wpdb -> get_results ( $wpdb -> prepare ( " SELECT m.thread_id, MAX(m.date_sent) AS date_sent FROM { $bp -> messages -> table_name_recipients } r, { $bp -> messages -> table_name_messages } m WHERE m.thread_id = r.thread_id AND m.sender_id = r.user_id AND m.sender_id = %d AND r.is_deleted = 0 { $search_sql } GROUP BY m.thread_id ORDER BY date_sent DESC { $pag_sql } " , $user_id ) );
$total_threads = $wpdb -> get_var ( $wpdb -> prepare ( " SELECT COUNT( DISTINCT m.thread_id ) FROM { $bp -> messages -> table_name_recipients } r, { $bp -> messages -> table_name_messages } m WHERE m.thread_id = r.thread_id AND m.sender_id = r.user_id AND m.sender_id = %d AND r.is_deleted = 0 { $search_sql } " , $user_id ) );
2012-07-11 16:28:51 +00:00
} else {
2012-08-08 12:00:19 +00:00
$thread_ids = $wpdb -> get_results ( $wpdb -> prepare ( " SELECT m.thread_id, MAX(m.date_sent) AS date_sent FROM { $bp -> messages -> table_name_recipients } r, { $bp -> messages -> table_name_messages } m WHERE m.thread_id = r.thread_id AND r.is_deleted = 0 AND r.user_id = %d AND r.sender_only = 0 { $type_sql } { $search_sql } GROUP BY m.thread_id ORDER BY date_sent DESC { $pag_sql } " , $user_id ) );
$total_threads = $wpdb -> get_var ( $wpdb -> prepare ( " SELECT COUNT( DISTINCT m.thread_id ) FROM { $bp -> messages -> table_name_recipients } r, { $bp -> messages -> table_name_messages } m WHERE m.thread_id = r.thread_id AND r.is_deleted = 0 AND r.user_id = %d AND r.sender_only = 0 { $type_sql } { $search_sql } " , $user_id ) );
2012-07-11 16:28:51 +00:00
}
if ( empty ( $thread_ids ) )
return false ;
// Sort threads by date_sent
2012-08-08 12:00:19 +00:00
foreach ( ( array ) $thread_ids as $thread )
2012-07-11 16:28:51 +00:00
$sorted_threads [ $thread -> thread_id ] = strtotime ( $thread -> date_sent );
arsort ( $sorted_threads );
$threads = false ;
2012-08-08 12:00:19 +00:00
foreach ( ( array ) $sorted_threads as $thread_id => $date_sent )
2012-07-11 16:28:51 +00:00
$threads [] = new BP_Messages_Thread ( $thread_id );
2012-08-08 12:00:19 +00:00
return array ( 'threads' => & $threads , 'total' => ( int ) $total_threads );
2012-07-11 16:28:51 +00:00
}
function mark_as_read ( $thread_id ) {
global $wpdb , $bp ;
2012-08-08 12:00:19 +00:00
$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 );
2012-07-11 16:28:51 +00:00
$wpdb -> query ( $sql );
}
function mark_as_unread ( $thread_id ) {
global $wpdb , $bp ;
2012-08-08 12:00:19 +00:00
$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 );
2012-07-11 16:28:51 +00:00
$wpdb -> query ( $sql );
}
function get_total_threads_for_user ( $user_id , $box = 'inbox' , $type = 'all' ) {
global $wpdb , $bp ;
$exclude_sender = '' ;
if ( $box != 'sentbox' )
$exclude_sender = ' AND sender_only != 1' ;
if ( $type == 'unread' )
$type_sql = $wpdb -> prepare ( " AND unread_count != 0 " );
else if ( $type == 'read' )
$type_sql = $wpdb -> prepare ( " AND unread_count = 0 " );
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 $type_sql " , $user_id ) );
}
function user_is_sender ( $thread_id ) {
global $wpdb , $bp ;
$sender_ids = $wpdb -> get_col ( $wpdb -> prepare ( " SELECT sender_id FROM { $bp -> messages -> table_name_messages } WHERE thread_id = %d " , $thread_id ) );
if ( ! $sender_ids )
return false ;
2012-08-08 12:00:19 +00:00
return in_array ( bp_loggedin_user_id (), $sender_ids );
2012-07-11 16:28:51 +00:00
}
function get_last_sender ( $thread_id ) {
global $wpdb , $bp ;
if ( ! $sender_id = $wpdb -> get_var ( $wpdb -> prepare ( " SELECT sender_id FROM { $bp -> messages -> table_name_messages } WHERE thread_id = %d GROUP BY sender_id ORDER BY date_sent LIMIT 1 " , $thread_id ) ) )
return false ;
return bp_core_get_userlink ( $sender_id , true );
}
function get_inbox_count ( $user_id = 0 ) {
global $wpdb , $bp ;
if ( empty ( $user_id ) )
2012-08-08 12:00:19 +00:00
$user_id = bp_loggedin_user_id ();
2012-07-11 16:28:51 +00:00
$sql = $wpdb -> prepare ( " SELECT SUM(unread_count) FROM { $bp -> messages -> table_name_recipients } WHERE user_id = %d AND is_deleted = 0 AND sender_only = 0 " , $user_id );
$unread_count = $wpdb -> get_var ( $sql );
if ( empty ( $unread_count ) || is_wp_error ( $unread_count ) )
return 0 ;
return ( int ) $unread_count ;
}
function check_access ( $thread_id , $user_id = 0 ) {
global $wpdb , $bp ;
if ( empty ( $user_id ) )
2012-08-08 12:00:19 +00:00
$user_id = bp_loggedin_user_id ();
2012-07-11 16:28:51 +00:00
return $wpdb -> get_var ( $wpdb -> prepare ( " SELECT id FROM { $bp -> messages -> table_name_recipients } WHERE thread_id = %d AND user_id = %d " , $thread_id , $user_id ) );
}
function is_valid ( $thread_id ) {
global $wpdb , $bp ;
return $wpdb -> get_var ( $wpdb -> prepare ( " SELECT thread_id FROM { $bp -> messages -> table_name_messages } WHERE thread_id = %d LIMIT 1 " , $thread_id ) );
}
2012-08-08 12:00:19 +00:00
function get_recipient_links ( $recipients ) {
if ( count ( $recipients ) >= 5 )
return sprintf ( __ ( '%s Recipients' , 'buddypress' ), number_format_i18n ( count ( $recipients ) ) );
2012-07-11 16:28:51 +00:00
2012-08-08 12:00:19 +00:00
$recipient_links = array ();
foreach ( ( array ) $recipients as $recipient ) {
$recipient_link = bp_core_get_userlink ( $recipient -> user_id );
if ( empty ( $recipient_link ) ) {
$recipient_link = __ ( 'Deleted User' , 'buddypress' );
}
$recipient_links [] = $recipient_link ;
}
2012-07-11 16:28:51 +00:00
return implode ( ', ' , ( array ) $recipient_links );
}
// Update Functions
function update_tables () {
global $wpdb , $bp ;
$bp_prefix = bp_core_get_table_prefix ();
$errors = false ;
$threads = $wpdb -> get_results ( $wpdb -> prepare ( " SELECT * FROM { $bp_prefix } bp_messages_threads " ) );
// Nothing to update, just return true to remove the table
if ( empty ( $threads ) )
return true ;
2012-08-08 12:00:19 +00:00
foreach ( ( array ) $threads as $thread ) {
2012-07-11 16:28:51 +00:00
$message_ids = maybe_unserialize ( $thread -> message_ids );
if ( ! empty ( $message_ids ) ) {
$message_ids = implode ( ',' , $message_ids );
// Add the thread_id to the messages table
if ( ! $wpdb -> query ( $wpdb -> prepare ( " UPDATE { $bp -> messages -> table_name_messages } SET thread_id = %d WHERE id IN ( { $message_ids } ) " , $thread -> id ) ) )
$errors = true ;
}
}
if ( $errors )
return false ;
return true ;
}
}
2012-08-08 12:00:19 +00:00
class BP_Messages_Message {
2012-07-11 16:28:51 +00:00
var $id ;
var $thread_id ;
var $sender_id ;
var $subject ;
var $message ;
var $date_sent ;
var $recipients = false ;
function __construct ( $id = null ) {
$this -> date_sent = bp_core_current_time ();
2012-08-08 12:00:19 +00:00
$this -> sender_id = bp_loggedin_user_id ();
2012-07-11 16:28:51 +00:00
if ( ! empty ( $id ) )
$this -> populate ( $id );
}
function populate ( $id ) {
global $wpdb , $bp ;
if ( $message = $wpdb -> get_row ( $wpdb -> prepare ( " SELECT * FROM { $bp -> messages -> table_name_messages } WHERE id = %d " , $id ) ) ) {
$this -> id = $message -> id ;
$this -> thread_id = $message -> thread_id ;
$this -> sender_id = $message -> sender_id ;
$this -> subject = $message -> subject ;
$this -> message = $message -> message ;
$this -> date_sent = $message -> date_sent ;
}
}
function send () {
global $wpdb , $bp ;
$this -> sender_id = apply_filters ( 'messages_message_sender_id_before_save' , $this -> sender_id , $this -> id );
$this -> thread_id = apply_filters ( 'messages_message_thread_id_before_save' , $this -> thread_id , $this -> id );
$this -> subject = apply_filters ( 'messages_message_subject_before_save' , $this -> subject , $this -> id );
$this -> message = apply_filters ( 'messages_message_content_before_save' , $this -> message , $this -> id );
$this -> date_sent = apply_filters ( 'messages_message_date_sent_before_save' , $this -> date_sent , $this -> id );
do_action_ref_array ( 'messages_message_before_save' , array ( & $this ) );
// Make sure we have at least one recipient before sending.
if ( empty ( $this -> recipients ) )
return false ;
$new_thread = false ;
// If we have no thread_id then this is the first message of a new thread.
if ( empty ( $this -> thread_id ) ) {
2012-08-08 12:00:19 +00:00
$this -> thread_id = ( int ) $wpdb -> get_var ( $wpdb -> prepare ( " SELECT MAX(thread_id) FROM { $bp -> messages -> table_name_messages } " ) ) + 1 ;
2012-07-11 16:28:51 +00:00
$new_thread = true ;
}
// First insert the message into the messages table
if ( ! $wpdb -> query ( $wpdb -> prepare ( " INSERT INTO { $bp -> messages -> table_name_messages } ( thread_id, sender_id, subject, message, date_sent ) VALUES ( %d, %d, %s, %s, %s ) " , $this -> thread_id , $this -> sender_id , $this -> subject , $this -> message , $this -> date_sent ) ) )
return false ;
$recipient_ids = array ();
if ( $new_thread ) {
// Add an recipient entry for all recipients
2012-08-08 12:00:19 +00:00
foreach ( ( array ) $this -> recipients as $recipient ) {
2012-07-11 16:28:51 +00:00
$wpdb -> query ( $wpdb -> prepare ( " INSERT INTO { $bp -> messages -> table_name_recipients } ( user_id, thread_id, unread_count ) VALUES ( %d, %d, 1 ) " , $recipient -> user_id , $this -> thread_id ) );
$recipient_ids [] = $recipient -> user_id ;
}
// Add a sender recipient entry if the sender is not in the list of recipients
if ( ! in_array ( $this -> sender_id , $recipient_ids ) )
$wpdb -> query ( $wpdb -> prepare ( " INSERT INTO { $bp -> messages -> table_name_recipients } ( user_id, thread_id, sender_only ) VALUES ( %d, %d, 1 ) " , $this -> sender_id , $this -> thread_id ) );
} else {
// Update the unread count for all recipients
$wpdb -> query ( $wpdb -> prepare ( " UPDATE { $bp -> messages -> table_name_recipients } SET unread_count = unread_count + 1, sender_only = 0, is_deleted = 0 WHERE thread_id = %d AND user_id != %d " , $this -> thread_id , $this -> sender_id ) );
}
$this -> id = $wpdb -> insert_id ;
messages_remove_callback_values ();
do_action_ref_array ( 'messages_message_after_save' , array ( & $this ) );
return $this -> id ;
}
function get_recipients () {
global $bp , $wpdb ;
return $wpdb -> get_results ( $wpdb -> prepare ( " SELECT user_id FROM { $bp -> messages -> table_name_recipients } WHERE thread_id = %d " , $this -> thread_id ) );
}
// Static Functions
function get_recipient_ids ( $recipient_usernames ) {
if ( ! $recipient_usernames )
return false ;
if ( is_array ( $recipient_usernames ) ) {
for ( $i = 0 , $count = count ( $recipient_usernames ); $i < $count ; ++ $i ) {
2012-08-08 12:00:19 +00:00
if ( $rid = bp_core_get_userid ( trim ( $recipient_usernames [ $i ]) ) ) {
2012-07-11 16:28:51 +00:00
$recipient_ids [] = $rid ;
2012-08-08 12:00:19 +00:00
}
2012-07-11 16:28:51 +00:00
}
}
return $recipient_ids ;
}
function get_last_sent_for_user ( $thread_id ) {
global $wpdb , $bp ;
2012-08-08 12:00:19 +00:00
return $wpdb -> get_var ( $wpdb -> prepare ( " SELECT id FROM { $bp -> messages -> table_name_messages } WHERE sender_id = %d AND thread_id = %d ORDER BY date_sent DESC LIMIT 1 " , bp_loggedin_user_id (), $thread_id ) );
2012-07-11 16:28:51 +00:00
}
function is_user_sender ( $user_id , $message_id ) {
global $wpdb , $bp ;
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 ) );
}
function get_message_sender ( $message_id ) {
global $wpdb , $bp ;
return $wpdb -> get_var ( $wpdb -> prepare ( " SELECT sender_id FROM { $bp -> messages -> table_name_messages } WHERE id = %d " , $message_id ) );
}
}
2012-08-08 12:00:19 +00:00
class BP_Messages_Notice {
2012-07-11 16:28:51 +00:00
var $id = null ;
var $subject ;
var $message ;
var $date_sent ;
var $is_active ;
function __construct ( $id = null ) {
if ( $id ) {
$this -> id = $id ;
$this -> populate ( $id );
}
}
function populate () {
global $wpdb , $bp ;
$notice = $wpdb -> get_row ( $wpdb -> prepare ( " SELECT * FROM { $bp -> messages -> table_name_notices } WHERE id = %d " , $this -> id ) );
if ( $notice ) {
$this -> subject = $notice -> subject ;
$this -> message = $notice -> message ;
$this -> date_sent = $notice -> date_sent ;
$this -> is_active = $notice -> is_active ;
}
}
function save () {
global $wpdb , $bp ;
$this -> subject = apply_filters ( 'messages_notice_subject_before_save' , $this -> subject , $this -> id );
$this -> message = apply_filters ( 'messages_notice_message_before_save' , $this -> message , $this -> id );
do_action_ref_array ( 'messages_notice_before_save' , array ( & $this ) );
if ( empty ( $this -> id ) )
$sql = $wpdb -> prepare ( " INSERT INTO { $bp -> messages -> table_name_notices } (subject, message, date_sent, is_active) VALUES (%s, %s, %s, %d) " , $this -> subject , $this -> message , $this -> date_sent , $this -> is_active );
else
$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 );
if ( ! $wpdb -> query ( $sql ) )
return false ;
if ( ! $id = $this -> id )
$id = $wpdb -> insert_id ;
// Now deactivate all notices apart from the new one.
$wpdb -> query ( $wpdb -> prepare ( " UPDATE { $bp -> messages -> table_name_notices } SET is_active = 0 WHERE id != %d " , $id ) );
2012-08-08 12:00:19 +00:00
bp_update_user_meta ( bp_loggedin_user_id (), 'last_activity' , bp_core_current_time () );
2012-07-11 16:28:51 +00:00
do_action_ref_array ( 'messages_notice_after_save' , array ( & $this ) );
return true ;
}
function activate () {
$this -> is_active = 1 ;
if ( ! $this -> save () )
return false ;
return true ;
}
function deactivate () {
$this -> is_active = 0 ;
if ( ! $this -> save () )
return false ;
return true ;
}
function delete () {
global $wpdb , $bp ;
$sql = $wpdb -> prepare ( " DELETE FROM { $bp -> messages -> table_name_notices } WHERE id = %d " , $this -> id );
if ( ! $wpdb -> query ( $sql ) )
return false ;
return true ;
}
// Static Functions
2012-08-08 12:00:19 +00:00
/**
* Pulls up a list of notices
*
* To get all notices , pass a value of - 1 to pag_num
*
* @ param array $args See $defaults for explanation of accepted arguments
* @ return array $notices
*/
function get_notices ( $args = array () ) {
2012-07-11 16:28:51 +00:00
global $wpdb , $bp ;
2012-08-08 12:00:19 +00:00
$defaults = array (
'pag_num' => 20 , // Number of notices per page
'pag_page' => 1 // Page number
);
$r = wp_parse_args ( $args , $defaults );
extract ( $r );
$limit_sql = '' ;
if ( ( int ) $pag_num >= 0 ) {
$limit_sql = $wpdb -> prepare ( " LIMIT %d, %d " , ( int ) ( ( $pag_page - 1 ) * $pag_num ), ( int ) $pag_num );
}
$notices = $wpdb -> get_results ( $wpdb -> prepare ( " SELECT * FROM { $bp -> messages -> table_name_notices } ORDER BY date_sent DESC { $limit_sql } " ) );
2012-07-11 16:28:51 +00:00
return $notices ;
}
function get_total_notice_count () {
global $wpdb , $bp ;
$notice_count = $wpdb -> get_var ( $wpdb -> prepare ( " SELECT COUNT(id) FROM " . $bp -> messages -> table_name_notices ) );
return $notice_count ;
}
function get_active () {
global $wpdb , $bp ;
2012-08-08 12:00:19 +00:00
$notice_id = $wpdb -> get_var ( $wpdb -> prepare ( " SELECT id FROM { $bp -> messages -> table_name_notices } WHERE is_active = 1 " ) );
2012-07-11 16:28:51 +00:00
return new BP_Messages_Notice ( $notice_id );
}
}
2012-08-08 12:00:19 +00:00
?>