BP_Nouveau_Customizer_Group_Nav::setup_nav()
Setup a temporary nav with only the needed parameters.
Description Description
Source Source
File: bp-templates/bp-nouveau/includes/groups/classes.php
protected function setup_nav() {
$nav_items = array(
'root' => array(
'name' => __( 'Memberships', 'buddypress' ),
'slug' => $this->group->slug,
'position' => -1,
/** This filter is documented in bp-groups/classes/class-bp-groups-component.php. */
'default_subnav_slug' => apply_filters( 'bp_groups_default_extension', defined( 'BP_GROUPS_DEFAULT_EXTENSION' ) ? BP_GROUPS_DEFAULT_EXTENSION : 'home' ),
),
'home' => array(
'name' => _x( 'Home', 'Group screen navigation title', 'buddypress' ),
'slug' => 'home',
'parent_slug' => $this->group->slug,
'position' => 10,
),
'invites' => array(
'name' => _x( 'Invite', 'My Group screen nav', 'buddypress' ),
'slug' => 'send-invites',
'parent_slug' => $this->group->slug,
'position' => 70,
),
'manage' => array(
'name' => _x( 'Manage', 'My Group screen nav', 'buddypress' ),
'slug' => 'admin',
'parent_slug' => $this->group->slug,
'position' => 1000,
),
);
// Make sure only global front.php will be checked.
add_filter( '_bp_nouveau_group_reset_front_template', array( $this, 'all_groups_fronts' ), 10, 1 );
$front_template = bp_groups_get_front_template( $this->group );
remove_filter( '_bp_nouveau_group_reset_front_template', array( $this, 'all_groups_fronts' ), 10, 1 );
if ( ! $front_template ) {
if ( bp_is_active( 'activity' ) ) {
$nav_items['home']['name'] = _x( 'Home (Activity)', 'Group screen navigation title', 'buddypress' );
} else {
$nav_items['home']['name'] = _x( 'Home (Members)', 'Group screen navigation title', 'buddypress' );
}
} else {
if ( bp_is_active( 'activity' ) ) {
$nav_items['activity'] = array(
'name' => _x( 'Activity', 'My Group screen nav', 'buddypress' ),
'slug' => 'activity',
'parent_slug' => $this->group->slug,
'position' => 11,
);
}
// Add the members one
$nav_items['members'] = array(
'name' => _x( 'Members', 'My Group screen nav', 'buddypress' ),
'slug' => 'members',
'parent_slug' => $this->group->slug,
'position' => 60,
);
}
// Required params
$required_params = array(
'slug' => true,
'name' => true,
'nav_item_position' => true,
);
// Now find nav items plugins are creating within their Group extensions!
foreach ( get_declared_classes() as $class ) {
if ( is_subclass_of( $class, 'BP_Group_Extension' ) ) {
$extension = new $class;
if ( ! empty( $extension->params ) && ! array_diff_key( $required_params, $extension->params ) ) {
$nav_items[ $extension->params['slug'] ] = array(
'name' => $extension->params['name'],
'slug' => $extension->params['slug'],
'parent_slug' => $this->group->slug,
'position' => $extension->params['nav_item_position'],
);
}
}
}
// Now we got all, create the temporary nav.
foreach ( $nav_items as $nav_item ) {
$this->add_nav( $nav_item );
}
}
Changelog Changelog
| Version | Description |
|---|---|
| 3.0.0 | Introduced. |