name = __( 'Parent Group', 'bp-group-hierarchy' ); $this->nav_item_name = __( 'Member Groups', 'bp-group-hierarchy' ); $this->slug = 'hierarchy'; $this->create_step_position = 6; $this->nav_item_position = 61; /** workaround for buddypress bug #2701 */ if(!$bp->is_item_admin && !is_super_admin()) { $this->enable_edit_item = false; } $this->enable_nav_item = $this->enable_nav_item(); } function enable_nav_item() { global $bp; // Only display the nav item if the group has child groups if (BP_Groups_Hierarchy::has_children( $bp->groups->current_group->id )) { return true; } return false; } function create_screen() { global $bp; if(!bp_is_group_creation_step( $this->slug )) { return false; } $this_group = new BP_Groups_Hierarchy( $bp->groups->new_group_id ); $groups = BP_Groups_Group::get_active(); $exclude_groups = array($bp->groups->new_group_id); $display_groups = array(); foreach($groups['groups'] as $group) { if(!in_array($group->id,$exclude_groups)) { $display_groups[] = $group; } } $display_groups = apply_filters( 'bp_group_hierarchy_display_groups', $display_groups ); ?> slug ); } function create_screen_save() { global $bp; check_admin_referer( 'groups_create_save_' . $this->slug ); /** save the selected parent_id */ $parent_id = (int)$_POST['parent_id']; $bp->groups->current_group = new BP_Groups_Hierarchy( $bp->groups->new_group_id ); $bp->groups->current_group->parent_id = $parent_id; $bp->groups->current_group->save(); } function edit_screen() { global $bp; if(!bp_is_group_admin_screen( $this->slug )) { return false; } if( !is_super_admin() ) { ?>

groups->current_group->id ); if(count($exclude_groups['groups']) > 0) { foreach($exclude_groups['groups'] as $key => $exclude_group) { $exclude_groups['groups'][$key] = $exclude_group->id; } $exclude_groups = $exclude_groups['groups']; } else { $exclude_groups = array(); } $exclude_groups[] = $bp->groups->current_group->id; $display_groups = array(); foreach($groups['groups'] as $group) { if(!in_array($group->id,$exclude_groups)) { $display_groups[] = $group; } } $display_groups = apply_filters( 'bp_group_hierarchy_display_groups', $display_groups ); ?> slug ); } function edit_screen_save() { global $bp; if( !isset($_POST['save']) ) { return false; } check_admin_referer( 'groups_edit_save_' . $this->slug ); /** save changed parent_id */ $parent_id = (int)$_POST['parent_id']; $bp->groups->current_group->parent_id = $parent_id; $success = $bp->groups->current_group->save(); if( !$success ) { bp_core_add_message( __( 'There was an error saving; please try again.', 'bp-group-hierarchy' ), 'error' ); } else { bp_core_add_message( __( 'Group parent saved successfully.', 'bp-group-hierarchy' ) ); } bp_core_redirect( bp_get_group_admin_permalink( $bp->groups->current_group ) ); } function display() { global $bp; $subgroups = new BP_Groups_Hierarchy_Template(); $subgroups->params = array( 'type' => 'by_parent', 'parent_id' => $bp->groups->current_group->id ); $subgroups->synchronize(); ?>