Changeset 14248 for trunk/wp-admin/nav-menus.php
- Timestamp:
- 04/27/2010 01:05:58 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/nav-menus.php
r14139 r14248 11 11 12 12 /** Load WordPress Administration Bootstrap */ 13 require_once( ' ./admin.php' );13 require_once( 'admin.php' ); 14 14 15 15 // Load all the nav menu interface functions … … 38 38 wp_enqueue_script( 'postbox' ); 39 39 40 // Thickbox41 add_thickbox();42 43 40 // Container for any messages displayed to the user 44 41 $messages_div = ''; … … 54 51 55 52 switch ( $action ) { 53 case 'add-menu-item': 54 if ( current_user_can( 'switch_themes' ) ) { 55 check_admin_referer( 'add-menu_item', 'menu-settings-column-nonce' ); 56 if ( isset( $_REQUEST['menu-item'] ) ) { 57 wp_save_nav_menu_item( $nav_menu_selected_id, $_REQUEST['menu-item'] ); 58 } 59 } 60 break; 61 case 'move-down-menu-item' : 62 // moving down a menu item is the same as moving up the next in order 63 check_admin_referer( 'move-menu_item' ); 64 $menu_item_id = (int) $_REQUEST['menu-item']; 65 $next_item_id = 0; 66 if ( 'nav_menu_item' == get_post_type( $menu_item_id ) ) { 67 $menus = isset( $_REQUEST['menu'] ) ? array( (int) $_REQUEST['menu'] ) : wp_get_object_terms( $menu_item_id, 'nav_menu', array( 'fields' => 'ids' ) ); 68 if ( ! is_wp_error( $menus ) ) { 69 foreach( (array) $menus as $menu_id ) { 70 $move_down_ordered_menu_items = (array) wp_get_nav_menu_items( $menu_id ); 71 while ( $next = array_shift( $move_down_ordered_menu_items ) ) { 72 if ( isset( $next->ID ) && $next->ID == $menu_item_id ) { 73 break; 74 } 75 } 76 77 if ( $following = array_shift( $move_down_ordered_menu_items ) ) { 78 $next_item_id = (int) $following->ID; 79 } 80 } 81 } 82 } 83 // fall through to next case 84 case 'move-up-menu-item' : 85 check_admin_referer( 'move-menu_item' ); 86 $menu_item_id = empty( $next_item_id ) ? (int) $_REQUEST['menu-item'] : $next_item_id; 87 if ( 'nav_menu_item' == get_post_type( $menu_item_id ) ) { 88 $menus = isset( $_REQUEST['menu'] ) ? array( (int) $_REQUEST['menu'] ) : wp_get_object_terms( $menu_item_id, 'nav_menu', array( 'fields' => 'ids' ) ); 89 if ( ! is_wp_error( $menus ) ) { 90 foreach( (array) $menus as $menu_id ) { 91 $ordered_menu_items = wp_get_nav_menu_items( $menu_id ); 92 $menu_item_data = get_post( $menu_item_id , ARRAY_A ); 93 94 // setup the data we need in one pass through the array of menu items 95 $dbids_to_orders = array(); 96 $orders_to_dbids = array(); 97 $objectids_to_dbids = array(); 98 $dbids_to_objectids = array(); 99 foreach( (array) $ordered_menu_items as $ordered_menu_item_object ) { 100 if ( isset( $ordered_menu_item_object->ID ) ) { 101 if ( isset( $ordered_menu_item_object->menu_order ) ) { 102 $dbids_to_orders[$ordered_menu_item_object->ID] = $ordered_menu_item_object->menu_order; 103 $orders_to_dbids[$ordered_menu_item_object->menu_order] = $ordered_menu_item_object->ID; 104 } 105 106 $possible_object_id = (int) get_post_meta( $ordered_menu_item_object->ID, '_menu_item_object_id', true ); 107 if ( ! empty( $possible_object_id ) ) { 108 $dbids_to_objectids[$ordered_menu_item_object->ID] = $possible_object_id; 109 $objectids_to_dbids[$possible_object_id] = $ordered_menu_item_object->ID; 110 } 111 } 112 } 113 114 115 // if this menu item is not first 116 if ( ! empty( $dbids_to_orders[$menu_item_id] ) && ! empty( $orders_to_dbids[$dbids_to_orders[$menu_item_id] - 1] ) ) { 117 118 // if this menu item is a child of the previous 119 if ( 120 ! empty( $menu_item_data['post_parent'] ) && 121 isset( $objectids_to_dbids[$menu_item_data['post_parent']] ) && 122 isset( $orders_to_dbids[$dbids_to_orders[$menu_item_id] - 1] ) && 123 ( $objectids_to_dbids[$menu_item_data['post_parent']] == $orders_to_dbids[$dbids_to_orders[$menu_item_id] - 1] ) 124 ) { 125 126 $parent_db_id = $objectids_to_dbids[$menu_item_data['post_parent']]; 127 $parent_data = get_post( $parent_db_id, ARRAY_A ); 128 129 if ( ! is_wp_error( $parent_data ) ) { 130 131 // if there is something before the parent, make menu item a child of the parent's parent 132 if ( ! empty( $dbids_to_orders[$parent_db_id] ) && ! empty( $orders_to_dbids[$dbids_to_orders[$parent_db_id] - 1] ) ) { 133 $menu_item_data['post_parent'] = $parent_data['post_parent']; 134 135 // else there isn't something before the parent 136 } else { 137 $menu_item_data['post_parent'] = 0; 138 } 139 140 // set former parent's [menu_order] to that of menu-item's 141 $parent_data['menu_order'] = $parent_data['menu_order'] + 1; 142 143 // set menu-item's [menu_order] to that of former parent 144 $menu_item_data['menu_order'] = $menu_item_data['menu_order'] - 1; 145 146 // save changes 147 wp_update_post($menu_item_data); 148 wp_update_post($parent_data); 149 } 150 151 // else this menu item is not a child of the previous 152 } elseif ( isset($dbids_to_objectids[$orders_to_dbids[$dbids_to_orders[$menu_item_id] - 1]] ) ) { 153 // just make it a child of the previous; keep the order 154 $menu_item_data['post_parent'] = (int) $dbids_to_objectids[$orders_to_dbids[$dbids_to_orders[$menu_item_id] - 1]]; 155 wp_update_post($menu_item_data); 156 } 157 } 158 } 159 } 160 } 161 break; 162 163 case 'delete-menu-item': 164 $menu_item_id = (int) $_REQUEST['menu-item']; 165 166 check_admin_referer( 'delete-menu_item_' . $menu_item_id ); 167 168 169 if ( 'nav_menu_item' == get_post_type( $menu_item_id ) ) { 170 if ( wp_delete_post( $menu_item_id, true ) ) { 171 172 $messages_div = '<div id="message" class="updated"><p>' . __('The menu item has been successfully deleted.') . '</p></div>'; 173 } 174 } 175 break; 56 176 case 'delete': 57 177 check_admin_referer( 'delete-nav_menu-' . $nav_menu_selected_id ); 58 178 59 if ( is_nav_menu( $nav_menu_selected_id) ) {179 if ( is_nav_menu( $nav_menu_selected_id ) ) { 60 180 $delete_nav_menu = wp_delete_nav_menu( $nav_menu_selected_id ); 61 181 … … 71 191 72 192 case 'update': 73 check_admin_referer( 'update-nav_menu' );193 check_admin_referer( 'update-nav_menu', 'update-nav-menu-nonce' ); 74 194 75 195 // Add Menu 76 if ( isset($_POST['create-menu-button'])) {196 if ( 0 == $nav_menu_selected_id ) { 77 197 if ( current_theme_supports('nav-menus') || current_theme_supports('widgets') ) { 78 $ add_nav_menu = esc_html( $_POST['create-menu-name'] );79 80 if ( $ add_nav_menu) {81 $ add_nav_menu = wp_create_nav_menu( $add_nav_menu);82 83 if ( is_wp_error( $ add_nav_menu) ) {84 $messages_div = '<div id="message" class="error"><p>' . $ add_nav_menu->get_error_message() . '</p></div>';198 $new_menu_title = esc_html( $_POST['menu-name'] ); 199 200 if ( $new_menu_title ) { 201 $_nav_menu_selected_id = wp_update_nav_menu_object( 0, array('menu-name' => $new_menu_title) ); 202 203 if ( is_wp_error( $_nav_menu_selected_id ) ) { 204 $messages_div = '<div id="message" class="error"><p>' . $_nav_menu_selected_id->get_error_message() . '</p></div>'; 85 205 } else { 86 $nav_menu_selected_id = $add_nav_menu->term_id; 87 $nav_menu_selected_title = $add_nav_menu->name; 88 $messages_div = '<div id="message" class="updated"><p>' . sprintf( __('The <strong>%s</strong> menu has been successfully created.'), $add_nav_menu->name ) . '</p></div>'; 206 $_menu_object = wp_get_nav_menu_object( $_nav_menu_selected_id ); 207 $nav_menu_selected_id = $_nav_menu_selected_id; 208 $nav_menu_selected_title = $_menu_object->name; 209 $messages_div = '<div id="message" class="updated"><p>' . sprintf( __('The <strong>%s</strong> menu has been successfully created.'), $nav_menu_selected_title ) . '</p></div>'; 89 210 } 90 211 } else { 91 212 $messages_div = '<div id="message" class="error"><p>' . __('Please enter a valid menu name.') . '</p></div>'; 92 213 } 93 unset( $add_nav_menu ); 94 } 214 } 215 216 // update existing menu 95 217 } else { 96 218 97 // @todo wrap this into wp_update_nav_menu_object();98 if ( isset($_POST['menu-name']) ) { 99 $old_nav_menu = get_term( $nav_menu_selected_id, 'nav_menu', ARRAY_A );100 $args = array( 'name' => $_POST['menu-name'], 'slug' => null, 'description' => $old_nav_menu['description'], 'parent' => $old_nav_menu['parent'],);101 $n ew_nav_menu = wp_update_term( $nav_menu_selected_id, 'nav_menu', $args );219 $_menu_object = wp_get_nav_menu_object( $nav_menu_selected_id ); 220 221 if ( ! is_wp_error( $_menu_object ) ) { 222 wp_update_nav_menu_object( $nav_menu_selected_id, array( 'menu-name' => $_POST['menu-name'] ) ); 223 $nav_menu_selected_title = $_menu_object->name; 102 224 } 103 225 104 226 // Update menu items 105 227 106 // @todo: wrap update logic into wp_update_nav_menu(); 107 $update_count = isset( $_POST['li-count'] ) ? (int) $_POST['li-count'] : 0; 108 $update_nav_menu = is_nav_menu( $nav_menu_selected_id ); 109 110 if ( !is_wp_error($update_nav_menu) ) { 228 if ( ! is_wp_error( $_menu_object ) ) { 111 229 $menu_items = wp_get_nav_menu_items( $nav_menu_selected_id, array('orderby' => 'ID', 'output' => ARRAY_A, 'output_key' => 'ID') ); 112 230 113 // Loop through all POST variables114 for ( $k = 0; $k < $update_count; $k++) {231 // Loop through all the menu items' POST variables 232 foreach( (array) $_POST['menu-item-db-id'] as $_key => $k ) { 115 233 116 234 // Menu item title can't be blank 117 if ( '' == $_POST['menu-item-title'][$ k] )235 if ( '' == $_POST['menu-item-title'][$_key] ) 118 236 continue; 119 120 $menu_item_db_id = isset( $_POST['menu-item-db-id'][$k] ) ? $_POST['menu-item-db-id'][$k] : 0; 121 $menu_item_object_id = isset( $_POST['menu-item-object-id'][$k] ) ? $_POST['menu-item-object-id'][$k] : 0; 122 $menu_item_object = isset( $_POST['menu-item-object'][$k] ) ? $_POST['menu-item-object'][$k] : ''; 123 $menu_item_parent_id = isset( $_POST['menu-item-parent-id'][$k] ) ? $_POST['menu-item-parent-id'][$k] : 0; 124 $menu_item_position = isset( $_POST['menu-item-position'][$k] ) ? $_POST['menu-item-position'][$k] : 0; 125 $menu_item_type = isset( $_POST['menu-item-type'][$k] ) ? $_POST['menu-item-type'][$k] : 'custom'; 126 $menu_item_append = isset( $_POST['menu-item-append'][$k] ) ? $_POST['menu-item-append'][$k] : 'custom'; 127 $menu_item_title = isset( $_POST['menu-item-title'][$k] ) ? $_POST['menu-item-title'][$k] : ''; 128 $menu_item_url = isset( $_POST['menu-item-url'][$k] ) ? $_POST['menu-item-url'][$k] : ''; 129 $menu_item_description = isset( $_POST['menu-item-description'][$k] ) ? $_POST['menu-item-description'][$k] : ''; 130 $menu_item_attr_title = isset( $_POST['menu-item-attr-title'][$k] ) ? $_POST['menu-item-attr-title'][$k] : ''; 131 $menu_item_target = isset( $_POST['menu-item-target'][$k] ) ? $_POST['menu-item-target'][$k] : ''; 132 $menu_item_classes = isset( $_POST['menu-item-classes'][$k] ) ? $_POST['menu-item-classes'][$k] : ''; 133 $menu_item_xfn = isset( $_POST['menu-item-xfn'][$k] ) ? $_POST['menu-item-xfn'][$k] : ''; 134 135 // Populate the menu item object 136 $post = array( 137 'post_status' => 'publish', 'post_type' => 'nav_menu_item', 'ping_status' => 0, 138 'post_author' => $user_ID, 'tax_input' => array( 'nav_menu' => $update_nav_menu->name ), 139 'post_title' => $menu_item_title, 'post_excerpt' => $menu_item_attr_title, 140 'post_parent' => $menu_item_parent_id, 'menu_order' => $menu_item_position, 141 'post_content' => $menu_item_description, 237 238 $args = array( 239 'menu-item-db-id' => $_POST['menu-item-db-id'][$_key], 240 'menu-item-object-id' => $_POST['menu-item-object-id'][$_key], 241 'menu-item-object' => $_POST['menu-item-object'][$_key], 242 'menu-item-parent-id' => $_POST['menu-item-parent-id'][$_key], 243 'menu-item-position' => $_POST['menu-item-position'][$_key], 244 'menu-item-type' => $_POST['menu-item-type'][$_key], 245 'menu-item-append' => $_POST['menu-item-append'][$_key], 246 'menu-item-title' => $_POST['menu-item-title'][$_key], 247 'menu-item-url' => $_POST['menu-item-url'][$_key], 248 'menu-item-description' => $_POST['menu-item-description'][$_key], 249 'menu-item-attr-title' => $_POST['menu-item-attr-title'][$_key], 250 'menu-item-target' => $_POST['menu-item-target'][$_key], 251 'menu-item-classes' => $_POST['menu-item-classes'][$_key], 252 'menu-item-xfn' => $_POST['menu-item-xfn'][$_key], 142 253 ); 143 254 144 // New menu item 145 if ( $menu_item_db_id == 0 ) { 146 $menu_item_db_id = wp_insert_post( $post ); 147 148 // Update existing menu item 149 } elseif ( isset($menu_items[$menu_item_db_id]) || ( 'custom' == $menu_item_type && 0 != $menu_item_db_id ) ) { 150 $post['ID'] = $menu_item_db_id; 151 wp_update_post( $post ); 255 $menu_item_db_id = wp_update_nav_menu_item( $nav_menu_selected_id, ( $_POST['menu-item-db-id'][$_key] != $_key ? 0 : $_key ), $args ); 256 257 if ( ! is_wp_error( $menu_item_db_id ) && isset( $menu_items[$menu_item_db_id] ) ) { 152 258 unset( $menu_items[$menu_item_db_id] ); 153 259 } 154 155 update_post_meta( $menu_item_db_id, '_menu_item_type', sanitize_key($menu_item_type) );156 update_post_meta( $menu_item_db_id, '_menu_item_object_id', (int) $menu_item_object_id );157 update_post_meta( $menu_item_db_id, '_menu_item_object', sanitize_key($menu_item_object) );158 update_post_meta( $menu_item_db_id, '_menu_item_target', sanitize_key($menu_item_target) );159 // @todo handle sanitizing multiple classes separated by whitespace.160 update_post_meta( $menu_item_db_id, '_menu_item_classes', sanitize_html_class($menu_item_classes) );161 update_post_meta( $menu_item_db_id, '_menu_item_xfn', sanitize_html_class($menu_item_xfn) );162 163 // @todo: only save custom link urls.164 update_post_meta( $menu_item_db_id, '_menu_item_url', esc_url_raw($menu_item_url) );165 260 } 166 261 … … 174 269 do_action( 'wp_update_nav_menu', $nav_menu_selected_id ); 175 270 176 $messages_div = '<div id="message" class="updated"><p>' . sprintf( __('The <strong>%s</strong> menu has been updated.'), $ update_nav_menu->name ) . '</p></div>';177 unset( $ update_nav_menu, $update_count, $menu_items );271 $messages_div = '<div id="message" class="updated"><p>' . sprintf( __('The <strong>%s</strong> menu has been updated.'), $nav_menu_selected_title ) . '</p></div>'; 272 unset( $menu_items ); 178 273 } 179 274 } … … 185 280 186 281 // Get recently edited nav menu 187 $recently_edited = get_user_option( 'nav_menu_recently_edited' );282 $recently_edited = (int) get_user_option( 'nav_menu_recently_edited' ); 188 283 189 284 // If there was no recently edited menu, and $nav_menu_selected_id is a nav menu, update recently edited menu. 190 if ( !$recently_edited && is_nav_menu( $nav_menu_selected_id) ) {285 if ( !$recently_edited && is_nav_menu( $nav_menu_selected_id ) ) { 191 286 $recently_edited = $nav_menu_selected_id; 192 287 193 // Else if $nav_menu_selected_id is not a menu , but $recently_edited is, grab that one.194 } elseif ( 0 == $nav_menu_selected_id && is_nav_menu($recently_edited) ) {288 // Else if $nav_menu_selected_id is not a menu and not requesting that we create a new menu, but $recently_edited is a menu, grab that one. 289 } elseif ( 0 == $nav_menu_selected_id && ! isset( $_REQUEST['menu'] ) && is_nav_menu( $recently_edited ) ) { 195 290 $nav_menu_selected_id = $recently_edited; 196 291 197 292 // Else try to grab the first menu from the menus list 198 } elseif ( 0 == $nav_menu_selected_id && ! empty($nav_menus) ) {293 } elseif ( 0 == $nav_menu_selected_id && ! isset( $_REQUEST['menu'] ) && ! empty($nav_menus) ) { 199 294 $nav_menu_selected_id = $nav_menus[0]->term_id; 200 295 } 201 296 202 297 // Update the user's setting 203 if ( $nav_menu_selected_id != $recently_edited && is_nav_menu( $nav_menu_selected_id) )298 if ( $nav_menu_selected_id != $recently_edited && is_nav_menu( $nav_menu_selected_id ) ) 204 299 update_user_meta( $current_user->ID, 'nav_menu_recently_edited', $nav_menu_selected_id ); 205 300 206 // If there's a menu, get it's name. 207 if ( !$nav_menu_selected_title && $nav_menu_selected_title = is_nav_menu( $nav_menu_selected_id ) ) { 208 $nav_menu_selected_title = $nav_menu_selected_title->name; 301 // If there's a menu, get its name. 302 if ( ! $nav_menu_selected_title && is_nav_menu( $nav_menu_selected_id ) ) { 303 $_menu_object = wp_get_nav_menu_object( $nav_menu_selected_id ); 304 $nav_menu_selected_title = ! is_wp_error( $_menu_object ) ? $_menu_object->name : ''; 209 305 } 210 306 211 // Create Menu Metabox212 add_meta_box( 'create-menu', __('Create Menu'), 'wp_nav_menu_create_metabox', 'nav-menus', 'side', 'core' );213 214 // The user has no menus.215 if ( !is_nav_menu( $nav_menu_selected_id ) ) {216 $messages_div = '<div id="message" class="updated"><p>' . __('You do not have any menus. Create a new menu.') . '</p></div>';217 218 307 // The theme supports menus 219 } elseif ( current_theme_supports('nav-menus') ) {308 if ( current_theme_supports('nav-menus') ) { 220 309 // Register nav menu metaboxes 221 add_meta_box( 'manage-menu', __( 'Menu Settings' ), 'wp_nav_menu_manage_menu_metabox', 'nav-menus', 'side', 'high', array( $nav_menu_selected_id, $nav_menu_selected_title ) ); 222 wp_nav_menu_metaboxes_setup(); 310 wp_nav_menu_meta_boxes_setup(); 223 311 224 312 // The theme does not support menus but supports widgets 225 313 } elseif ( current_theme_supports('widgets') ) { 226 314 // Register nav menu metaboxes 227 add_meta_box( 'manage-menu', __( 'Menu Settings' ), 'wp_nav_menu_manage_menu_metabox', 'nav-menus', 'side', 'high', array( $nav_menu_selected_id, $nav_menu_selected_title ) ); 228 wp_nav_menu_metaboxes_setup(); 315 wp_nav_menu_meta_boxes_setup(); 229 316 $messages_div = '<div id="message" class="error"><p>' . __('The current theme does not natively support menus, but you can use the “Navigation Menu” widget to add any menus you create here to the theme’s sidebar.') . '</p></div>'; 230 317 … … 236 323 237 324 // Get the admin header 238 require_once( ' ./admin-header.php' );325 require_once( 'admin-header.php' ); 239 326 ?> 240 <div class="wrap ">327 <div class="wrap nav-edit-wrap"> 241 328 <?php screen_icon(); ?> 242 329 <h2><?php esc_html_e('Menus'); ?></h2> 243 <?php /* OMGWTFBBQ */ ?><div class="error"><p><strong><?php _e('Beta Testers:') ?></strong> <?php _e('This feature is still under construction. You can try it out, but expect it to change in layout and functionality in the second beta release.'); ?></p></div>244 330 <?php echo $messages_div; ?> 245 <div class="hide-if-js error"><p><?php _e('You do not have JavaScript enabled in your browser. Please enable it to access the Menus functionality.'); ?></p></div> 246 247 <?php if ( !empty($nav_menus) && count($nav_menus) > 1 && ( current_theme_supports('nav-menus') || current_theme_supports('widgets') ) ) : ?> 248 <ul class="subsubsub"> 249 <?php 250 foreach ( $nav_menus as $_nav_menu ) { 251 $sep = end( $nav_menus ) == $_nav_menu ? '' : ' | '; 252 253 if ( $nav_menu_selected_id == $_nav_menu->term_id ) 254 echo '<li><a href="'. admin_url( 'nav-menus.php?action=edit&menu=' . esc_attr($_nav_menu->term_id) ) .'" class="current">'. esc_html( $_nav_menu->name ) .'</a>'. $sep .'</li>'; 255 else 256 echo '<li><a href="'. admin_url( 'nav-menus.php?action=edit&menu=' . esc_attr($_nav_menu->term_id) ) .'">'. esc_html( $_nav_menu->name ) .'</a>'. $sep .'</li>'; 257 } 258 ?> 259 </ul> 260 <?php endif; ?> 261 262 <div id="menu-management" class="metabox-holder has-right-sidebar"> 263 <form id="update-nav-menu" action="<?php echo admin_url( 'nav-menus.php' ); ?>" method="post" enctype="multipart/form-data"> 264 <?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?> 265 <?php wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false ); ?> 266 <?php wp_nonce_field( 'update-nav_menu' ); ?> 267 <input type="hidden" name="action" value="update" /> 268 <input type="hidden" name="li-count" id="li-count" value="-1" /> 269 <input type="hidden" name="menu" id="menu" value="<?php echo esc_attr( $nav_menu_selected_id ); ?>" /> 270 <input type="hidden" id="hidden-metaboxes" value="<?php echo wp_initial_nav_menu_meta_boxes(); ?>" /> 271 <div id="post-body"> 272 <div id="post-body-content"> 273 <?php if ( is_nav_menu($nav_menu_selected_id) && ( current_theme_supports('nav-menus') || current_theme_supports('widgets') ) ) : ?> 274 <div id="menu-container" class="postbox"> 275 <h3 class="hndle"><?php echo esc_html( $nav_menu_selected_title ); ?></h3> 276 <div class="inside"> 277 <?php wp_nav_menu( array( 'menu' => $nav_menu_selected_id, 'context' => 'backend' ) ); ?> 278 </div><!-- /.inside --> 279 <!-- /#nav-menu-canvas .postbox--> 280 </div> 281 <?php endif; ?> 282 </div><!-- /#post-body-content--> 283 </div><!--- /#post-body --> 284 <div id="menu-settings-column" class="inner-sidebar"> 285 286 <?php do_meta_boxes( 'nav-menus', 'side', null ); ?> 287 288 </div><!-- /#menu-settings-column --> 289 </form><!--/#update-nav-menu--> 290 <br class="clear" /> 291 </div><!-- /.metabox-holder has-right-sidebar--> 331 332 <?php if ( current_theme_supports('nav-menus') || current_theme_supports('widgets') ) : ?> 333 <div id="menu-settings-column" class="metabox-holder"> 334 335 <form id="nav-menu-meta" action="<?php echo admin_url( 'nav-menus.php' ); ?>" class="nav-menu-meta" method="post" enctype="multipart/form-data"> 336 <input type="hidden" name="menu" id="nav-menu-meta-object-id" value="<?php echo esc_attr( $nav_menu_selected_id ); ?>" /> 337 <input type="hidden" name="action" value="add-menu-item" /> 338 <?php wp_nonce_field( 'add-menu_item', 'menu-settings-column-nonce' ); ?> 339 <?php do_meta_boxes( 'nav-menus', 'side', null ); ?> 340 </form> 341 342 </div><!-- /#menu-settings-column --> 343 344 <div id="menu-management" class=""> 345 <h2> 346 <?php 347 foreach( (array) $nav_menus as $_nav_menu ) : 348 349 ?> 350 <a href="<?php 351 echo add_query_arg( 352 array( 353 'action' => 'edit', 354 'menu' => $_nav_menu->term_id, 355 ), 356 admin_url( 'nav-menus.php' ) 357 ); 358 ?>" class="menu-tabs<?php 359 if ( $nav_menu_selected_id != $_nav_menu->term_id ) 360 echo ' menu-tab-inactive'; 361 ?>"><?php echo esc_html( $_nav_menu->name ); ?></a> 362 363 <?php 364 endforeach; 365 ?> 366 <a href="<?php 367 echo add_query_arg( 368 array( 369 'action' => 'edit', 370 'menu' => 0, 371 ), 372 admin_url( 'nav-menus.php' ) 373 ); 374 ?>" class="menu-tabs menu-add-new<?php 375 if ( 0 != $nav_menu_selected_id ) 376 echo ' menu-tab-inactive'; 377 ?>"><?php printf( '<abbr title="%s">+</abbr>', esc_html__( 'Add menu' ) ); ?></a> 378 </h2> 379 <div class="menu-edit"> 380 <form id="update-nav-menu" action="<?php echo admin_url( 'nav-menus.php' ); ?>" method="post" enctype="multipart/form-data"> 381 <div id="submitpost" class="submitbox"> 382 <div id="minor-publishing"> 383 <div class="misc-pub-section misc-pub-section-last"> 384 <label class="howto" for="menu-name"> 385 <span><?php _e('Name'); ?></span> 386 <input id="menu-name" name="menu-name" type="text" class="regular-text menu-item-textbox" value="<?php echo esc_attr( $nav_menu_selected_title ); ?>" /> 387 <br class="clear" /> 388 </label> 389 </div><!--END .misc-pub-section misc-pub-section-last--> 390 <br class="clear" /> 391 </div><!--END #misc-publishing-actions--> 392 <div id="major-publishing-actions"> 393 394 <?php if ( ! empty( $nav_menu_selected_id ) ) : ?> 395 <div id="delete-action"> 396 <a class="submitdelete deletion menu-delete" href="<?php echo wp_nonce_url( admin_url('nav-menus.php?action=delete&menu=' . $nav_menu_selected_id), 'delete-nav_menu-' . $nav_menu_selected_id ); ?>"><?php _e('Delete Menu'); ?></a> 397 </div><!--END #delete-action--> 398 <?php endif; ?> 399 400 <div id="publishing-action"> 401 <input class="button-primary" name="save_menu" type="submit" value="<?php esc_attr_e('Save Menu'); ?>" /> 402 </div><!--END #publishing-action--> 403 <br class="clear" /> 404 </div><!--END #major-publishing-actions--> 405 </div><!--END #submitpost .submitbox--> 406 <?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?> 407 <?php wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false ); ?> 408 <?php wp_nonce_field( 'update-nav_menu', 'update-nav-menu-nonce' ); ?> 409 <input type="hidden" name="action" value="update" /> 410 <input type="hidden" name="menu" id="menu" value="<?php echo esc_attr( $nav_menu_selected_id ); ?>" /> 411 <input type="hidden" id="hidden-metaboxes" value="<?php echo wp_initial_nav_menu_meta_boxes(); ?>" /> 412 <div id="post-body"> 413 <div id="post-body-content"> 414 <?php if ( is_nav_menu( $nav_menu_selected_id ) && ( current_theme_supports('nav-menus') || current_theme_supports('widgets') ) ) : ?> 415 <ul class="menu" id="menu-to-edit"> 416 <?php 417 $edit_markup = wp_get_nav_menu_to_edit( $nav_menu_selected_id ); 418 if ( ! is_wp_error( $edit_markup ) ) { 419 echo $edit_markup; 420 } 421 ?> 422 </ul> 423 <?php endif; ?> 424 <br class="clear" /> 425 </div><!-- /#post-body-content--> 426 </div><!--- /#post-body --> 427 </form><!--/#update-nav-menu--> 428 </div><!-- /.menu-edit --> 429 </div><!-- /#menu-management --> 430 <?php endif; // if menus supported in current theme ?> 292 431 </div><!-- /.wrap--> 293 432 294 <div id="menu-item-settings"> 295 <p class="description"> 296 <label for="edit-menu-item-title"> 297 <?php _e( 'Menu Title' ); ?><br /> 298 <input type="text" id="edit-menu-item-title" class="widefat" name="edit-menu-item-title" value="" tabindex="1" /> 299 </label> 300 </p> 301 <p class="description"> 302 <label for="edit-menu-item-url"> 303 <?php _e( 'URL' ); ?><br /> 304 <input type="text" id="edit-menu-item-url" class="widefat code" name="edit-menu-item-url" value="" tabindex="2" /> 305 </label> 306 </p> 307 <p class="description"> 308 <label for="edit-menu-item-attr-title"> 309 <?php _e( 'Title Attribute' ); ?><br /> 310 <input type="text" id="edit-menu-item-attr-title" class="widefat" name="edit-menu-item-attr-title" value="" tabindex="3" /> 311 </label> 312 </p> 313 <p class="description"> 314 <label for="edit-menu-item-target"> 315 <?php _e( 'Link Target' ); ?><br /> 316 <select id="edit-menu-item-target" class="widefat" name="edit-menu-item-target" tabindex="4"> 317 <option value=""><?php _e('Same window or tab'); ?></option> 318 <option value="_blank"><?php _e('New window or tab'); ?></option> 319 </select> 320 </label> 321 </p> 322 <p class="description"> 323 <label for="edit-menu-item-classes"> 324 <?php _e( 'CSS Classes (optional)' ); ?><br /> 325 <input type="text" id="edit-menu-item-classes" class="widefat code" name="edit-menu-item-classes" value="" tabindex="5" /> 326 </label> 327 </p> 328 <p class="description"> 329 <label for="edit-menu-item-xfn"> 330 <?php _e( 'Link Relationship (XFN) (optional)' ); ?><br /> 331 <input type="text" id="edit-menu-item-xfn" class="widefat code" name="edit-menu-item-xfn" value="" tabindex="6" /> 332 </label> 333 </p> 334 <p class="description"> 335 <label for="edit-menu-item-description"> 336 <?php _e( 'Description (optional)' ); ?><br /> 337 <textarea id="edit-menu-item-description" class="widefat" rows="3" name="edit-menu-item-description" tabindex="7" /></textarea> 338 <span class="description"><?php _e('The description will be displayed in the menu if the current theme supports it.'); ?></span> 339 </label> 340 </p> 341 <p> 342 <a id="update-menu-item" class="save button-primary" tabindex="8"><?php _e('Save Changes'); ?></a> 343 <a id="cancel-save" class="submitdelete deletion" tabindex="9"><?php _e('Cancel'); ?></a> 344 </p> 345 <input type="hidden" id="edit-menu-item-id" name="edit-item-id" value="" /> 346 </div><!-- /#menu-item-settings--> 347 348 <?php include( './admin-footer.php' ); ?> 433 434 <?php include( 'admin-footer.php' ); ?>
Note: See TracChangeset
for help on using the changeset viewer.