BP_Group_Extension::setup_edit_hooks()
Hook this extension’s Edit panel into BuddyPress, if necessary.
Description
Source
File: bp-groups/classes/class-bp-group-extension.php
protected function setup_edit_hooks() {
// Bail if not in a group.
if ( ! bp_is_group() ) {
return;
}
// Bail if not an edit screen.
if ( ! $this->is_screen_enabled( 'edit' ) || ! bp_is_item_admin() ) {
return;
}
$screen = $this->screens['edit'];
$position = isset( $screen['position'] ) ? (int) $screen['position'] : 10;
$position += 40;
$current_group = groups_get_current_group();
$admin_link = trailingslashit( bp_get_group_permalink( $current_group ) . 'admin' );
$subnav_args = array(
'name' => $screen['name'],
'slug' => $screen['slug'],
'parent_slug' => $current_group->slug . '_manage',
'parent_url' => $admin_link,
'user_has_access' => bp_is_item_admin(),
'position' => $position,
'screen_function' => 'groups_screen_group_admin',
);
// Should we add a menu to the Group's WP Admin Bar.
if ( ! empty( $screen['show_in_admin_bar'] ) ) {
$subnav_args['show_in_admin_bar'] = true;
}
// Add the tab to the manage navigation.
bp_core_new_subnav_item( $subnav_args, 'groups' );
// Catch the edit screen and forward it to the plugin template.
if ( bp_is_groups_component() && bp_is_current_action( 'admin' ) && bp_is_action_variable( $screen['slug'], 0 ) ) {
$this->call_edit_screen_save( $this->group_id );
add_action( 'groups_custom_edit_steps', array( &$this, 'call_edit_screen' ) );
// Determine the proper template and save for later
// loading.
if ( '' !== bp_locate_template( array( 'groups/single/home.php' ), false ) ) {
$this->edit_screen_template = '/groups/single/home';
} else {
add_action( 'bp_template_content_header', function() {
echo '<ul class="content-header-nav">';
bp_group_admin_tabs();
echo '</ul>';
} );
add_action( 'bp_template_content', array( &$this, 'call_edit_screen' ) );
$this->edit_screen_template = '/groups/single/plugins';
}
// We load the template at bp_screens, to give all
// extensions a chance to load.
add_action( 'bp_screens', array( $this, 'call_edit_screen_template_loader' ) );
}
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 1.8.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.