bp_nouveau_get_thread_messages( int $thread_id, array $post )
messages for each thread.
Description
Parameters
- $post
-
(Required) $_POST data.
- $thread_id
-
(Required) thread id.
Source
File: bp-templates/bp-nouveau/includes/messages/ajax.php
function bp_nouveau_get_thread_messages( $thread_id, $post ) {
global $thread_template, $media_template, $wpdb, $document_template;
if ( ! $thread_id ) {
return;
}
$bp = buddypress();
$reset_action = $bp->current_action;
// Override bp_current_action().
$bp->current_action = 'view';
bp_get_thread( array( 'thread_id' => $thread_id ) );
$thread = new stdClass();
// Check recipients if connected or not.
if ( bp_force_friendship_to_message() && bp_is_active( 'friends' ) ) {
$recipients = (array) $thread_template->thread->recipients;
// Strip the sender from the recipient list, and unset them if they are
// not alone. If they are alone, let them talk to themselves.
if ( isset( $recipients[ bp_loggedin_user_id() ] ) && ( count( $recipients ) > 1 ) ) {
unset( $recipients[ bp_loggedin_user_id() ] );
}
foreach ( $recipients as $recipient ) {
if ( bp_loggedin_user_id() != $recipient->user_id && ! friends_check_friendship( bp_loggedin_user_id(), $recipient->user_id ) ) {
if ( sizeof( $recipients ) > 1 ) {
$thread->feedback_error = array(
'feedback' => __( 'You need to be connected with all recipients to continue this conversation.', 'buddyboss' ),
'type' => 'error',
);
} else {
$thread->feedback_error = array(
'feedback' => __( 'You need to be connected with this member to continue this conversation.', 'buddyboss' ),
'type' => 'error',
);
}
break;
}
}
}
$last_message_id = $thread_template->thread->messages[0]->id;
$group_id = bp_messages_get_meta( $last_message_id, 'group_id', true );
$group_name = '';
$group_avatar = '';
$group_link = '';
$group_message_users = '';
$group_message_type = '';
$group_message_thread_type = '';
$group_message_fresh = '';
$message_from = '';
$is_deleted_group = 0;
if ( ! empty( $group_id ) ) {
$group_message_users = bp_messages_get_meta( $last_message_id, 'group_message_users', true );
$group_message_type = bp_messages_get_meta( $last_message_id, 'group_message_type', true );
$group_message_thread_type = bp_messages_get_meta( $last_message_id, 'group_message_thread_type', true );
$group_message_fresh = bp_messages_get_meta( $last_message_id, 'group_message_fresh', true );
$message_from = bp_messages_get_meta( $last_message_id, 'message_from', true );
if ( bp_is_active( 'groups' ) ) {
$group_name = bp_get_group_name( groups_get_group( $group_id ) );
if ( empty( $group_name ) ) {
$group_link = 'javascript:void(0);';
} else {
$group_link = bp_get_group_permalink( groups_get_group( $group_id ) );
}
$group_avatar = bp_core_fetch_avatar(
array(
'item_id' => $group_id,
'object' => 'group',
'type' => 'full',
'avatar_dir' => 'group-avatars',
'alt' => sprintf( __( 'Group logo of %s', 'buddyboss' ), $group_name ),
'title' => $group_name,
'html' => false,
)
);
} else {
$prefix = apply_filters( 'bp_core_get_table_prefix', $wpdb->base_prefix );
$groups_table = $prefix . 'bp_groups';
$group_name = $wpdb->get_var( "SELECT `name` FROM `{$groups_table}` WHERE `id` = '{$group_id}';" ); // db call ok; no-cache ok;
$group_link = 'javascript:void(0);';
$group_avatar = buddypress()->plugin_url . 'bp-core/images/mystery-group.png';
$legacy_group_avatar_name = '-groupavatar-full';
$legacy_user_avatar_name = '-avatar2';
if ( ! empty( $group_name ) ) {
$group_link = 'javascript:void(0);';
$directory = 'group-avatars';
$avatar_size = '-bpfull';
$avatar_folder_dir = bp_core_avatar_upload_path() . '/' . $directory . '/' . $group_id;
$avatar_folder_url = bp_core_avatar_url() . '/' . $directory . '/' . $group_id;
$avatar = bp_core_get_group_avatar( $legacy_user_avatar_name, $legacy_group_avatar_name, $avatar_size, $avatar_folder_dir, $avatar_folder_url );
if ( '' !== $avatar ) {
$group_avatar = $avatar;
}
}
}
$is_deleted_group = ( empty( $group_name ) ) ? 1 : 0;
$group_name = ( empty( $group_name ) ) ? __( 'Deleted Group', 'buddyboss' ) : $group_name;
}
// Simulate the loop.
$args = array(
'thread_id' => $thread_id,
'per_page' => isset( $post['per_page'] ) && $post['per_page'] ? $post['per_page'] : 10,
'before' => isset( $post['before'] ) && $post['before'] ? $post['before'] : null,
);
if ( ! bp_thread_has_messages( $args ) ) {
// Remove the bp_current_action() override.
$bp->current_action = $reset_action;
wp_send_json_error( $args['before'] ? $response_no_more : $response );
}
if ( ! $group_id ) {
$first_message = BP_Messages_Thread::get_first_message( bp_get_the_thread_id() );
$group_message_thread_id = bp_messages_get_meta( $first_message->id, 'group_message_thread_id', true ); // group
$group_id = (int) bp_messages_get_meta( $first_message->id, 'group_id', true );
if ( $group_id ) {
if ( bp_is_active( 'groups' ) ) {
$group_name = bp_get_group_name( groups_get_group( $group_id ) );
$group_link = bp_get_group_permalink( groups_get_group( $group_id ) );
$group_avatar = bp_core_fetch_avatar(
array(
'item_id' => $group_id,
'object' => 'group',
'type' => 'full',
'avatar_dir' => 'group-avatars',
'alt' => sprintf( __( 'Group logo of %s', 'buddyboss' ), $group_name ),
'title' => $group_name,
'html' => false,
)
);
} else {
$prefix = apply_filters( 'bp_core_get_table_prefix', $wpdb->base_prefix );
$groups_table = $prefix . 'bp_groups';
$group_name = $wpdb->get_var( "SELECT `name` FROM `{$groups_table}` WHERE `id` = '{$group_id}';" ); // db call ok; no-cache ok;
$group_link = 'javascript:void(0);';
$group_avatar = buddypress()->plugin_url . 'bp-core/images/mystery-group.png';
$legacy_group_avatar_name = '-groupavatar-full';
$legacy_user_avatar_name = '-avatar2';
if ( ! empty( $group_name ) ) {
$group_link = 'javascript:void(0);';
$directory = 'group-avatars';
$avatar_size = '-bpfull';
$avatar_folder_dir = bp_core_avatar_upload_path() . '/' . $directory . '/' . $group_id;
$avatar_folder_url = bp_core_avatar_url() . '/' . $directory . '/' . $group_id;
$avatar = bp_core_get_group_avatar( $legacy_user_avatar_name, $legacy_group_avatar_name, $avatar_size, $avatar_folder_dir, $avatar_folder_url );
if ( '' !== $avatar ) {
$group_avatar = $avatar;
}
}
}
$group_name = ( empty( $group_name ) ) ? __( 'Deleted Group', 'buddyboss' ) : $group_name;
}
}
$is_group_thread = 0;
if ( (int) $group_id > 0 ) {
$first_message = BP_Messages_Thread::get_first_message( bp_get_the_thread_id() );
$group_message_thread_id = bp_messages_get_meta( $first_message->id, 'group_message_thread_id', true ); // group
$group_id = (int) bp_messages_get_meta( $first_message->id, 'group_id', true );
$message_users = bp_messages_get_meta( $first_message->id, 'group_message_users', true ); // all - individual
$message_type = bp_messages_get_meta( $first_message->id, 'group_message_type', true ); // open - private
$message_from = bp_messages_get_meta( $first_message->id, 'message_from', true ); // group
if ( 'group' === $message_from && bp_get_the_thread_id() === (int) $group_message_thread_id && 'open' === $message_type ) {
$is_group_thread = 1;
unset($thread->feedback_error);
}
}
$subject_deleted_text = apply_filters( 'delete_user_message_subject_text', 'Deleted' );
$is_participated = $wpdb->get_col( $wpdb->prepare( "SELECT id FROM {$bp->messages->table_name_messages} WHERE thread_id = %d AND sender_id = %d AND subject != %s", $thread_template->thread->thread_id, bp_loggedin_user_id(), $subject_deleted_text ) ); // WPCS: db call ok. // WPCS: cache ok.
$thread->thread = array(
'id' => bp_get_the_thread_id(),
'subject' => wp_strip_all_tags( bp_get_the_thread_subject() ),
'started_date' => bp_nouveau_get_message_date( $thread_template->thread->first_message_date, get_option( 'date_format' ) ),
'group_id' => $group_id,
'group_name' => html_entity_decode( ucwords( $group_name ) ),
'is_group_thread' => $is_group_thread,
'is_deleted' => $is_deleted_group,
'group_avatar' => $group_avatar,
'group_link' => $group_link,
'group_message_users' => $group_message_users,
'group_message_type' => $group_message_type,
'group_message_thread_type' => $group_message_thread_type,
'group_message_fresh' => $group_message_fresh,
'message_from' => $message_from,
'is_participated' => empty( $is_participated ) ? 0 : 1,
);
if ( is_array( $thread_template->thread->recipients ) ) {
foreach ( $thread_template->thread->recipients as $recipient ) {
if ( empty( $recipient->is_deleted ) ) {
$thread->thread['recipients'][] = array(
'avatar' => esc_url(
bp_core_fetch_avatar(
array(
'item_id' => $recipient->user_id,
'object' => 'user',
'type' => 'thumb',
'width' => BP_AVATAR_THUMB_WIDTH,
'height' => BP_AVATAR_THUMB_HEIGHT,
'html' => false,
)
)
),
'user_link' => bp_core_get_userlink( $recipient->user_id, false, true ),
'user_name' => bp_core_get_user_displayname( $recipient->user_id ),
'is_deleted' => empty( get_userdata( $recipient->user_id ) ) ? 1 : 0,
'is_you' => $recipient->user_id === bp_loggedin_user_id(),
);
}
}
}
$thread->messages = array();
$i = 0;
while ( bp_thread_messages() ) :
bp_thread_the_message();
$group_id = bp_messages_get_meta( bp_get_the_thread_message_id(), 'group_id', true );
$group_message_users = bp_messages_get_meta( bp_get_the_thread_message_id(), 'group_message_users', true );
$group_message_type = bp_messages_get_meta( bp_get_the_thread_message_id(), 'group_message_type', true );
$group_message_thread_type = bp_messages_get_meta( bp_get_the_thread_message_id(), 'group_message_thread_type', true );
$group_message_fresh = bp_messages_get_meta( bp_get_the_thread_message_id(), 'group_message_fresh', true );
$message_from = bp_messages_get_meta( bp_get_the_thread_message_id(), 'message_from', true );
$message_left = bp_messages_get_meta( bp_get_the_thread_message_id(), 'group_message_group_left', true );
$message_joined = bp_messages_get_meta( bp_get_the_thread_message_id(), 'group_message_group_joined', true );
$message_banned = bp_messages_get_meta( bp_get_the_thread_message_id(), 'group_message_group_ban', true );
$message_unbanned = bp_messages_get_meta( bp_get_the_thread_message_id(), 'group_message_group_un_ban', true );
$message_deleted = bp_messages_get_meta( bp_get_the_thread_message_id(), 'bp_messages_deleted', true );
if ( $group_id && $message_from && 'group' === $message_from ) {
if ( bp_is_active( 'groups' ) ) {
$group_name = bp_get_group_name( groups_get_group( $group_id ) );
if ( empty( $group_name ) ) {
$group_link = 'javascript:void(0);';
} else {
$group_link = bp_get_group_permalink( groups_get_group( $group_id ) );
}
$group_avatar = bp_core_fetch_avatar(
array(
'item_id' => $group_id,
'object' => 'group',
'type' => 'full',
'avatar_dir' => 'group-avatars',
'alt' => sprintf( __( 'Group logo of %s', 'buddyboss' ), $group_name ),
'title' => $group_name,
'html' => false,
)
);
} else {
$prefix = apply_filters( 'bp_core_get_table_prefix', $wpdb->base_prefix );
$groups_table = $prefix . 'bp_groups';
$group_name = $wpdb->get_var( "SELECT `name` FROM `{$groups_table}` WHERE `id` = '{$group_id}';" ); // db call ok; no-cache ok;
$group_link = 'javascript:void(0);';
$group_avatar = buddypress()->plugin_url . 'bp-core/images/mystery-group.png';
$legacy_group_avatar_name = '-groupavatar-full';
$legacy_user_avatar_name = '-avatar2';
if ( ! empty( $group_name ) ) {
$group_link = 'javascript:void(0);';
$directory = 'group-avatars';
$avatar_size = '-bpfull';
$avatar_folder_dir = bp_core_avatar_upload_path() . '/' . $directory . '/' . $group_id;
$avatar_folder_url = bp_core_avatar_url() . '/' . $directory . '/' . $group_id;
$avatar = bp_core_get_group_avatar( $legacy_user_avatar_name, $legacy_group_avatar_name, $avatar_size, $avatar_folder_dir, $avatar_folder_url );
if ( '' !== $avatar ) {
$group_avatar = $avatar;
}
}
}
if ( empty( $group_name ) ) {
$group_name = '"' . __( 'Deleted Group', 'buddyboss' ) . '"';
if ( $group_message_users && $group_message_type && 'all' === $group_message_users && 'open' === $group_message_type ) {
$group_text = sprintf( __( 'Sent from group %s to all group members.', 'buddyboss' ), $group_name );
} elseif ( $group_message_users && $group_message_type && 'individual' === $group_message_users && 'open' === $group_message_type ) {
$group_text = sprintf( __( 'Sent from group %s to the people in this conversation.', 'buddyboss' ), $group_name );
} elseif ( $group_message_users && $group_message_type && 'all' === $group_message_users && 'private' === $group_message_type ) {
$group_text = sprintf( __( 'Sent from group %s individually to all group members.', 'buddyboss' ), $group_name );
} elseif ( $group_message_users && $group_message_type && 'individual' === $group_message_users && 'private' === $group_message_type ) {
$group_text = sprintf( __( 'Sent from group %s to individual members.', 'buddyboss' ), $group_name );
}
} else {
if ( $group_message_users && $group_message_type && 'all' === $group_message_users && 'open' === $group_message_type ) {
$group_text = sprintf( __( 'Sent from group <a href="%1$s">%2$s</a> to all group members.', 'buddyboss' ), $group_link, $group_name );
} elseif ( $group_message_users && $group_message_type && 'individual' === $group_message_users && 'open' === $group_message_type ) {
$group_text = sprintf( __( 'Sent from group <a href="%1$s">%2$s</a> to the people in this conversation.', 'buddyboss' ), $group_link, $group_name );
} elseif ( $group_message_users && $group_message_type && 'all' === $group_message_users && 'private' === $group_message_type ) {
$group_text = sprintf( __( 'Sent from group <a href="%1$s">%2$s</a> individually to all group members.', 'buddyboss' ), $group_link, $group_name );
} elseif ( $group_message_users && $group_message_type && 'individual' === $group_message_users && 'private' === $group_message_type ) {
$group_text = sprintf( __( 'Sent from group <a href="%1$s">%2$s</a> to individual members.', 'buddyboss' ), $group_link, $group_name );
}
}
$content = '';
if ( $message_left && 'yes' === $message_left ) {
$content = sprintf( __( '<p class="joined">Left "%s"</p>', 'buddyboss' ), ucwords( $group_name ) );
} elseif ( $message_deleted && 'yes' === $message_deleted ) {
$content = '<p class="joined">' . __( 'This message was deleted.', 'buddyboss' ) . '</p>';
} elseif ( $message_unbanned && 'yes' === $message_unbanned ) {
$content = sprintf( __( '<p class="joined">Removed Ban "%s"</p>', 'buddyboss' ), ucwords( $group_name ) );
} elseif ( $message_banned && 'yes' === $message_banned ) {
$content = sprintf( __( '<p class="joined">Ban "%s"</p>', 'buddyboss' ), ucwords( $group_name ) );
} elseif ( $message_joined && 'yes' === $message_joined ) {
$content = sprintf( __( '<p class="joined">Joined "%s"</p>', 'buddyboss' ), ucwords( $group_name ) );
} elseif ( 'This message was deleted.' === wp_strip_all_tags( bp_get_the_thread_message_content() ) ) {
$content = '<p class="joined">' . wp_strip_all_tags( bp_get_the_thread_message_content() ) . '</p>';
} else {
$content = do_shortcode( bp_get_the_thread_message_content() );
}
$thread->messages[ $i ] = array(
'group_name' => $group_name,
'is_deleted' => $is_deleted_group,
'group_link' => $group_link,
'group_avatar' => $group_avatar,
'group_message_users' => $group_message_users,
'group_message_type' => $group_message_type,
'group_message_thread_type' => $group_message_thread_type,
'group_message_fresh' => $group_message_fresh,
'message_from' => $message_from,
'group_text' => $group_text,
'id' => bp_get_the_thread_message_id(),
'content' => $content,
'sender_id' => bp_get_the_thread_message_sender_id(),
'sender_name' => esc_html( bp_get_the_thread_message_sender_name() ),
'sender_link' => bp_get_the_thread_message_sender_link(),
'sender_is_you' => bp_get_the_thread_message_sender_id() === bp_loggedin_user_id(),
'sender_avatar' => esc_url(
bp_core_fetch_avatar(
array(
'item_id' => bp_get_the_thread_message_sender_id(),
'object' => 'user',
'type' => 'thumb',
'width' => 32,
'height' => 32,
'html' => false,
)
)
),
'date' => bp_get_the_thread_message_date_sent() * 1000,
'display_date' => bp_get_the_thread_message_time_since(),
);
} else {
$message_left = bp_messages_get_meta( bp_get_the_thread_message_id(), 'group_message_group_left', true );
$message_joined = bp_messages_get_meta( bp_get_the_thread_message_id(), 'group_message_group_joined', true );
$message_banned = bp_messages_get_meta( bp_get_the_thread_message_id(), 'group_message_group_ban', true );
$message_unbanned = bp_messages_get_meta( bp_get_the_thread_message_id(), 'group_message_group_un_ban', true );
$message_deleted = bp_messages_get_meta( bp_get_the_thread_message_id(), 'bp_messages_deleted', true );
$content = '';
if ( $message_left && 'yes' === $message_left ) {
$content = sprintf( __( '<p class="joined">Left "%s"</p>', 'buddyboss' ), ucwords( $group_name ) );
} elseif ( $message_deleted && 'yes' === $message_deleted ) {
$content = '<p class="joined">' . __( 'This message was deleted.', 'buddyboss' ) . '</p>';
} elseif ( $message_unbanned && 'yes' === $message_unbanned ) {
$content = sprintf( __( '<p class="joined">Removed Ban "%s"</p>', 'buddyboss' ), ucwords( $group_name ) );
} elseif ( $message_banned && 'yes' === $message_banned ) {
$content = sprintf( __( '<p class="joined">Ban "%s"</p>', 'buddyboss' ), ucwords( $group_name ) );
} elseif ( $message_joined && 'yes' === $message_joined ) {
$content = sprintf( __( '<p class="joined">Joined "%s"</p>', 'buddyboss' ), ucwords( $group_name ) );
} elseif ( 'This message was deleted.' === wp_strip_all_tags( bp_get_the_thread_message_content() ) ) {
$content = '<p class="joined">' . wp_strip_all_tags( bp_get_the_thread_message_content() ) . '</p>';
} else {
$content = do_shortcode( bp_get_the_thread_message_content() );
}
$thread->messages[ $i ] = array(
'id' => bp_get_the_thread_message_id(),
'content' => $content,
'sender_id' => bp_get_the_thread_message_sender_id(),
'sender_name' => esc_html( bp_get_the_thread_message_sender_name() ),
'is_deleted' => empty( get_userdata( bp_get_the_thread_message_sender_id() ) ) ? 1 : 0,
'sender_link' => bp_get_the_thread_message_sender_link(),
'sender_is_you' => bp_get_the_thread_message_sender_id() === bp_loggedin_user_id(),
'sender_avatar' => esc_url(
bp_core_fetch_avatar(
array(
'item_id' => bp_get_the_thread_message_sender_id(),
'object' => 'user',
'type' => 'thumb',
'width' => 32,
'height' => 32,
'html' => false,
)
)
),
'date' => bp_get_the_thread_message_date_sent() * 1000,
'display_date' => bp_get_the_thread_message_time_since(),
);
}
if ( bp_is_active( 'messages', 'star' ) ) {
$star_link = bp_get_the_message_star_action_link(
array(
'message_id' => bp_get_the_thread_message_id(),
'url_only' => true,
)
);
$thread->messages[ $i ]['star_link'] = $star_link;
$thread->messages[ $i ]['is_starred'] = array_search( 'unstar', explode( '/', $star_link ) );
$thread->messages[ $i ]['star_nonce'] = wp_create_nonce( 'bp-messages-star-' . bp_get_the_thread_message_id() );
}
if ( bp_is_active( 'media' ) && bp_is_messages_media_support_enabled() ) {
$media_ids = bp_messages_get_meta( bp_get_the_thread_message_id(), 'bp_media_ids', true );
if ( ! empty( $media_ids ) && bp_has_media(
array(
'include' => $media_ids,
'privacy' => array( 'message' ),
'order_by' => 'menu_order',
'sort' => 'ASC',
'user_id' => false,
)
) ) {
$thread->messages[ $i ]['media'] = array();
while ( bp_media() ) {
bp_the_media();
$thread->messages[ $i ]['media'][] = array(
'id' => bp_get_media_id(),
'message_id' => bp_get_the_thread_message_id(),
'thread_id' => bp_get_the_thread_id(),
'title' => bp_get_media_title(),
'attachment_id' => bp_get_media_attachment_id(),
'thumbnail' => bp_get_media_attachment_image_thumbnail(),
'full' => bp_get_media_attachment_image(),
'meta' => $media_template->media->attachment_data->meta,
'privacy' => bp_get_media_privacy(),
);
}
}
}
if ( bp_is_active( 'media' ) && bp_is_messages_document_support_enabled() ) {
$document_ids = bp_messages_get_meta( bp_get_the_thread_message_id(), 'bp_document_ids', true );
if ( ! empty( $document_ids ) && bp_has_document(
array(
'include' => $document_ids,
'order_by' => 'menu_order',
'sort' => 'ASC',
)
) ) {
$thread->messages[ $i ]['document'] = array();
while ( bp_document() ) {
bp_the_document();
$attachment_id = bp_get_document_attachment_id();
$extension = bp_document_extension( $attachment_id );
$svg_icon = bp_document_svg_icon( $extension, $attachment_id );
$svg_icon_download = bp_document_svg_icon( 'download' );
$download_url = bp_document_download_link( $attachment_id, bp_get_document_id() );
$filename = basename( get_attached_file( $attachment_id ) );
$size = bp_document_size_format( filesize( get_attached_file( $attachment_id ) ) );
$extension_description = '';
$url = wp_get_attachment_url( $attachment_id );
$extension_lists = bp_document_extensions_list();
$text_attachment_url = wp_get_attachment_url( $attachment_id );
$attachment_url = bp_document_get_preview_image_url( bp_get_document_id(), $extension, bp_get_document_preview_attachment_id() );
$mirror_text = bp_document_mirror_text( $attachment_id );
$audio_url = '';
if ( in_array( $extension, bp_get_document_preview_doc_extensions(), true ) ) {
$attachment_url = wp_get_attachment_url( bp_get_document_preview_attachment_id() );
}
if ( in_array( $extension, bp_get_document_preview_music_extensions(), true ) ) {
$audio_url = bp_document_get_preview_audio_url( bp_get_document_id(), $extension, $attachment_id );
}
if ( ! empty( $extension_lists ) ) {
$extension_lists = array_column( $extension_lists, 'description', 'extension' );
$extension_name = '.' . $extension;
if ( ! empty( $extension_lists ) && ! empty( $extension ) && array_key_exists( $extension_name, $extension_lists ) ) {
$extension_description = '<span class="document-extension-description">' . esc_html( $extension_lists[ $extension_name ] ) . '</span>';
}
}
$output = '';
ob_start();
if ( in_array( $extension, bp_get_document_preview_music_extensions(), true ) ) {
$audio_url = bp_document_get_preview_audio_url( bp_get_document_id(), $extension, $attachment_id );
?>
<div class="document-audio-wrap">
<audio controls controlsList="nodownload">
<source src="<?php echo esc_url( $audio_url ); ?>" type="audio/mpeg">
<?php esc_html_e( 'Your browser does not support the audio element.', 'buddyboss' ); ?>
</audio>
</div>
<?php
}
$attachment_url = bp_document_get_preview_image_url( bp_get_document_id(), $extension, bp_get_document_preview_attachment_id() );
if ( $attachment_url ) {
?>
<div class="document-preview-wrap">
<img src="<?php echo esc_url( $attachment_url ); ?>" alt="" />
</div><!-- .document-preview-wrap -->
<?php
}
$sizes = is_file( get_attached_file( $attachment_id ) ) ? get_attached_file( $attachment_id ) : 0;
if ( $sizes && filesize( $sizes ) / 1e+6 < 2 ) {
if ( in_array( $extension, bp_get_document_preview_code_extensions(), true ) ) {
$data = bp_document_get_preview_text_from_attachment( $attachment_id );
$file_data = $data['text'];
$more_text = $data['more_text']
?>
<div class="document-text-wrap">
<div class="document-text" data-extension="<?php echo esc_attr( $extension ); ?>">
<textarea class="document-text-file-data-hidden" style="display: none;"><?php echo wp_kses_post( $file_data ); ?></textarea>
</div>
<div class="document-expand">
<a href="#" class="document-expand-anchor"><i class="bb-icon-plus document-icon-plus"></i> <?php esc_html_e( 'Click to expand', 'buddyboss' ); ?></a>
</div>
</div> <!-- .document-text-wrap -->
<?php
if ( true === $more_text ) {
printf(
/* translators: %s: download string */
'<div class="more_text_view">%s</div>',
sprintf(
/* translators: %s: download url */
wp_kses_post( 'This file was truncated for preview. Please <a href="%s">download</a> to view the full file.', 'buddyboss' ),
esc_url( $download_url )
)
);
}
}
}
$output .= ob_get_clean();
$thread->messages[ $i ]['document'][] = array(
'id' => bp_get_document_id(),
'title' => bp_get_document_title(),
'attachment_id' => bp_get_document_attachment_id(),
'url' => $download_url,
'extension' => $extension,
'svg_icon' => $svg_icon,
'svg_icon_download' => $svg_icon_download,
'filename' => $filename,
'size' => $size,
'meta' => $document_template->document->attachment_data->meta,
'download_text' => __( 'Click to view', 'buddyboss' ),
'extension_description' => $extension_description,
'download' => __( 'Download', 'buddyboss' ),
'collapse' => __( 'Collapse', 'buddyboss' ),
'copy_download_link' => __( 'Copy Download Link', 'buddyboss' ),
'more_action' => __( 'More actions', 'buddyboss' ),
'preview' => $attachment_url,
'msg_preview' => $output,
'privacy' => bp_get_db_document_privacy(),
'author' => bp_get_document_user_id(),
'text_preview' => $text_attachment_url ? esc_url( $text_attachment_url ) : '',
'mp3_preview' => $audio_url ? $audio_url : '',
'document_title' => $filename ? $filename : '',
'mirror_text' => $mirror_text ? $mirror_text : '',
);
}
}
}
if ( bp_is_active( 'media' ) && bp_is_messages_gif_support_enabled() ) {
$gif_data = bp_messages_get_meta( bp_get_the_thread_message_id(), '_gif_data', true );
if ( ! empty( $gif_data ) ) {
$preview_url = wp_get_attachment_url( $gif_data['still'] );
$video_url = wp_get_attachment_url( $gif_data['mp4'] );
$thread->messages[ $i ]['gif'] = array(
'preview_url' => $preview_url,
'video_url' => $video_url,
);
}
}
$extra_content = bp_nouveau_messages_catch_hook_content(
array(
'beforeMeta' => 'bp_before_message_meta',
'afterMeta' => 'bp_after_message_meta',
'beforeContent' => 'bp_before_message_content',
'afterContent' => 'bp_after_message_content',
)
);
if ( array_filter( $extra_content ) ) {
$thread->messages[ $i ] = array_merge( $thread->messages[ $i ], $extra_content );
}
$i += 1;
endwhile;
$thread->messages = array_filter( $thread->messages );
// Remove the bp_current_action() override.
$bp->current_action = $reset_action;
// pagination
$thread->per_page = $thread_template->thread->messages_perpage;
$thread->messages_count = $thread_template->thread->total_messages;
$thread->next_messages_timestamp = $thread_template->thread->messages[ count( $thread_template->thread->messages ) - 1 ]->date_sent;
return $thread;
}
Changelog
| Version | Description |
|---|---|
| BuddyBoss 1.3.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.