nxt_enqueue_script('postbox'); // Container for any messages displayed to the user $messages = array(); // Container that stores the name of the active menu $nav_menu_selected_title = ''; // The menu id of the current menu being edited $nav_menu_selected_id = isset($_REQUEST['menu']) ? (int) $_REQUEST['menu'] : 0; // Allowed actions: add, update, delete $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 'edit'; switch ($action) { case 'add-menu-item': check_admin_referer('add-menu_item', 'menu-settings-column-nonce'); if (isset($_REQUEST['nav-menu-locations'])) { set_theme_mod('nav_menu_locations', array_map('absint', $_REQUEST['menu-locations'])); } elseif (isset($_REQUEST['menu-item'])) { nxt_save_nav_menu_items($nav_menu_selected_id, $_REQUEST['menu-item']); } break; case 'move-down-menu-item': // moving down a menu item is the same as moving up the next in order check_admin_referer('move-menu_item'); $menu_item_id = isset($_REQUEST['menu-item']) ? (int) $_REQUEST['menu-item'] : 0; if (is_nav_menu_item($menu_item_id)) { $menus = isset($_REQUEST['menu']) ? array((int) $_REQUEST['menu']) : nxt_get_object_terms($menu_item_id, 'nav_menu', array('fields' => 'ids')); if (!is_nxt_error($menus) && !empty($menus[0])) { $menu_id = (int) $menus[0]; $ordered_menu_items = nxt_get_nav_menu_items($menu_id); $menu_item_data = (array) nxt_setup_nav_menu_item(get_post($menu_item_id)); // set up the data we need in one pass through the array of menu items $dbids_to_orders = array(); $orders_to_dbids = array();
switch ($menu_item_data['menu-item-type']) { case 'post_type': $_object = get_post($menu_item_data['menu-item-object-id']); break; case 'taxonomy': $_object = get_term($menu_item_data['menu-item-object-id'], $menu_item_data['menu-item-object']); break; } $_menu_items = array_map('nxt_setup_nav_menu_item', array($_object)); $_menu_item = array_shift($_menu_items); // Restore the missing menu item properties $menu_item_data['menu-item-description'] = $_menu_item->description; } $menu_items_data[] = $menu_item_data; } $item_ids = nxt_save_nav_menu_items(0, $menu_items_data); if (is_nxt_error($item_ids)) { die('-1'); } foreach ((array) $item_ids as $menu_item_id) { $menu_obj = get_post($menu_item_id); if (!empty($menu_obj->ID)) { $menu_obj = nxt_setup_nav_menu_item($menu_obj); $menu_obj->label = $menu_obj->title; // don't show "(pending)" in ajax-added items $menu_items[] = $menu_obj; } } if (!empty($menu_items)) { $args = array('after' => '', 'before' => '', 'link_after' => '', 'link_before' => '', 'walker' => new Walker_Nav_Menu_Edit()); echo walk_nav_menu_tree($menu_items, 0, (object) $args);