function bp_core_avatar_admin($message = null, $action, $delete_action) { global $wp_upload_error; ?> <?php if (!isset($_POST['slick_avatars_action']) && !isset($_GET['slick_avatars_action'])) { ?> <?php if ($message) { ?> <br /> <div id="message" class="updated fade"> <p><?php echo $message; ?> </p> </div> <?php } ?> <p><?php _e('Your avatar will be used on your profile and throughout the site.', 'buddypress'); ?> </p> <p><?php _e('Click below to select a JPG, GIF or PNG format photo from your computer and then click \'Upload Photo\' to proceed.', 'buddypress'); ?> </p> <?php bp_core_render_avatar_upload_form($action); $str = bp_core_get_avatar(get_current_user_id(), 1); if (strlen($str)) { echo '<h3>' . __('This is your current avatar', 'buddypress') . '</h3>'; echo '<span class="crop-img avatar">' . bp_core_get_avatar(get_current_user_id(), 1) . '</span>'; echo '<span class="crop-img avatar">' . bp_core_get_avatar(get_current_user_id(), 2) . '</span>'; echo '<a href="' . wp_nonce_url($delete_action, 'bp_delete_avatar_link') . '">' . __('Delete', 'buddypress') . '</a>'; } } else { if (isset($_POST['slick_avatars_action']) && 'upload' == $_POST['slick_avatars_action']) { // Confirm that the nonce is valid if (!isset($_POST['nonce']) || !wp_verify_nonce($_POST['nonce'], 'slick_avatars')) { bp_core_ap_die('Security error.'); } // Set friendly error feedback. $uploadErrors = array(0 => __("There is no error, the file uploaded with success", 'buddypress'), 1 => __("Your image was bigger than the maximum allowed file size of: ", 'buddypress') . size_format(CORE_MAX_FILE_SIZE), 2 => __("Your image was bigger than the maximum allowed file size of: ", 'buddypress') . size_format(CORE_MAX_FILE_SIZE), 3 => __("The uploaded file was only partially uploaded", 'buddypress'), 4 => __("No file was uploaded", 'buddypress'), 6 => __("Missing a temporary folder", 'buddypress')); if (!bp_core_check_avatar_upload($_FILES)) { bp_core_ap_die(sprintf(__('Your upload failed, please try again. Error was: %s', 'buddypress'), $uploadErrors[$_FILES['file']['error']])); } if (!bp_core_check_avatar_size($_FILES)) { bp_core_ap_die(sprintf(__('The file you uploaded is too big. Please upload a file under %s', 'buddypress'), size_format(CORE_MAX_FILE_SIZE))); } if (!bp_core_check_avatar_type($_FILES)) { bp_core_ap_die(__('Please upload only JPG, GIF or PNG photos.', 'buddypress')); } // "Handle" upload into temporary location if (!($original = bp_core_handle_avatar_upload($_FILES))) { bp_core_ap_die(sprintf(__('Upload Failed! Error was: %s', 'buddypress'), $wp_upload_error)); } // Resize down to something we can display on the page or use original if its small enough already. if (!($canvas = bp_core_resize_avatar($original))) { $canvas = $original; } // Render the cropper UI bp_core_render_avatar_cropper($original, $canvas, $action); } else { if (isset($_POST['slick_avatars_action']) && 'crop' == $_POST['slick_avatars_action']) { // Crop, save, store // Confirm that the nonce is valid if (!isset($_POST['nonce']) || !wp_verify_nonce($_POST['nonce'], 'slick_avatars')) { bp_core_ap_die(__('Security error.', 'buddypress')); } if (!bp_core_check_crop($_POST['orig'], $_POST['canvas'])) { bp_core_ap_die(__('Error when cropping, please go back and try again', 'buddypress')); } if (!($result = bp_core_avatar_cropstore(stripslashes($_POST['orig']), $_POST['canvas'], $_POST['v1_x1'], $_POST['v1_y1'], $_POST['v1_w'], $_POST['v1_h'], $_POST['v2_x1'], $_POST['v2_y1'], $_POST['v2_w'], $_POST['v2_h']))) { bp_core_ap_die(__('Error when saving avatars, please go back and try again.', 'buddypress')); } // Store details to the DB and we're done echo '<p>' . __('Your new avatar was successfully created!', 'buddypress') . '</p>'; bp_core_avatar_save($result); echo '<span class="crop-img">' . bp_core_get_avatar(get_current_user_id(), 1) . '</span>'; if (CORE_AVATAR_V2_W && CORE_AVATAR_V2_H) { echo '<span class="crop-img">' . bp_core_get_avatar(get_current_user_id(), 2) . '</span>'; } } else { if (isset($_GET['slick_avatars_action']) && 'delete' == $_GET['slick_avatars_action']) { // Delete an avatar bp_core_delete_avatar(); unset($_GET['slick_avatars_action']); $message = __('Avatar successfully removed.', 'buddypress'); bp_core_avatar_admin($message); } } } } ?> <?php }
/** * xprofile_action_delete_avatar() * * This function runs when an action is set for a screen: * example.com/members/andy/profile/change-avatar/ [delete-avatar] * * The function will delete the active avatar for a user. * * @package BuddyPress Xprofile * @global $bp The global BuddyPress settings variable created in bp_core_setup_globals() * @uses bp_core_delete_avatar() Deletes the active avatar for the logged in user. * @uses add_action() Runs a specific function for an action when it fires. * @uses bp_core_load_template() Looks for and loads a template file within the current member theme (folder/filename) */ function xprofile_action_delete_avatar() { global $bp; if ('delete-avatar' != $bp->current_action) { return false; } if (!check_admin_referer('bp_delete_avatar_link')) { return false; } if (bp_is_home()) { bp_core_delete_avatar(); add_action('wp_head', 'bp_core_add_cropper_js'); bp_core_load_template(apply_filters('xprofile_template_delete_avatar', 'profile/change-avatar')); } }