Ticket #7265: 7265.diff
File 7265.diff, 4.6 KB (added by , 7 years ago) |
---|
-
src/bp-core/bp-core-attachments.php
diff --git a/src/bp-core/bp-core-attachments.php b/src/bp-core/bp-core-attachments.php index 78bb6cfef..97b8f2cc9 100644
a b function bp_attachments_uploads_dir_get( $data = '' ) { 83 83 return apply_filters( 'bp_attachments_uploads_dir_get', $retval, $data ); 84 84 } 85 85 86 /** 87 * Gets the upload dir array for cover images. 88 * 89 * @since 3.0.0 90 * 91 * @return array See wp_upload_dir(). 92 */ 93 function bp_attachments_cover_image_upload_dir( $args = array() ) { 94 // Default values are for profiles. 95 $object_id = bp_displayed_user_id(); 96 97 if ( empty( $object_id ) ) { 98 $object_id = bp_loggedin_user_id(); 99 } 100 101 $object_directory = 'members'; 102 103 // We're in a group, edit default values. 104 if ( bp_is_group() || bp_is_group_create() ) { 105 $object_id = bp_get_current_group_id(); 106 $object_directory = 'groups'; 107 } 108 109 $r = bp_parse_args( $args, array( 110 'object_id' => $object_id, 111 'object_directory' => $object_directory, 112 ), 'cover_image_upload_dir' ); 113 114 115 // Set the subdir. 116 $subdir = '/' . $r['object_directory'] . '/' . $r['object_id'] . '/cover-image'; 117 118 $upload_dir = bp_upload_dir(); 119 120 /** 121 * Filters the cover image upload directory. 122 * 123 * @since 2.4.0 124 * 125 * @param array $value Array containing the path, URL, and other helpful settings. 126 * @param array $upload_dir The original Uploads dir. 127 */ 128 return apply_filters( 'bp_attachments_cover_image_upload_dir', array( 129 'path' => $upload_dir['basedir'] . $subdir, 130 'url' => set_url_scheme( $upload_dir['baseurl'] ) . $subdir, 131 'subdir' => $subdir, 132 'basedir' => $upload_dir['basedir'], 133 'baseurl' => set_url_scheme( $upload_dir['baseurl'] ), 134 'error' => false 135 ), $upload_dir ); 136 } 137 86 138 /** 87 139 * Get the max upload file size for any attachment. 88 140 * … … function bp_attachments_create_item_type( $type = 'avatar', $args = array() ) { 312 364 $attachment_data = call_user_func_array( $r['component'] . '_avatar_upload_dir', $dir_args ); 313 365 } 314 366 } elseif ( 'cover_image' === $type ) { 315 $attachment_data = bp_attachments_ uploads_dir_get();367 $attachment_data = bp_attachments_cover_image_upload_dir(); 316 368 317 369 // The BP Attachments Uploads Dir is not set, stop. 318 370 if ( ! $attachment_data ) { … … function bp_attachments_cover_image_generate_file( $args = array(), $cover_image 1130 1182 $cover_image_class = new BP_Attachment_Cover_Image(); 1131 1183 } 1132 1184 1185 $upload_dir = bp_attachments_cover_image_upload_dir(); 1186 1133 1187 // Make sure the file is inside the Cover Image Upload path. 1134 if ( false === strpos( $args['file'], $ cover_image_class->upload_path) ) {1188 if ( false === strpos( $args['file'], $upload_dir['basedir'] ) ) { 1135 1189 return false; 1136 1190 } 1137 1191 … … function bp_attachments_cover_image_ajax_upload() { 1290 1344 1291 1345 $error_message = __( 'There was a problem uploading the cover image.', 'buddypress' ); 1292 1346 1293 $bp_attachments_uploads_dir = bp_attachments_ uploads_dir_get();1347 $bp_attachments_uploads_dir = bp_attachments_cover_image_upload_dir(); 1294 1348 1295 1349 // The BP Attachments Uploads Dir is not set, stop. 1296 1350 if ( ! $bp_attachments_uploads_dir ) { -
src/bp-core/classes/class-bp-attachment-cover-image.php
diff --git a/src/bp-core/classes/class-bp-attachment-cover-image.php b/src/bp-core/classes/class-bp-attachment-cover-image.php index 8c6c60b10..9cb501887 100644
a b class BP_Attachment_Cover_Image extends BP_Attachment { 96 96 * @return array $value Upload data (path, url, basedir...). 97 97 */ 98 98 public function upload_dir_filter( $upload_dir = array() ) { 99 // Default values are for profiles. 100 $object_id = bp_displayed_user_id(); 101 102 if ( empty( $object_id ) ) { 103 $object_id = bp_loggedin_user_id(); 104 } 105 106 $object_directory = 'members'; 107 108 // We're in a group, edit default values. 109 if ( bp_is_group() || bp_is_group_create() ) { 110 $object_id = bp_get_current_group_id(); 111 $object_directory = 'groups'; 112 } 113 114 // Set the subdir. 115 $subdir = '/' . $object_directory . '/' . $object_id . '/cover-image'; 116 117 /** 118 * Filters the cover image upload directory. 119 * 120 * @since 2.4.0 121 * 122 * @param array $value Array containing the path, URL, and other helpful settings. 123 * @param array $upload_dir The original Uploads dir. 124 */ 125 return apply_filters( 'bp_attachments_cover_image_upload_dir', array( 126 'path' => $this->upload_path . $subdir, 127 'url' => $this->url . $subdir, 128 'subdir' => $subdir, 129 'basedir' => $this->upload_path, 130 'baseurl' => $this->url, 131 'error' => false 132 ), $upload_dir ); 99 return bp_attachments_cover_image_upload_dir(); 133 100 } 134 101 135 102 /**