groups_screen_group_admin_avatar()
Handle the display of a group’s Change Avatar page.
Description
Source
File: bp-groups/screens/single/admin/group-avatar.php
function groups_screen_group_admin_avatar() {
if ( 'group-avatar' != bp_get_group_current_admin_tab() )
return false;
// If the logged-in user doesn't have permission or if avatar uploads are disabled, then stop here.
if ( ! bp_is_item_admin() || bp_disable_group_avatar_uploads() || ! buddypress()->avatar->show_avatars )
return false;
$bp = buddypress();
// If the group admin has deleted the admin avatar.
if ( bp_is_action_variable( 'delete', 1 ) ) {
// Check the nonce.
check_admin_referer( 'bp_group_avatar_delete' );
if ( bp_core_delete_existing_avatar( array( 'item_id' => $bp->groups->current_group->id, 'object' => 'group' ) ) ) {
bp_core_add_message( __( 'The group profile photo was deleted successfully!', 'buddyboss' ) );
} else {
bp_core_add_message( __( 'There was a problem deleting the group profile photo. Please try again.', 'buddyboss' ), 'error' );
}
}
if ( ! 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, 'groups_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(
'object' => 'group',
'avatar_dir' => 'group-avatars',
'item_id' => $bp->groups->current_group->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 the group profile photo.', 'buddyboss' ), 'error' );
} else {
/**
* Fires after a group avatar is uploaded.
*
* @since BuddyPress 2.8.0
*
* @param int $group_id ID of the group.
* @param string $type Avatar type. 'crop' or 'full'.
* @param array $args Array of parameters passed to the avatar handler.
*/
do_action( 'groups_avatar_uploaded', bp_get_current_group_id(), 'crop', $args );
bp_core_add_message( __( 'The new group profile photo was uploaded successfully.', 'buddyboss' ) );
}
}
/**
* Fires before the loading of the group Change Avatar page template.
*
* @since BuddyPress 1.0.0
*
* @param int $id ID of the group that is being displayed.
*/
do_action( 'groups_screen_group_admin_avatar', $bp->groups->current_group->id );
/**
* Filters the template to load for a group's Change Avatar page.
*
* @since BuddyPress 1.0.0
*
* @param string $value Path to a group's Change Avatar template.
*/
bp_core_load_template( apply_filters( 'groups_template_group_admin_avatar', 'groups/single/home' ) );
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 1.0.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.