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();
?>
groups as $subgroup) : ?>
status != 'public') continue; ?>
-