Skip to:
Content

BuddyPress.org

Ticket #5202: set_group_avatar_by_group_id.php

File set_group_avatar_by_group_id.php, 1.7 KB (added by svenl77, 13 years ago)

set_group_avatar_by_group_id

Line 
1<?php
2
3// This is an example function: Set a new Group Avatar from the group id.
4
5function 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?>