Skip to:
Content

BuddyPress.org

Changeset 10134


Ignore:
Timestamp:
09/24/2015 10:28:21 AM (9 years ago)
Author:
imath
Message:

Make sure the xprofile_avatar_uploaded action is fired once the avatar of the user is set.

In 2.3.0, we introduced a new UI to manage avatar. It now uses Ajax to upload and set the avatar. Unfortunately a confusion was made about the xprofile_avatar_uploaded action. It was firing immediately after the avatar was uploaded but before it has been set using the cropping tool.

This commit is:

  • making sure the action is fired at the right time
  • adding new parameters to the action to inform about the User ID and the way the avatar was set ("crop" or "camera")
  • making sure an activity will be generated if the avatar was set within the wp-admin/extended-profile.

Props r-a-y, landwire

See #6612 (branch 2.3)

Location:
branches/2.3/src
Files:
3 edited

Legend:

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

    r9860 r10134  
    988988    $name = trim( substr( $name, 0, - ( 1 + strlen( $name_parts['extension'] ) ) ) );
    989989
    990     if ( 'user' === $bp_params['object'] ) {
    991         do_action( 'xprofile_avatar_uploaded' );
    992     }
    993 
    994990    // Finally return the avatar to the editor
    995991    bp_attachments_json_response( true, $is_html4, array(
     
    10421038        // Crop to default values
    10431039        $crop_args = array( 'item_id' => $item_id, 'original_file' => $avatar_to_crop, 'crop_x' => 0, 'crop_y' => 0 );
    1044 
    1045         do_action( 'xprofile_avatar_uploaded' );
    10461040
    10471041        return bp_core_avatar_handle_crop( $crop_args );
     
    11791173            );
    11801174
    1181             do_action( 'xprofile_screen_change_avatar' );
     1175            /**
     1176             * Fires if the new avatar was successfully captured.
     1177             *
     1178             * @since 1.1.0 Used to inform the avatar was successfully cropped
     1179             * @since 2.3.4 Add two new parameters to inform about the user id and
     1180             *              about the way the avatar was set (eg: 'crop' or 'camera')
     1181             *              Move the action at the right place, once the avatar is set
     1182             *
     1183             * @param string $item_id Inform about the user id the avatar was set for
     1184             * @param string $type    Inform about the way the avatar was set ('camera')
     1185             */
     1186            do_action( 'xprofile_avatar_uploaded', (int) $avatar_data['item_id'], $avatar_data['type'] );
    11821187
    11831188            wp_send_json_success( $return );
     
    12241229
    12251230        if ( 'user' === $avatar_data['object'] ) {
    1226             do_action( 'xprofile_screen_change_avatar' );
     1231            /**
     1232             * Fires if the new avatar was successfully cropped.
     1233             *
     1234             * @since 1.1.0 Used to inform the avatar was successfully cropped
     1235             * @since 2.3.4 Add two new parameters to inform about the user id and
     1236             *              about the way the avatar was set (eg: 'crop' or 'camera')
     1237             *              Move the action at the right place, once the avatar is set
     1238             *
     1239             * @param string $item_id Inform about the user id the avatar was set for
     1240             * @param string $type Inform about the way the avatar was set ('crop')
     1241             */
     1242            do_action( 'xprofile_avatar_uploaded', (int) $avatar_data['item_id'], $avatar_data['type'] );
    12271243        }
    12281244
  • branches/2.3/src/bp-xprofile/bp-xprofile-activity.php

    r9819 r10134  
    203203 * Adds an activity stream item when a user has uploaded a new avatar.
    204204 *
    205  * @since BuddyPress (1.0.0)
     205 * @since 1.0.0
     206 * @since 2.3.4 Add new parameter to get the user id the avatar was set for
    206207 *
    207208 * @package BuddyPress XProfile
    208209 * @uses bp_activity_add() Adds an entry to the activity component tables for a
    209210 *                         specific activity
    210  */
    211 function bp_xprofile_new_avatar_activity() {
    212 
    213     // Bail if activity component is not active
    214     if ( ! bp_is_active( 'activity' ) ) {
    215         return false;
     211 *
     212 * @param  int $user_id The user id the avatar was set for
     213 */
     214function bp_xprofile_new_avatar_activity( $user_id = 0 ) {
     215
     216    // Bail if activity component is not active
     217    if ( ! bp_is_active( 'activity' ) ) {
     218        return false;
     219    }
     220
     221    if ( empty( $user_id ) ) {
     222        $user_id = bp_displayed_user_id();
    216223    }
    217224
     
    219226     * Filters the user ID when a user has uploaded a new avatar.
    220227     *
    221      * @since BuddyPress (1.5.0)
    222      *
    223      * @param int $value ID of the displayed user.
    224      */
    225     $user_id = apply_filters( 'bp_xprofile_new_avatar_user_id', bp_displayed_user_id() );
     228     * @since 1.5.0
     229     *
     230     * @param int $user_id ID of the user the avatar was set for.
     231     */
     232    $user_id = apply_filters( 'bp_xprofile_new_avatar_user_id', $user_id );
    226233
    227234    // Add the activity
  • branches/2.3/src/bp-xprofile/bp-xprofile-screens.php

    r9819 r10134  
    264264             * Fires right before the redirect, after processing a new avatar.
    265265             *
    266              * @since BuddyPress (1.1.0)
     266             * @since 1.1.0
     267             * @since 2.3.4 Add two new parameters to inform about the user id and
     268             *              about the way the avatar was set (eg: 'crop' or 'camera')
     269             *
     270             * @param string $item_id Inform about the user id the avatar was set for
     271             * @param string $value Inform about the way the avatar was set ('crop')
    267272             */
    268             do_action( 'xprofile_avatar_uploaded' );
     273            do_action( 'xprofile_avatar_uploaded', (int) $args['item_id'], 'crop' );
    269274            bp_core_add_message( __( 'Your new profile photo was uploaded successfully.', 'buddypress' ) );
    270275            bp_core_redirect( bp_displayed_user_domain() );
Note: See TracChangeset for help on using the changeset viewer.