it-swarm.com.de

Was ist der einfachste Weg, um die Standard-Landingpage für BuddyPress-Gruppen zu ändern?

Ich möchte, dass die Standardansicht für Gruppen die Forum-Komponente anstelle der Aktivitätskomponente ist. Was ist der beste/einfachste Weg, um die Standard-Landing-Komponente/Seite zu ändern?

3
ZaMoose

[Bearbeiten - Meine ursprüngliche Antwort funktioniert nur im kommenden BP 1.6]

Versionen von BuddyPress ab 1.6

function bbg_change_group_default_extension( $default ) {
    return 'forum';
}
add_filter( 'bp_groups_default_extension', 'bbg_change_group_default_extension' );

Versionen von BuddyPress vor 1.6

Im Moment müssen Sie so etwas wie das Folgende verwenden, das eine modifizierte Version von bp_core_new_nav_default () ist (eine Funktion, die im Falle von Gruppen aufgrund verschiedener slug-bezogener Dinge nicht funktioniert):

function bbg_set_new_group_default_subnav() {
    global $bp;

    if ( bp_is_group() ) {
        // Set up your new default
        $new_screen_function = 'groups_screen_group_forum';
        $new_default_slug = 'forum';

        $parent_slug = bp_get_current_group_slug();

        if ( $function = $bp->bp_nav[$parent_slug]['screen_function'] ) {
            if ( !is_object( $function[0] ) )
                remove_action( 'bp_screens', $function, 3 );
                    else
                remove_action( 'bp_screens', array( &$function[0], $function[1] ), 3 );
        }

        $bp->bp_nav[$parent_slug]['screen_function'] = &$new_screen_function;

        if ( bp_is_groups_component() && !bp_current_action() ) {
            if ( !is_object( $new_screen_function[0] ) ) {
                add_action( 'bp_screens', $new_screen_function );

            } else {
                add_action( 'bp_screens', array( &$new_screen_function[0], $new_screen_function[1] ) );
            }

            $bp->current_action = $new_default_slug;
       }
    }
}
add_action( 'bp_setup_nav', 'bbg_set_new_group_default_subnav', 999 );

function bbg_set_new_group_default_action() {
    global $bp;

    if ( bp_is_group() && !bp_current_action() ) {
        $bp->current_action = 'forum';
    }
}
add_action( 'bp_setup_globals', 'bbg_set_new_group_default_action', 999 );
4
Boone Gorges