/** * 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; }