BP_Group_Extension::setup_display_hooks()
Hook this extension’s group tab into BuddyPress, if necessary.
Description
Source
File: bp-groups/classes/class-bp-group-extension.php
protected function setup_display_hooks() { // Bail if not a group. if ( ! bp_is_group() ) { return; } // Backward compatibility only. if ( ( 'public' !== $this->visibility ) && ! buddypress()->groups->current_group->user_has_access ) { return; } // If the user can see the nav item, we create it. $user_can_see_nav_item = $this->user_can_see_nav_item(); if ( $user_can_see_nav_item ) { $group_permalink = bp_get_group_permalink( groups_get_current_group() ); bp_core_create_subnav_link( array( 'name' => ! $this->nav_item_name ? $this->name : $this->nav_item_name, 'slug' => $this->slug, 'parent_slug' => bp_get_current_group_slug(), 'parent_url' => $group_permalink, 'position' => $this->nav_item_position, 'item_css_id' => 'nav-' . $this->slug, 'screen_function' => array( &$this, '_display_hook' ), 'user_has_access' => $user_can_see_nav_item, 'no_access_url' => $group_permalink, ), 'groups' ); } // If the user can visit the screen, we register it. $user_can_visit = $this->user_can_visit(); if ( $user_can_visit ) { $group_permalink = bp_get_group_permalink( groups_get_current_group() ); bp_core_register_subnav_screen_function( array( 'slug' => $this->slug, 'parent_slug' => bp_get_current_group_slug(), 'screen_function' => array( &$this, '_display_hook' ), 'user_has_access' => $user_can_visit, 'no_access_url' => $group_permalink, ), 'groups' ); // When we are viewing the extension display page, set the title and options title. if ( bp_is_current_action( $this->slug ) ) { add_filter( 'bp_group_user_has_access', array( $this, 'group_access_protection' ), 10, 2 ); $extension_name = $this->name; add_action( 'bp_template_content_header', function() use ( $extension_name ) { echo esc_attr( $extension_name ); } ); add_action( 'bp_template_title', function() use ( $extension_name ) { echo esc_attr( $extension_name ); } ); } } // Hook the group home widget. if ( bp_is_group_home() ) { add_action( $this->display_hook, array( &$this, 'widget_display' ) ); } }
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.