1 | <?php |
---|
2 | |
---|
3 | // This is an example function: Set a new Group Avatar from the group id. |
---|
4 | |
---|
5 | function set_group_avatar_by_group_id($group_id, $_FILES){ |
---|
6 | global $bp; |
---|
7 | |
---|
8 | // I have to define the action here instead of in the form via a hidden field, because I like to act on other form inputs where I can not add my hidden fields |
---|
9 | $_POST['action'] = 'bp_avatar_upload'; |
---|
10 | |
---|
11 | // I need to add the group as current_group to the global $bp->groups->current_group. |
---|
12 | // The function groups_avatar_upload_dir needs the current_group id in the global $bp->groups->current_group->id to work... |
---|
13 | $current_group = groups_get_group(array('group_id' => $group_id)); |
---|
14 | $bp->groups->current_group = $current_group; |
---|
15 | |
---|
16 | // This is needed, otherwise there is no avatar_admin object to be filled up by the bp_core_avatar_handle_upload function |
---|
17 | $bp->avatar_admin = new stdClass(); |
---|
18 | |
---|
19 | if ( !empty( $_FILES ) ) { |
---|
20 | |
---|
21 | // Pass the file to the avatar upload handler |
---|
22 | if ( bp_core_avatar_handle_upload( $_FILES, 'groups_avatar_upload_dir' ) ) { |
---|
23 | |
---|
24 | $bp->avatar_admin->step = 'crop-image'; |
---|
25 | |
---|
26 | // Now we need to crop the image. This will also save the cropped images to the correct group folder. |
---|
27 | if ( !bp_core_avatar_handle_crop( array( 'object' => 'group', 'avatar_dir' => 'group-avatars', 'item_id' => $bp->groups->current_group->id, 'original_file' => $bp->avatar_admin->image->dir) ) ) |
---|
28 | bp_core_add_message( __( 'There was an error saving the group avatar, please try uploading again.', 'buddypress' ), 'error' ); |
---|
29 | else |
---|
30 | bp_core_add_message( __( 'The group avatar was uploaded successfully!', 'buddypress' ) ); |
---|
31 | |
---|
32 | } |
---|
33 | } |
---|
34 | } |
---|
35 | ?> |
---|