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