BP_Messages_Component::setup_nav( array $main_nav = array(), array $sub_nav = array() )
Set up navigation for user pages.
Description
Parameters
- $main_nav
-
(Optional) See {BP_Component::setup_nav()} for details.
Default value: array()
- $sub_nav
-
(Optional) See {BP_Component::setup_nav()} for details.
Default value: array()
Source
File: bp-messages/classes/class-bp-messages-component.php
public function setup_nav( $main_nav = array(), $sub_nav = array() ) { // Determine user to use. if ( bp_displayed_user_domain() ) { $user_domain = bp_displayed_user_domain(); } elseif ( bp_loggedin_user_domain() ) { $user_domain = bp_loggedin_user_domain(); } else { return; } $access = bp_core_can_edit_settings(); $slug = bp_get_messages_slug(); $messages_link = trailingslashit( $user_domain . $slug ); // Only grab count if we're on a user page and current user has access. if ( bp_is_user() && bp_user_has_access() ) { $count = bp_get_total_unread_messages_count( bp_displayed_user_id() ); $class = ( 0 === $count ) ? 'no-count' : 'count'; $nav_name = sprintf( /* translators: %s: Unread message count for the current user */ __( 'Messages %s', 'buddyboss' ), sprintf( '<span class="%s">%s</span>', esc_attr( $class ), bp_core_number_format( $count ) ) ); } else { $nav_name = __( 'Messages', 'buddyboss' ); } // Add 'Messages' to the main navigation. $main_nav = array( 'name' => $nav_name, 'slug' => $slug, 'position' => 50, 'show_for_displayed_user' => $access, 'screen_function' => 'messages_screen_inbox', 'default_subnav_slug' => 'inbox', 'item_css_id' => $this->id ); // Add the subnav items to the profile. $sub_nav[] = array( 'name' => __( 'Messages', 'buddyboss' ), 'slug' => 'inbox', 'parent_url' => $messages_link, 'parent_slug' => $slug, 'screen_function' => 'messages_screen_inbox', 'position' => 10, 'user_has_access' => $access ); // Show certain screens only if the current user is the displayed user. if ( bp_is_my_profile() ) { // Show "Compose" on the logged-in user's profile only. $sub_nav[] = array( 'name' => __( 'New Message', 'buddyboss' ), 'slug' => 'compose', 'parent_url' => $messages_link, 'parent_slug' => $slug, 'screen_function' => 'messages_screen_compose', 'position' => 30, 'user_has_access' => $access ); /* * Show "Notices" on the logged-in user's profile only * and then only if the user can create notices. */ if ( bp_current_user_can( 'bp_moderate' ) ) { $sub_nav[] = array( 'name' => __( 'Notices', 'buddyboss' ), 'slug' => 'notices', 'parent_url' => $messages_link, 'parent_slug' => $slug, 'screen_function' => 'messages_screen_notices', 'position' => 90, 'user_has_access' => true ); } } parent::setup_nav( $main_nav, $sub_nav ); }
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.