Skip to:
Content

BuddyPress.org


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/1.2/bp-core/bp-core-avatars.php

    r2876 r2984  
    109109        $html_height = ( 'thumb' == $type ) ? ' height="' . BP_AVATAR_THUMB_HEIGHT . '"' : ' height="' . BP_AVATAR_FULL_HEIGHT . '"';
    110110
    111     $avatar_folder_url = apply_filters( 'bp_core_avatar_folder_url', str_replace( WP_CONTENT_DIR, BP_AVATAR_URL, BP_AVATAR_UPLOAD_PATH ) . '/' . $avatar_dir . '/' . $item_id, $item_id, $object, $avatar_dir );
     111    $avatar_folder_url = apply_filters( 'bp_core_avatar_folder_url', BP_AVATAR_URL . '/' . $avatar_dir . '/' . $item_id, $item_id, $object, $avatar_dir );
    112112    $avatar_folder_dir = apply_filters( 'bp_core_avatar_folder_dir', BP_AVATAR_UPLOAD_PATH . '/' . $avatar_dir . '/' . $item_id, $item_id, $object, $avatar_dir );
    113113
     
    131131
    132132        if ( $avatar_url )
    133             return apply_filters( 'bp_core_fetch_avatar', "<img src='{$avatar_url}' alt='{$alt}' class='{$class}'{$css_id}{$html_width}{$html_height} />", $params );
     133            return apply_filters( 'bp_core_fetch_avatar', "<img src='{$avatar_url}' alt='{$alt}' class='{$class}'{$css_id}{$html_width}{$html_height} />", $params, $item_id, $avatar_dir, $css_id, $html_width, $html_height, $avatar_folder_url, $avatar_folder_dir );
    134134    }
    135135
     
    163163        $gravatar = apply_filters( 'bp_gravatar_url', $host ) . md5( $email ) . '?d=' . $default_grav . '&amp;s=' . $grav_size;
    164164
    165         return apply_filters( 'bp_core_fetch_avatar', "<img src='{$gravatar}' alt='{$alt}' class='{$class}'{$css_id}{$html_width}{$html_height} />", $params );
    166 
     165        return apply_filters( 'bp_core_fetch_avatar', "<img src='{$gravatar}' alt='{$alt}' class='{$class}'{$css_id}{$html_width}{$html_height} />", $params, $item_id, $avatar_dir, $css_id, $html_width, $html_height, $avatar_folder_url, $avatar_folder_dir );
    167166    } else {
    168         return false;
     167        return apply_filters( 'bp_core_fetch_avatar', false, $params, $item_id, $avatar_dir, $css_id, $html_width, $html_height, $avatar_folder_url, $avatar_folder_dir );
    169168    }
    170169}
     
    230229function bp_core_avatar_handle_upload( $file, $upload_dir_filter ) {
    231230    global $bp;
     231
     232    /***
     233     * You may want to hook into this filter if you want to override this function.
     234     * Make sure you return false.
     235     */
     236    if ( !apply_filters( 'bp_core_pre_avatar_handle_upload', true, $file, $upload_dir_filter ) )
     237        return true;
    232238
    233239    require_once( ABSPATH . '/wp-admin/includes/image.php' );
     
    269275    }
    270276
    271     /* Resize the image down to something manageable and then delete the original */
    272     if ( getimagesize( $bp->avatar_admin->original['file'] ) > BP_AVATAR_ORIGINAL_MAX_WIDTH )
    273         $bp->avatar_admin->resized = wp_create_thumbnail( $bp->avatar_admin->original['file'], BP_AVATAR_ORIGINAL_MAX_WIDTH );
    274 
    275     $bp->avatar_admin->image = new stdClass;
     277    /* Get image size */
     278    $size = @getimagesize( $bp->avatar_admin->original['file'] );
     279
     280    /* Check image size and shrink if too large */
     281    if ( $size[0] > BP_AVATAR_ORIGINAL_MAX_WIDTH ) {
     282        $thumb = wp_create_thumbnail( $bp->avatar_admin->original['file'], BP_AVATAR_ORIGINAL_MAX_WIDTH );
     283
     284        /* Check for thumbnail creation errors */
     285        if ( is_wp_error( $thumb ) ) {
     286            bp_core_add_message( sprintf( __( 'Upload Failed! Error was: %s', 'buddypress' ), $thumb->get_error_message() ), 'error' );
     287            return false;
     288        }
     289
     290        /* Thumbnail is good so proceed */
     291        $bp->avatar_admin->resized = $thumb;
     292    }
    276293
    277294    /* We only want to handle one image after resize. */
    278295    if ( empty( $bp->avatar_admin->resized ) )
    279         $bp->avatar_admin->image->dir = $bp->avatar_admin->original['file'];
     296        $bp->avatar_admin->image->dir = str_replace( BP_AVATAR_UPLOAD_PATH, '', $bp->avatar_admin->original['file'] );
    280297    else {
    281         $bp->avatar_admin->image->dir = $bp->avatar_admin->resized;
     298        $bp->avatar_admin->image->dir = str_replace( BP_AVATAR_UPLOAD_PATH, '', $bp->avatar_admin->resized );
    282299        @unlink( $bp->avatar_admin->original['file'] );
    283300    }
    284301
    285302    /* Set the url value for the image */
    286     $bp->avatar_admin->image->url = str_replace( WP_CONTENT_DIR, BP_AVATAR_URL, $bp->avatar_admin->image->dir );
     303    $bp->avatar_admin->image->url = BP_AVATAR_URL . $bp->avatar_admin->image->dir;
    287304
    288305    return true;
     
    304321
    305322    $r = wp_parse_args( $args, $defaults );
     323
     324    /***
     325     * You may want to hook into this filter if you want to override this function.
     326     * Make sure you return false.
     327     */
     328    if ( !apply_filters( 'bp_core_pre_avatar_handle_crop', true, $r ) )
     329        return true;
     330
    306331    extract( $r, EXTR_SKIP );
    307332
     
    309334        return false;
    310335
    311     if ( !file_exists( WP_CONTENT_DIR . '/' . $original_file ) )
     336    $original_file = BP_AVATAR_UPLOAD_PATH . $original_file;
     337
     338    if ( !file_exists( $original_file ) )
    312339        return false;
    313340
    314341    if ( !$item_id )
    315         $avatar_folder_dir = apply_filters( 'bp_core_avatar_folder_dir', WP_CONTENT_DIR . dirname( $original_file ), $item_id, $object, $avatar_dir );
     342        $avatar_folder_dir = apply_filters( 'bp_core_avatar_folder_dir', dirname( $original_file ), $item_id, $object, $avatar_dir );
    316343    else
    317344        $avatar_folder_dir = apply_filters( 'bp_core_avatar_folder_dir', BP_AVATAR_UPLOAD_PATH . '/' . $avatar_dir . '/' . $item_id, $item_id, $object, $avatar_dir );
     
    338365
    339366    /* Crop the image */
    340     $full_cropped = wp_crop_image( WP_CONTENT_DIR . $original_file, (int)$crop_x, (int)$crop_y, (int)$crop_w, (int)$crop_h, BP_AVATAR_FULL_WIDTH, BP_AVATAR_FULL_HEIGHT, false, $avatar_folder_dir . '/' . $full_filename );
    341     $thumb_cropped = wp_crop_image( WP_CONTENT_DIR . $original_file, (int)$crop_x, (int)$crop_y, (int)$crop_w, (int)$crop_h, BP_AVATAR_THUMB_WIDTH, BP_AVATAR_THUMB_HEIGHT, false, $avatar_folder_dir . '/' . $thumb_filename );
     367    $full_cropped = wp_crop_image( $original_file, (int)$crop_x, (int)$crop_y, (int)$crop_w, (int)$crop_h, BP_AVATAR_FULL_WIDTH, BP_AVATAR_FULL_HEIGHT, false, $avatar_folder_dir . '/' . $full_filename );
     368    $thumb_cropped = wp_crop_image( $original_file, (int)$crop_x, (int)$crop_y, (int)$crop_w, (int)$crop_h, BP_AVATAR_THUMB_WIDTH, BP_AVATAR_THUMB_HEIGHT, false, $avatar_folder_dir . '/' . $thumb_filename );
    342369
    343370    /* Remove the original */
    344     @unlink( WP_CONTENT_DIR . $original_file );
     371    @unlink( $original_file );
    345372
    346373    return true;
     
    389416
    390417function bp_core_avatar_upload_path() {
    391     if ( bp_core_is_multisite() )
    392         $path = ABSPATH . get_blog_option( BP_ROOT_BLOG, 'upload_path' );
    393     else {
    394         if ( !$path = get_option( 'upload_path' ) )
    395             $path = WP_CONTENT_DIR . '/uploads';
    396     }
    397 
    398     return apply_filters( 'bp_core_avatar_upload_path', $path );
     418    $upload_dir = wp_upload_dir();
     419    return apply_filters( 'bp_core_avatar_upload_path', $upload_dir['basedir'] );
    399420}
    400421
    401422function bp_core_avatar_url() {
    402     if ( !bp_core_is_multisite() )
    403         return WP_CONTENT_URL;
    404 
    405     return apply_filters( 'bp_core_avatar_url', get_blog_option( BP_ROOT_BLOG, 'siteurl' ) );
     423    $upload_dir = wp_upload_dir();
     424    return apply_filters( 'bp_core_avatar_url', $upload_dir['baseurl'] );
    406425}
    407426
Note: See TracChangeset for help on using the changeset viewer.