function bp_core_add_settings_nav() { global $bp; /* Add the settings navigation item */ bp_core_add_nav_item(__('Settings', 'buddypress'), 'settings', false, false); bp_core_add_nav_default('settings', 'bp_core_screen_general_settings', 'general', false); bp_core_add_subnav_item('settings', 'general', __('General', 'buddypress'), $bp->loggedin_user->domain . 'settings/', 'bp_core_screen_general_settings', false, bp_is_home()); bp_core_add_subnav_item('settings', 'notifications', __('Notifications', 'buddypress'), $bp->loggedin_user->domain . 'settings/', 'bp_core_screen_notification_settings', false, bp_is_home()); bp_core_add_subnav_item('settings', 'delete-account', __('Delete Account', 'buddypress'), $bp->loggedin_user->domain . 'settings/', 'bp_core_screen_delete_account', false, bp_is_home()); }
function friends_setup_nav() { global $bp; /* Add 'Friends' to the main navigation */ bp_core_add_nav_item(__('Friends', 'buddypress'), $bp->friends->slug); bp_core_add_nav_default($bp->friends->slug, 'friends_screen_my_friends', 'my-friends'); $friends_link = $bp->loggedin_user->domain . $bp->friends->slug . '/'; /* Add the subnav items to the friends nav item */ bp_core_add_subnav_item($bp->friends->slug, 'my-friends', __('My Friends', 'buddypress'), $friends_link, 'friends_screen_my_friends', 'friends-my-friends'); bp_core_add_subnav_item($bp->friends->slug, 'requests', __('Requests', 'buddypress'), $friends_link, 'friends_screen_requests', false, bp_is_home()); if ($bp->current_component == $bp->friends->slug) { if (bp_is_home()) { $bp->bp_options_title = __('My Friends', 'buddypress'); } else { $bp->bp_options_avatar = bp_core_get_avatar($bp->displayed_user->id, 1); $bp->bp_options_title = $bp->displayed_user->fullname; } } }
function messages_setup_nav() { global $bp; if ($bp->current_component == $bp->messages->slug) { $inbox_count = messages_get_unread_count(); $inbox_display = $inbox_count ? ' style="display:inline;"' : ' style="display:none;"'; $count_indicator = ' <span' . $inbox_display . ' class="unread-count inbox-count">' . $inbox_count . '</span>'; } /* Add 'Profile' to the main navigation */ bp_core_add_nav_item(__('Messages', 'buddypress'), $bp->messages->slug, false, false); bp_core_add_nav_default($bp->messages->slug, 'messages_screen_inbox', 'inbox', bp_is_home()); $messages_link = $bp->loggedin_user->domain . $bp->messages->slug . '/'; /* Add the subnav items to the profile */ bp_core_add_subnav_item($bp->messages->slug, 'inbox', __('Inbox', 'buddypress') . $count_indicator, $messages_link, 'messages_screen_inbox', false, bp_is_home()); bp_core_add_subnav_item($bp->messages->slug, 'sentbox', __('Sent Messages', 'buddypress'), $messages_link, 'messages_screen_sentbox', false, bp_is_home()); bp_core_add_subnav_item($bp->messages->slug, 'compose', __('Compose', 'buddypress'), $messages_link, 'messages_screen_compose', false, bp_is_home()); bp_core_add_subnav_item($bp->messages->slug, 'notices', __('Notices', 'buddypress'), $messages_link, 'messages_screen_notices', false, true, true); if ($bp->current_component == $bp->messages->slug) { if (bp_is_home()) { $bp->bp_options_title = __('My Messages', 'buddypress'); } else { $bp_options_avatar = bp_core_get_avatar($bp->displayed_user->id, 1); $bp->bp_options_title = $bp->displayed_user->fullname; } } }
/** * xprofile_setup_nav() * * Sets up the navigation items for the xprofile component * * @package BuddyPress XProfile * @global $bp The global BuddyPress settings variable created in bp_core_setup_globals() * @uses bp_core_add_nav_item() Adds a navigation item to the top level buddypress navigation * @uses bp_core_add_nav_default() Sets which sub navigation item is selected by default * @uses bp_core_add_subnav_item() Adds a sub navigation item to a nav item * @uses bp_is_home() Returns true if the current user being viewed is equal the logged in user * @uses bp_core_get_avatar() Returns the either the thumb (1) or full (2) avatar URL for the user_id passed */ function xprofile_setup_nav() { global $bp; /* Add 'Profile' to the main navigation */ bp_core_add_nav_item(__('Profile', 'buddypress'), $bp->profile->slug); bp_core_add_nav_default($bp->profile->slug, 'xprofile_screen_display_profile', 'public'); $profile_link = $bp->loggedin_user->domain . $bp->profile->slug . '/'; /* Add the subnav items to the profile */ bp_core_add_subnav_item($bp->profile->slug, 'public', __('Public', 'buddypress'), $profile_link, 'xprofile_screen_display_profile'); bp_core_add_subnav_item($bp->profile->slug, 'edit', __('Edit Profile', 'buddypress'), $profile_link, 'xprofile_screen_edit_profile'); bp_core_add_subnav_item($bp->profile->slug, 'change-avatar', __('Change Avatar', 'buddypress'), $profile_link, 'xprofile_screen_change_avatar'); if ($bp->current_component == $bp->profile->slug) { if (bp_is_home()) { $bp->bp_options_title = __('My Profile', 'buddypress'); } else { $bp->bp_options_avatar = bp_core_get_avatar($bp->displayed_user->id, 1); $bp->bp_options_title = $bp->displayed_user->fullname; } } }
/** * bp_zoneideas_setup_nav() * * Sets up the navigation items for the component. This adds the top level nav * item and all the sub level nav items to the navigation array. This is then * rendered in the template. */ function bp_zoneideas_setup_nav() { global $bp; /* Add 'zoneideas' to the main navigation */ bp_core_add_nav_item(__('Ideas', 'bp-zoneideas'), $bp->zoneideas->slug); /* Set a specific sub nav item as the default when the top level item is clicked */ bp_core_add_nav_default($bp->zoneideas->slug, 'bp_zoneideas_summary', 'summary'); $zoneideas_link = $bp->loggedin_user->domain . $bp->zoneideas->slug . '/'; bp_core_add_subnav_item($bp->zoneideas->slug, 'summary', __('Summary', 'bp-zoneideas'), $zoneideas_link, 'bp_zoneideas_summary'); bp_core_add_subnav_item($bp->zoneideas->slug, 'last', __('Last', 'bp-zoneideas'), $zoneideas_link, 'bp_zoneideas_last_ideas'); bp_core_add_subnav_item($bp->zoneideas->slug, 'top', __('Top', 'bp-zoneideas'), $zoneideas_link, 'bp_zoneideas_top_ideas'); bp_core_add_subnav_item($bp->zoneideas->slug, 'active', __('Active', 'bp-zoneideas'), $zoneideas_link, 'bp_zoneideas_active_ideas'); bp_core_add_subnav_item($bp->zoneideas->slug, 'new', __('New Idea', 'bp-zoneideas'), $zoneideas_link, 'bp_zoneideas_new_idea', false, bp_is_home()); /* Add a nav item for this component under the settings nav item. See bp_zoneideas_screen_settings_menu() for more info */ bp_core_add_subnav_item('settings', 'zoneideas-admin', __('zoneideas', 'bp-zoneideas'), $bp->loggedin_user->domain . 'settings/', 'bp_zoneideas_screen_settings_menu', false, bp_is_home()); /* Only execute the following code if we are actually viewing this component (e.g. http://example.org/example) */ if ($bp->current_component == $bp->zoneideas->slug) { if (bp_is_home()) { /* If the user is viewing their own profile area set the title to "My Example" */ $bp->bp_options_title = __('My Ideas', 'bp-zoneideas'); } else { /* If the user is viewing someone elses profile area, set the title to "[user fullname]" */ $bp->bp_options_avatar = bp_core_get_avatar($bp->displayed_user->id, 1); $bp->bp_options_title = $bp->displayed_user->fullname; } } }
function groups_setup_nav() { global $bp, $current_blog; global $group_obj; if ($group_id = BP_Groups_Group::group_exists($bp->current_action)) { /* This is a single group page. */ $bp->is_single_item = true; $group_obj = new BP_Groups_Group($group_id); /* Using "item" not "group" for generic support in other components. */ if (is_site_admin()) { $bp->is_item_admin = 1; } else { $bp->is_item_admin = groups_is_user_admin($bp->loggedin_user->id, $group_obj->id); } /* If the user is not an admin, check if they are a moderator */ if (!$bp->is_item_admin) { $bp->is_item_mod = groups_is_user_mod($bp->loggedin_user->id, $group_obj->id); } /* Is the logged in user a member of the group? */ $is_member = groups_is_user_member($bp->loggedin_user->id, $group_obj->id) ? true : false; /* Should this group be visible to the logged in user? */ $is_visible = 'public' == $group_obj->status || $is_member ? true : false; } /* Add 'Groups' to the main navigation */ bp_core_add_nav_item(__('Groups', 'buddypress'), $bp->groups->slug); if ($bp->displayed_user->id) { bp_core_add_nav_default($bp->groups->slug, 'groups_screen_my_groups', 'my-groups'); } $groups_link = $bp->loggedin_user->domain . $bp->groups->slug . '/'; /* Add the subnav items to the groups nav item */ bp_core_add_subnav_item($bp->groups->slug, 'my-groups', __('My Groups', 'buddypress'), $groups_link, 'groups_screen_my_groups', 'my-groups-list'); bp_core_add_subnav_item($bp->groups->slug, 'create', __('Create a Group', 'buddypress'), $groups_link, 'groups_screen_create_group', false, bp_is_home()); bp_core_add_subnav_item($bp->groups->slug, 'invites', __('Invites', 'buddypress'), $groups_link, 'groups_screen_group_invites', false, bp_is_home()); if ($bp->current_component == $bp->groups->slug) { if (bp_is_home() && !$bp->is_single_item) { $bp->bp_options_title = __('My Groups', 'buddypress'); } else { if (!bp_is_home() && !$bp->is_single_item) { $bp->bp_options_avatar = bp_core_get_avatar($bp->displayed_user->id, 1); $bp->bp_options_title = $bp->displayed_user->fullname; } else { if ($bp->is_single_item) { // We are viewing a single group, so set up the // group navigation menu using the $group_obj global. /* When in a single group, the first action is bumped down one because of the group name, so we need to adjust this and set the group name to current_item. */ $bp->current_item = $bp->current_action; $bp->current_action = $bp->action_variables[0]; array_shift($bp->action_variables); $bp->bp_options_title = $group_obj->name; $bp->bp_options_avatar = '<img src="' . $group_obj->avatar_thumb . '" alt="Group Avatar Thumbnail" />'; $group_link = $bp->root_domain . '/' . $bp->groups->slug . '/' . $group_obj->slug . '/'; // If this is a private or hidden group, does the user have access? if ('private' == $group_obj->status || 'hidden' == $group_obj->status) { if (groups_is_user_member($bp->loggedin_user->id, $group_obj->id) && is_user_logged_in()) { $has_access = true; } else { $has_access = false; } } else { $has_access = true; } // Reset the existing subnav items bp_core_reset_subnav_items($bp->groups->slug); bp_core_add_nav_default($bp->groups->slug, 'groups_screen_group_home', 'home'); bp_core_add_subnav_item($bp->groups->slug, 'home', __('Home', 'buddypress'), $group_link, 'groups_screen_group_home', 'group-home'); // If the user is a group mod or more, then show the group admin nav item */ if ($bp->is_item_mod || $bp->is_item_admin) { bp_core_add_subnav_item($bp->groups->slug, 'admin', __('Admin', 'buddypress'), $group_link, 'groups_screen_group_admin', 'group-admin', $bp->is_item_admin + (int) $bp->is_item_mod); } // If this is a private group, and the user is not a member, show a "Request Membership" nav item. if (!$has_access && !groups_check_for_membership_request($bp->loggedin_user->id, $group_obj->id) && $group_obj->status == 'private') { bp_core_add_subnav_item($bp->groups->slug, 'request-membership', __('Request Membership', 'buddypress'), $group_link, 'groups_screen_group_request_membership', 'request-membership'); } if ($has_access && $group_obj->enable_forum && function_exists('bp_forums_setup')) { bp_core_add_subnav_item($bp->groups->slug, 'forum', __('Forum', 'buddypress'), $group_link, 'groups_screen_group_forum', 'group-forum', $is_visible); } if ($has_access && $group_obj->enable_wire && function_exists('bp_wire_install')) { bp_core_add_subnav_item($bp->groups->slug, 'wire', __('Wire', 'buddypress'), $group_link, 'groups_screen_group_wire', 'group-wire', $is_visible); } if ($has_access && $group_obj->enable_photos && function_exists('bp_gallery_install')) { bp_core_add_subnav_item($bp->groups->slug, 'photos', __('Photos', 'buddypress'), $group_link, 'groups_screen_group_photos', 'group-photos', $is_visible); } if ($has_access) { bp_core_add_subnav_item($bp->groups->slug, 'members', __('Members', 'buddypress'), $group_link, 'groups_screen_group_members', 'group-members', $is_visible); } if (is_user_logged_in() && groups_is_user_member($bp->loggedin_user->id, $group_obj->id)) { if (function_exists('friends_install')) { bp_core_add_subnav_item($bp->groups->slug, 'send-invites', __('Send Invites', 'buddypress'), $group_link, 'groups_screen_group_invite', 'group-invite', $is_member); } bp_core_add_subnav_item($bp->groups->slug, 'leave-group', __('Leave Group', 'buddypress'), $group_link, 'groups_screen_group_leave', 'group-leave', $is_member); } } } } } }
/** * bp_core_setup_nav() * * Sets up the profile navigation item if the Xprofile component is not installed. * * @package BuddyPress Core * @global $bp The global BuddyPress settings variable created in bp_core_setup_globals() * @uses bp_core_add_nav_item() Adds a navigation item to the top level buddypress navigation * @uses bp_core_add_nav_default() Sets which sub navigation item is selected by default * @uses bp_core_add_subnav_item() Adds a sub navigation item to a nav item * @uses bp_is_home() Returns true if the current user being viewed is equal the logged in user * @uses bp_core_get_avatar() Returns the either the thumb (1) or full (2) avatar URL for the user_id passed */ function bp_core_setup_nav() { global $bp; if (!function_exists('xprofile_install')) { /* Add 'Profile' to the main navigation */ bp_core_add_nav_item(__('Perfil', 'buddypress'), 'profile'); bp_core_add_nav_default('profile', 'bp_core_catch_profile_uri', 'public'); $profile_link = $bp->loggedin_user->domain . '/profile/'; /* Add the subnav items to the profile */ bp_core_add_subnav_item('profile', 'public', __('Public', 'buddypress'), $profile_link, 'xprofile_screen_display_profile'); if ('profile' == $bp->current_component) { if (bp_is_home()) { $bp->bp_options_title = __('Mi Perfil', 'buddypress'); } else { $bp->bp_options_avatar = bp_core_get_avatar($bp->displayed_user->id, 1); $bp->bp_options_title = $bp->displayed_user->fullname; } } } }
/** * bp_blogs_setup_nav() * * Adds "Blog" to the navigation arrays for the current and logged in user. * * @package BuddyPress Blogs * @global $bp The global BuddyPress settings variable created in bp_core_setup_globals() * @uses bp_is_home() Checks to see if the current user being viewed is the logged in user */ function bp_blogs_setup_nav() { global $bp; /* Add 'Blogs' to the main navigation */ bp_core_add_nav_item(__('Blogs', 'buddypress'), $bp->blogs->slug); if ($bp->displayed_user->id) { bp_core_add_nav_default($bp->blogs->slug, 'bp_blogs_screen_my_blogs', 'my-blogs'); } $blogs_link = $bp->loggedin_user->domain . $bp->blogs->slug . '/'; /* Add the subnav items to the blogs nav item */ bp_core_add_subnav_item($bp->blogs->slug, 'my-blogs', __('My Blogs', 'buddypress'), $blogs_link, 'bp_blogs_screen_my_blogs', 'my-blogs-list'); bp_core_add_subnav_item($bp->blogs->slug, 'recent-posts', __('Recent Posts', 'buddypress'), $blogs_link, 'bp_blogs_screen_recent_posts'); bp_core_add_subnav_item($bp->blogs->slug, 'recent-comments', __('Recent Comments', 'buddypress'), $blogs_link, 'bp_blogs_screen_recent_comments'); bp_core_add_subnav_item($bp->blogs->slug, 'create-a-blog', __('Create a Blog', 'buddypress'), $blogs_link, 'bp_blogs_screen_create_a_blog'); /* Set up the component options navigation for Blog */ if ('blogs' == $bp->current_component) { if (bp_is_home()) { if (function_exists('xprofile_setup_nav')) { $bp->bp_options_title = __('My Blogs', 'buddypress'); } } else { /* If we are not viewing the logged in user, set up the current users avatar and name */ $bp->bp_options_avatar = bp_core_get_avatar($bp->displayed_user->id, 1); $bp->bp_options_title = $bp->displayed_user->fullname; } } }