/** * @group bp_core_sort_nav_items */ public function test_bp_core_sort_nav_items() { $bp_nav = buddypress()->bp_nav; $u = $this->factory->user->create(); $old_current_user = get_current_user_id(); $this->set_current_user($u); $this->go_to(bp_core_get_user_domain($u)); bp_core_new_nav_item(array('name' => 'Foo', 'slug' => 'foo', 'position' => 25, 'screen_function' => 'foo_screen_function', 'default_subnav_slug' => 'foo-sub')); $expected = array('name' => 'Foo', 'slug' => 'foo', 'link' => trailingslashit(bp_core_get_user_domain($u) . 'foo'), 'css_id' => 'foo', 'show_for_displayed_user' => true, 'position' => 25, 'screen_function' => 'foo_screen_function', 'default_subnav_slug' => 'foo-sub'); bp_core_sort_nav_items(); $this->assertSame(buddypress()->bp_nav[25], $expected); // Clean up buddypress()->bp_nav = $bp_nav; $this->set_current_user($old_current_user); }
function bp_adminbar_account_menu() { global $bp; if (!$bp->bp_nav) { return false; } /* Sort the nav by key as the array has been put together in different locations */ $bp->bp_nav = bp_core_sort_nav_items($bp->bp_nav); if (is_user_logged_in()) { echo '<li id="bp-adminbar-account-menu"><a href="">'; echo __('Mi cuenta', 'buddypress') . '</a>'; echo '<ul>'; /* Loop through each navigation item */ $counter = 0; foreach ($bp->bp_nav as $nav_item) { $alt = 0 == $counter % 2 ? ' class="alt"' : ''; echo '<li' . $alt . '>'; echo '<a id="bp-admin-' . $nav_item['css_id'] . '" href="' . $nav_item['link'] . '">' . $nav_item['name'] . '</a>'; if (is_array($bp->bp_options_nav[$nav_item['css_id']])) { echo '<ul>'; $sub_counter = 0; foreach ($bp->bp_options_nav[$nav_item['css_id']] as $subnav_item) { $alt = 0 == $sub_counter % 2 ? ' class="alt"' : ''; echo '<li' . $alt . '><a id="bp-admin-' . $subnav_item['css_id'] . '" href="' . $subnav_item['link'] . '">' . $subnav_item['name'] . '</a></li>'; $sub_counter++; } echo '</ul>'; } echo '</li>'; $counter++; } $alt = 0 == $counter % 2 ? ' class="alt"' : ''; if (function_exists('wp_logout_url')) { echo '<li' . $alt . '><a id="bp-admin-logout" href="' . wp_logout_url(site_url()) . '">' . __('Irse', 'buddypress') . '</a></li>'; } else { echo '<li' . $alt . '><a id="bp-admin-logout" href="' . site_url() . '/wp-login.php?action=logout&redirect_to=' . site_url() . '">' . __('Irse', 'buddypress') . '</a></li>'; } echo '</ul>'; echo '</li>'; } }
/** * bp_get_user_nav() * TEMPLATE TAG * * Uses the $bp->bp_users_nav global to render out the user navigation when viewing another user other than * yourself. * * @package BuddyPress Core * @global $bp The global BuddyPress settings variable created in bp_core_setup_globals() */ function bp_get_user_nav() { global $bp; /* Sort the nav by key as the array has been put together in different locations */ $bp->bp_users_nav = bp_core_sort_nav_items($bp->bp_users_nav); foreach ($bp->bp_users_nav as $user_nav_item) { if ($bp->current_component == $user_nav_item['css_id']) { $selected = ' class="current"'; } else { $selected = ''; } echo '<li' . $selected . '><a id="user-' . $user_nav_item['css_id'] . '" href="' . $user_nav_item['link'] . '">' . $user_nav_item['name'] . '</a></li>'; } }