/**
 * Build and populate the BuddyPress accordion on Appearance > Menus.
 *
 * @since 1.9.0
 *
 * @global $nav_menu_selected_id
 */
function bp_admin_do_wp_nav_menu_meta_box()
{
    global $nav_menu_selected_id;
    $walker = new BP_Walker_Nav_Menu_Checklist(false);
    $args = array('walker' => $walker);
    $post_type_name = 'buddypress';
    $tabs = array();
    $tabs['loggedin']['label'] = __('Logged-In', 'buddypress');
    $tabs['loggedin']['pages'] = bp_nav_menu_get_loggedin_pages();
    $tabs['loggedout']['label'] = __('Logged-Out', 'buddypress');
    $tabs['loggedout']['pages'] = bp_nav_menu_get_loggedout_pages();
    ?>

	<div id="buddypress-menu" class="posttypediv">
		<h4><?php 
    _e('Logged-In', 'buddypress');
    ?>
</h4>
		<p><?php 
    _e('<em>Logged-In</em> links are relative to the current user, and are not visible to visitors who are not logged in.', 'buddypress');
    ?>
</p>

		<div id="tabs-panel-posttype-<?php 
    echo $post_type_name;
    ?>
-loggedin" class="tabs-panel tabs-panel-active">
			<ul id="buddypress-menu-checklist-loggedin" class="categorychecklist form-no-clear">
				<?php 
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $tabs['loggedin']['pages']), 0, (object) $args);
    ?>
			</ul>
		</div>

		<h4><?php 
    _e('Logged-Out', 'buddypress');
    ?>
</h4>
		<p><?php 
    _e('<em>Logged-Out</em> links are not visible to users who are logged in.', 'buddypress');
    ?>
</p>

		<div id="tabs-panel-posttype-<?php 
    echo $post_type_name;
    ?>
-loggedout" class="tabs-panel tabs-panel-active">
			<ul id="buddypress-menu-checklist-loggedout" class="categorychecklist form-no-clear">
				<?php 
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $tabs['loggedout']['pages']), 0, (object) $args);
    ?>
			</ul>
		</div>

		<p class="button-controls">
			<span class="add-to-menu">
				<input type="submit"<?php 
    if (function_exists('wp_nav_menu_disabled_check')) {
        wp_nav_menu_disabled_check($nav_menu_selected_id);
    }
    ?>
 class="button-secondary submit-add-to-menu right" value="<?php 
    esc_attr_e('Add to Menu', 'buddypress');
    ?>
" name="add-custom-menu-item" id="submit-buddypress-menu" />
				<span class="spinner"></span>
			</span>
		</p>
	</div><!-- /#buddypress-menu -->

	<?php 
}
/**
 * Populate BuddyPress user nav items for the customizer
 *
 * @since  2.3.3
 *
 * @param  array   $items  The array of menu items
 * @param  string  $type   The requested type
 * @param  string  $object The requested object name
 * @param  integer $page   The page num being requested
 * @return array           The paginated BuddyPress user nav items.
 */
function bp_customizer_nav_menus_get_items($items = array(), $type = '', $object = '', $page = 0)
{
    if ('bp_loggedin_nav' === $object) {
        $bp_items = bp_nav_menu_get_loggedin_pages();
    } elseif ('bp_loggedout_nav' === $object) {
        $bp_items = bp_nav_menu_get_loggedout_pages();
    } else {
        return $items;
    }
    foreach ($bp_items as $bp_item) {
        $items[] = array('id' => "bp-{$bp_item->post_excerpt}", 'title' => html_entity_decode($bp_item->post_title, ENT_QUOTES, get_bloginfo('charset')), 'type' => $type, 'url' => esc_url_raw($bp_item->guid), 'classes' => "bp-menu bp-{$bp_item->post_excerpt}-nav", 'type_label' => _x('Custom Link', 'customizer menu type label', 'buddypress'), 'object' => $object, 'object_id' => -1);
    }
    return array_slice($items, 10 * $page, 10);
}