xprofile_screen_change_avatar ()
处理用户头像的上传和裁剪。显示更改头像页面。
描述
源
文件:bp-xprofile /屏幕/ change-avatar.php
function xprofile_screen_change_avatar(){//如果没有正确的屏幕保释。如果(!bp_is_my_profile () & & !Bp_current_user_can ('bp_moderate')){返回false;} //如果有动作变量,则保释。If (bp_action_variables()) {bp_do_404();返回;} $bp = buddypress();如果(!isset($bp->avatar_admin)) {$bp->avatar_admin = new stdClass(); } $bp->avatar_admin->step = 'upload-image'; if ( !empty( $_FILES ) ) { // Check the nonce. check_admin_referer( 'bp_avatar_upload' ); // Pass the file to the avatar upload handler. if ( bp_core_avatar_handle_upload( $_FILES, 'xprofile_avatar_upload_dir' ) ) { $bp->avatar_admin->step = 'crop-image'; // Make sure we include the jQuery jCrop file for image cropping. add_action( 'wp_print_scripts', 'bp_core_add_jquery_cropper' ); } } // If the image cropping is done, crop the image and save a full/thumb version. if ( isset( $_POST['avatar-crop-submit'] ) ) { // Check the nonce. check_admin_referer( 'bp_avatar_cropstore' ); $args = array( 'item_id' => bp_displayed_user_id(), 'original_file' => $_POST['image_src'], 'crop_x' => $_POST['x'], 'crop_y' => $_POST['y'], 'crop_w' => $_POST['w'], 'crop_h' => $_POST['h'] ); if ( ! bp_core_avatar_handle_crop( $args ) ) { bp_core_add_message( __( 'There was a problem cropping your profile photo.', 'buddyboss' ), 'error' ); } else { /** * Fires right before the redirect, after processing a new avatar. * * @since BuddyPress 1.1.0 * @since BuddyPress 2.3.4 Add two new parameters to inform about the user id and * about the way the avatar was set (eg: 'crop' or 'camera'). * * @param string $item_id Inform about the user id the avatar was set for. * @param string $value Inform about the way the avatar was set ('crop'). */ do_action( 'xprofile_avatar_uploaded', (int) $args['item_id'], 'crop' ); bp_core_add_message( __( 'Your new profile photo was uploaded successfully.', 'buddyboss' ) ); bp_core_redirect( bp_displayed_user_domain() ); } } /** * Fires right before the loading of the XProfile change avatar screen template file. * * @since BuddyPress 1.0.0 */ do_action( 'xprofile_screen_change_avatar' ); /** * Filters the template to load for the XProfile change avatar screen. * * @since BuddyPress 1.0.0 * * @param string $template Path to the XProfile change avatar template to load. */ bp_core_load_template( apply_filters( 'xprofile_template_change_avatar', 'members/single/home' ) ); }
更新日志
版本 | 描述 |
---|---|
BuddyPress 1.0.0 | 介绍了。 |