Skip to:
Content

BuddyPress.org

Changeset 6564


Ignore:
Timestamp:
12/04/2012 01:37:35 PM (14 years ago)
Author:
djpaul
Message:

Fix avatar cropping for WordPress 3.5. Fixes #4608 for trunk.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-core/bp-core-avatars.php

    r6469 r6564  
    480480                return true;
    481481
    482         require_once( ABSPATH . '/wp-admin/includes/image.php' );
    483482        require_once( ABSPATH . '/wp-admin/includes/file.php' );
    484483
    … …  
    521520
    522521        // Get image size
    523         $size = @getimagesize( $bp->avatar_admin->original['file'] );
     522        $size  = @getimagesize( $bp->avatar_admin->original['file'] );
     523        $error = false;
    524524
    525525        // Check image size and shrink if too large
    526526        if ( $size[0] > bp_core_avatar_original_max_width() ) {
    527                 $thumb = wp_create_thumbnail( $bp->avatar_admin->original['file'], bp_core_avatar_original_max_width() );
    528 
    529                 // Check for thumbnail creation errors
    530                 if ( is_wp_error( $thumb ) ) {
    531                         bp_core_add_message( sprintf( __( 'Upload Failed! Error was: %s', 'buddypress' ), $thumb->get_error_message() ), 'error' );
     527                $editor = wp_get_image_editor( $bp->avatar_admin->original['file'] );
     528
     529                if ( ! is_wp_error( $editor ) ) {
     530                        $editor->set_quality( 100 );
     531
     532                        $resized = $editor->resize( bp_core_avatar_original_max_width(), bp_core_avatar_original_max_width(), false );
     533                        if ( ! is_wp_error( $resized ) )
     534                                $thumb = $editor->save( $editor->generate_filename() );
     535                        else
     536                                $error = $resized;
     537
     538                        // Check for thumbnail creation errors
     539                        if ( false === $error && is_wp_error( $thumb ) )
     540                                $error = $thumb;
     541
     542                        if ( false === $error ) {
     543                                // Thumbnail is good so proceed
     544                                $bp->avatar_admin->resized = $thumb;
     545                        }
     546
     547                } else {
     548                        $error = $editor;
     549                }
     550
     551                if ( false !== $error ) {
     552                        bp_core_add_message( sprintf( __( 'Upload Failed! Error was: %s', 'buddypress' ), $error->get_error_message() ), 'error' );
    532553                        return false;
    533554                }
    534 
    535                 // Thumbnail is good so proceed
    536                 $bp->avatar_admin->resized = $thumb;
    537555        }
    538556
    … …  
    541559                $bp->avatar_admin->image->dir = str_replace( bp_core_avatar_upload_path(), '', $bp->avatar_admin->original['file'] );
    542560        else {
    543                 $bp->avatar_admin->image->dir = str_replace( bp_core_avatar_upload_path(), '', $bp->avatar_admin->resized );
     561                $bp->avatar_admin->image->dir = str_replace( bp_core_avatar_upload_path(), '', $bp->avatar_admin->resized['path'] );
    544562                @unlink( $bp->avatar_admin->original['file'] );
    545563        }
Note: See TracChangeset for help on using the changeset viewer.