/**
 * Adds the Group Admin top-level menu to group pages
 *
 * @package BuddyPress
 * @since 1.5
 *
 * @todo Add dynamic menu items for group extensions
 */
function bp_groups_group_admin_menu()
{
    global $nxt_admin_bar, $bp;
    // Only show if viewing a group
    if (!bp_is_group()) {
        return false;
    }
    // Only show this menu to group admins and super admins
    if (!is_super_admin() && !bp_group_is_admin()) {
        return false;
    }
    if ('3.2' == bp_get_major_nxt_version()) {
        // Group avatar
        $avatar = bp_core_fetch_avatar(array('object' => 'group', 'type' => 'thumb', 'avatar_dir' => 'group-avatars', 'item_id' => $bp->groups->current_group->id, 'width' => 16, 'height' => 16));
        // Unique ID for the 'My Account' menu
        $bp->group_admin_menu_id = !empty($avatar) ? 'group-admin-with-avatar' : 'group-admin';
        // Add the top-level Group Admin button
        $nxt_admin_bar->add_menu(array('id' => $bp->group_admin_menu_id, 'title' => $avatar . bp_get_current_group_name(), 'href' => bp_get_group_permalink($bp->groups->current_group)));
    } elseif ('3.3' == bp_get_major_nxt_version()) {
        // Unique ID for the 'My Account' menu
        $bp->group_admin_menu_id = 'group-admin';
        // Add the top-level Group Admin button
        $nxt_admin_bar->add_menu(array('id' => $bp->group_admin_menu_id, 'title' => __('Edit Group', 'buddypress'), 'href' => bp_get_group_permalink($bp->groups->current_group)));
    }
    // Group Admin > Edit details
    $nxt_admin_bar->add_menu(array('parent' => $bp->group_admin_menu_id, 'id' => 'edit-details', 'title' => __('Edit Details', 'buddypress'), 'href' => bp_get_groups_action_link('admin/edit-details')));
    // Group Admin > Group settings
    $nxt_admin_bar->add_menu(array('parent' => $bp->group_admin_menu_id, 'id' => 'group-settings', 'title' => __('Edit Settings', 'buddypress'), 'href' => bp_get_groups_action_link('admin/group-settings')));
    // Group Admin > Group avatar
    if (!(int) bp_get_option('bp-disable-avatar-uploads')) {
        $nxt_admin_bar->add_menu(array('parent' => $bp->group_admin_menu_id, 'id' => 'group-avatar', 'title' => __('Edit Avatar', 'buddypress'), 'href' => bp_get_groups_action_link('admin/group-avatar')));
    }
    // Group Admin > Manage invitations
    if (bp_is_active('friends')) {
        $nxt_admin_bar->add_menu(array('parent' => $bp->group_admin_menu_id, 'id' => 'manage-invitations', 'title' => __('Manage Invitations', 'buddypress'), 'href' => bp_get_groups_action_link('send-invites')));
    }
    // Group Admin > Manage members
    $nxt_admin_bar->add_menu(array('parent' => $bp->group_admin_menu_id, 'id' => 'manage-members', 'title' => __('Manage Members', 'buddypress'), 'href' => bp_get_groups_action_link('admin/manage-members')));
    // Group Admin > Membership Requests
    if (bp_get_group_status($bp->groups->current_group) == 'private') {
        $nxt_admin_bar->add_menu(array('parent' => $bp->group_admin_menu_id, 'id' => 'membership-requests', 'title' => __('Membership Requests', 'buddypress'), 'href' => bp_get_groups_action_link('admin/membership-requests')));
    }
    // Delete Group
    $nxt_admin_bar->add_menu(array('parent' => $bp->group_admin_menu_id, 'id' => 'delete-group', 'title' => __('Delete Group', 'buddypress'), 'href' => bp_get_groups_action_link('admin/delete-group')));
}
/**
 * Unhook the NXTClass core menus.
 *
 * @since BuddyPress (r4151)
 *
 * @uses remove_action
 * @uses is_network_admin()
 * @uses is_user_admin()
 */
function bp_admin_bar_remove_nxt_menus()
{
    if ('3.2' == bp_get_major_nxt_version()) {
        remove_action('admin_bar_menu', 'nxt_admin_bar_my_account_menu', 10);
        remove_action('admin_bar_menu', 'nxt_admin_bar_my_sites_menu', 20);
        remove_action('admin_bar_menu', 'nxt_admin_bar_dashboard_view_site_menu', 25);
        // Don't show the 'Edit Page' menu on BP pages
        if (!bp_is_blog_page()) {
            remove_action('admin_bar_menu', 'nxt_admin_bar_edit_menu', 30);
        }
        remove_action('admin_bar_menu', 'nxt_admin_bar_shortlink_menu', 80);
        remove_action('admin_bar_menu', 'nxt_admin_bar_updates_menu', 70);
        if (!is_network_admin() && !is_user_admin()) {
            remove_action('admin_bar_menu', 'nxt_admin_bar_comments_menu', 50);
            remove_action('admin_bar_menu', 'nxt_admin_bar_appearance_menu', 60);
        }
        remove_action('admin_bar_menu', 'nxt_admin_bar_updates_menu', 70);
    }
}
/**
 * Build the "Notifications" dropdown
 *
 * @package Buddypress
 * @since 1.5
 */
function bp_members_admin_bar_notifications_menu()
{
    global $bp, $nxt_admin_bar;
    if (!is_user_logged_in()) {
        return false;
    }
    if ($notifications = bp_core_get_notifications_for_user(bp_loggedin_user_id(), 'object')) {
        $menu_title = sprintf(__('Notifications <span id="ab-pending-notifications" class="pending-count">%s</span>', 'buddypress'), count($notifications));
    } else {
        $menu_title = __('Notifications', 'buddypress');
    }
    if ('3.2' == bp_get_major_nxt_version()) {
        // Add the top-level Notifications button
        $nxt_admin_bar->add_menu(array('id' => 'bp-notifications', 'title' => $menu_title, 'href' => bp_loggedin_user_domain()));
    } elseif ('3.3' == bp_get_major_nxt_version()) {
        // Add the top-level Notifications button
        $nxt_admin_bar->add_menu(array('parent' => 'top-secondary', 'id' => 'bp-notifications', 'title' => $menu_title, 'href' => bp_loggedin_user_domain()));
    }
    if (!empty($notifications)) {
        foreach ((array) $notifications as $notification) {
            $nxt_admin_bar->add_menu(array('parent' => 'bp-notifications', 'id' => 'notification-' . $notification->id, 'title' => $notification->content, 'href' => $notification->href));
        }
    } else {
        $nxt_admin_bar->add_menu(array('parent' => 'bp-notifications', 'id' => 'no-notifications', 'title' => __('No new notifications', 'buddypress'), 'href' => bp_loggedin_user_domain()));
    }
    return;
}