BP_REST_Document_Endpoint::document_get_prepare_response( BP_Document $document, array $request )
Prepare object response for the document/folder.
Description
Parameters
- $document
-
(Required) Document object.
- $request
-
(Required) Request paramaters.
Return
(array)
Source
File: bp-document/classes/class-bp-rest-document-endpoint.php
public function document_get_prepare_response( $document, $request ) { $data = array( 'id' => $document->id, 'blog_id' => $document->blog_id, 'attachment_id' => ( isset( $document->attachment_id ) ? $document->attachment_id : 0 ), 'user_id' => $document->user_id, 'title' => $document->title, 'type' => ( empty( $document->attachment_id ) ? 'folder' : 'document' ), 'folder_id' => $document->parent, 'group_id' => $document->group_id, 'activity_id' => ( isset( $document->activity_id ) ? $document->activity_id : 0 ), 'privacy' => $document->privacy, 'menu_order' => ( isset( $document->menu_order ) ? $document->menu_order : 0 ), 'date_created' => $document->date_created, 'date_modified' => $document->date_modified, 'group_name' => $document->group_name, 'group_status' => ( bp_is_active( 'groups' ) && ! empty( $document->group_id ) ? bp_get_group_status( groups_get_group( $document->group_id ) ) : '' ), 'visibility' => $document->visibility, 'download_url' => '', 'extension' => '', 'extension_description' => '', 'svg_icon' => '', 'filename' => '', 'size' => '', 'msg_preview' => '', 'attachment_data' => ( isset( $document->attachment_data ) ? $document->attachment_data : array() ), 'user_nicename' => $document->user_nicename, 'user_login' => $document->user_login, 'display_name' => $document->display_name, 'user_permissions' => $this->get_document_current_user_permissions( $document, $request ), ); if ( ! empty( $document->attachment_id ) ) { $data['download_url'] = bp_document_download_link( $document->attachment_id, $document->id ); $data['extension'] = bp_document_extension( $document->attachment_id ); $data['svg_icon'] = bp_document_svg_icon( $data['extension'], $document->attachment_id, 'svg' ); $data['filename'] = basename( get_attached_file( $document->attachment_id ) ); $data['size'] = bp_document_size_format( filesize( get_attached_file( $document->attachment_id ) ) ); $extension_lists = bp_document_extensions_list(); if ( ! empty( $extension_lists ) && ! empty( $data['extension'] ) ) { $extension_lists = array_column( $extension_lists, 'description', 'extension' ); $extension_name = '.' . $data['extension']; if ( ! empty( $extension_lists ) && ! empty( $data['extension'] ) && array_key_exists( $extension_name, $extension_lists ) ) { $data['extension_description'] = esc_html( $extension_lists[ $extension_name ] ); } } $output = ''; ob_start(); if ( in_array( $data['extension'], bp_get_document_preview_music_extensions(), true ) ) { $audio_url = bp_document_get_preview_audio_url( $document->id, $data['extension'], $document->attachment_id ); echo '<div class="document-audio-wrap">' . '<audio controls controlsList="nodownload">' . '<source src="' . esc_url_raw( $audio_url ) . '" type="audio/mpeg">' . esc_html__( 'Your browser does not support the audio element.', 'buddyboss' ) . '</audio>' . '</div>'; } $attachment_url = bp_document_get_preview_image_url( $document->id, $data['extension'], $document->attachment_id ); if ( $attachment_url ) { echo '<div class="document-preview-wrap">' . '<img src="' . esc_url_raw( $attachment_url ) . '" alt="" />' . '</div>'; } $sizes = is_file( get_attached_file( $document->attachment_id ) ) ? get_attached_file( $document->attachment_id ) : 0; if ( $sizes && filesize( $sizes ) / 1e+6 < 2 ) { if ( in_array( $data['extension'], bp_get_document_preview_code_extensions(), true ) ) { $data_temp = bp_document_get_preview_text_from_attachment( $document->attachment_id ); $file_data = $data_temp['text']; $more_text = $data_temp['more_text']; echo '<div class="document-text-wrap">' . '<div class="document-text" data-extension="' . esc_attr( $data['extension'] ) . '">' . '<textarea class="document-text-file-data-hidden" style="display: none;">' . 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> ' . esc_html__( 'Click to expand', 'buddyboss' ) . '</a>' . '</div>' . '</div>'; 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( $data['download_url'] ) ) ); } } } $output .= ob_get_clean(); $data['msg_preview'] = $output; } else { $data['svg_icon'] = bp_document_svg_icon( 'folder', '', 'svg' ); $data['download_url'] = bp_document_folder_download_link( $document->id ); } return $data; }
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.