Changeset 23441 for trunk/wp-admin/nav-menus.php
- Timestamp:
- 02/16/2013 04:53:59 AM (13 years ago)
- File:
-
- 1 edited
-
trunk/wp-admin/nav-menus.php (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/nav-menus.php
r23416 r23441 222 222 $messages[] = '<div id="message" class="updated"><p>' . __('The menu item has been successfully deleted.') . '</p></div>'; 223 223 break; 224 224 225 case 'delete': 225 226 check_admin_referer( 'delete-nav_menu-' . $nav_menu_selected_id ); 226 227 227 if ( is_nav_menu( $nav_menu_selected_id ) ) { 228 $deleted_nav_menu = wp_get_nav_menu_object( $nav_menu_selected_id ); 229 $delete_nav_menu = wp_delete_nav_menu( $nav_menu_selected_id ); 230 231 if ( is_wp_error($delete_nav_menu) ) { 232 $messages[] = '<div id="message" class="error"><p>' . $delete_nav_menu->get_error_message() . '</p></div>'; 233 } else { 234 // Remove this menu from any locations. 235 $locations = get_theme_mod( 'nav_menu_locations' ); 236 foreach ( (array) $locations as $location => $menu_id ) { 237 if ( $menu_id == $nav_menu_selected_id ) 238 $locations[ $location ] = 0; 239 } 240 set_theme_mod( 'nav_menu_locations', $locations ); 241 $messages[] = '<div id="message" class="updated"><p>' . __('The menu has been successfully deleted.') . '</p></div>'; 242 // Select the next available menu 243 $nav_menu_selected_id = 0; 244 $_nav_menus = wp_get_nav_menus( array('orderby' => 'name') ); 245 foreach( $_nav_menus as $index => $_nav_menu ) { 246 if ( strcmp( $_nav_menu->name, $deleted_nav_menu->name ) >= 0 247 || $index == count( $_nav_menus ) - 1 ) { 248 $nav_menu_selected_id = $_nav_menu->term_id; 249 break; 250 } 251 } 252 } 253 unset( $delete_nav_menu, $deleted_nav_menu, $_nav_menus ); 228 $deletion = _wp_delete_nav_menu( $nav_menu_selected_id ); 254 229 } else { 255 230 // Reset the selected menu … … 257 232 unset( $_REQUEST['menu'] ); 258 233 } 234 235 if ( ! isset( $deletion ) ) 236 break; 237 238 if ( is_wp_error( $deletion ) ) 239 $messages[] = '<div id="message" class="error"><p>' . $deletion->get_error_message() . '</p></div>'; 240 else 241 $messages[] = '<div id="message" class="updated"><p>' . __( 'The menu has been successfully deleted.' ) . '</p></div>'; 242 break; 243 244 case 'delete_menus': 245 check_admin_referer( 'nav_menus_bulk_actions' ); 246 foreach ( $_REQUEST['delete_menus'] as $menu_id_to_delete ) { 247 if ( ! is_nav_menu( $menu_id_to_delete ) ) 248 continue; 249 250 $deletion = _wp_delete_nav_menu( $menu_id_to_delete ); 251 if ( is_wp_error( $deletion ) ) { 252 $messages[] = '<div id="message" class="error"><p>' . $deletion->get_error_message() . '</p></div>'; 253 $deletion_error = true; 254 } 255 } 256 257 if ( empty( $deletion_error ) ) 258 $messages[] = '<div id="message" class="updated"><p>' . __( 'Selected menus have been successfully deleted.' ) . '</p></div>'; 259 259 break; 260 260 … … 262 262 check_admin_referer( 'update-nav_menu', 'update-nav-menu-nonce' ); 263 263 264 // Update menu theme locations 265 if ( isset( $_POST['menu-locations'] ) ) 266 set_theme_mod( 'nav_menu_locations', array_map( 'absint', $_POST['menu-locations'] ) ); 264 // Get existing menu locations assignments 265 $locations = get_registered_nav_menus(); 266 $menu_locations = get_nav_menu_locations(); 267 268 // Remove menu locations that have been unchecked 269 foreach ( $locations as $location => $description ) { 270 if ( ( empty( $_POST['menu-locations'] ) || empty( $_POST['menu-locations'][ $location ] ) ) && isset( $menu_locations[ $location ] ) && $menu_locations[ $location ] == $nav_menu_selected_id ) 271 unset( $menu_locations[ $location ] ); 272 } 273 274 // Merge new and existing menu locations if any new ones are set 275 if ( isset( $_POST['menu-locations'] ) ) { 276 $new_menu_locations = array_map( 'absint', $_POST['menu-locations'] ); 277 $menu_locations = array_merge( $menu_locations, $new_menu_locations ); 278 } 279 280 // Set menu locations 281 set_theme_mod( 'nav_menu_locations', $menu_locations ); 267 282 268 283 // Add Menu … … 279 294 $nav_menu_selected_id = $_nav_menu_selected_id; 280 295 $nav_menu_selected_title = $_menu_object->name; 281 $messages[] = '<div id="message" class="updated"><p>' . sprintf( __('The <strong>%s</strong> menu has been successfully created.'), $nav_menu_selected_title ) . '</p></div>'; 296 if ( isset( $_REQUEST['menu-item'] ) ) 297 wp_save_nav_menu_items( $nav_menu_selected_id, absint( $_REQUEST['menu-item'] ) ); 298 if ( isset( $_REQUEST['zero-menu-state'] ) ) { 299 // If there are menu items, add them 300 wp_nav_menu_update_menu_items( $nav_menu_selected_id, $nav_menu_selected_title ); 301 // Auto-save nav_menu_locations 302 $locations = get_theme_mod( 'nav_menu_locations' ); 303 foreach ( (array) $locations as $location => $menu_id ) { 304 $locations[ $location ] = $nav_menu_selected_id; 305 break; // There should only be 1 306 } 307 set_theme_mod( 'nav_menu_locations', $locations ); 308 } 309 $messages[] = '<div id="message" class="updated"><p>' . sprintf( __( '<strong>%s</strong> has been created.' ), $nav_menu_selected_title ) . '</p></div>'; 282 310 } 283 311 } else { 284 $messages[] = '<div id="message" class="error"><p>' . __( 'Please enter a valid menu name.') . '</p></div>';312 $messages[] = '<div id="message" class="error"><p>' . __( 'Please enter a valid menu name.' ) . '</p></div>'; 285 313 } 286 314 287 // update existing menu315 // Update existing menu 288 316 } else { 289 317 … … 292 320 $menu_title = trim( esc_html( $_POST['menu-name'] ) ); 293 321 if ( ! $menu_title ) { 294 $messages[] = '<div id="message" class="error"><p>' . __( 'Please enter a valid menu name.') . '</p></div>';322 $messages[] = '<div id="message" class="error"><p>' . __( 'Please enter a valid menu name.' ) . '</p></div>'; 295 323 $menu_title = $_menu_object->name; 296 324 } … … 308 336 309 337 // Update menu items 310 311 338 if ( ! is_wp_error( $_menu_object ) ) { 312 $unsorted_menu_items = wp_get_nav_menu_items( $nav_menu_selected_id, array('orderby' => 'ID', 'output' => ARRAY_A, 'output_key' => 'ID', 'post_status' => 'draft,publish') ); 313 $menu_items = array(); 314 // Index menu items by db ID 315 foreach( $unsorted_menu_items as $_item ) 316 $menu_items[$_item->db_id] = $_item; 317 318 $post_fields = array( 'menu-item-db-id', 'menu-item-object-id', 'menu-item-object', 'menu-item-parent-id', 'menu-item-position', 'menu-item-type', 'menu-item-title', 'menu-item-url', 'menu-item-description', 'menu-item-attr-title', 'menu-item-target', 'menu-item-classes', 'menu-item-xfn' ); 319 wp_defer_term_counting(true); 320 // Loop through all the menu items' POST variables 321 if ( ! empty( $_POST['menu-item-db-id'] ) ) { 322 foreach( (array) $_POST['menu-item-db-id'] as $_key => $k ) { 323 324 // Menu item title can't be blank 325 if ( empty( $_POST['menu-item-title'][$_key] ) ) 326 continue; 327 328 $args = array(); 329 foreach ( $post_fields as $field ) 330 $args[$field] = isset( $_POST[$field][$_key] ) ? $_POST[$field][$_key] : ''; 331 332 $menu_item_db_id = wp_update_nav_menu_item( $nav_menu_selected_id, ( $_POST['menu-item-db-id'][$_key] != $_key ? 0 : $_key ), $args ); 333 334 if ( is_wp_error( $menu_item_db_id ) ) 335 $messages[] = '<div id="message" class="error"><p>' . $menu_item_db_id->get_error_message() . '</p></div>'; 336 elseif ( isset( $menu_items[$menu_item_db_id] ) ) 337 unset( $menu_items[$menu_item_db_id] ); 338 } 339 } 340 341 // Remove menu items from the menu that weren't in $_POST 342 if ( ! empty( $menu_items ) ) { 343 foreach ( array_keys( $menu_items ) as $menu_item_id ) { 344 if ( is_nav_menu_item( $menu_item_id ) ) { 345 wp_delete_post( $menu_item_id ); 346 } 347 } 348 } 349 350 // Store 'auto-add' pages. 351 $auto_add = ! empty( $_POST['auto-add-pages'] ); 352 $nav_menu_option = (array) get_option( 'nav_menu_options' ); 353 if ( ! isset( $nav_menu_option['auto_add'] ) ) 354 $nav_menu_option['auto_add'] = array(); 355 if ( $auto_add ) { 356 if ( ! in_array( $nav_menu_selected_id, $nav_menu_option['auto_add'] ) ) 357 $nav_menu_option['auto_add'][] = $nav_menu_selected_id; 358 } else { 359 if ( false !== ( $key = array_search( $nav_menu_selected_id, $nav_menu_option['auto_add'] ) ) ) 360 unset( $nav_menu_option['auto_add'][$key] ); 361 } 362 // Remove nonexistent/deleted menus 363 $nav_menu_option['auto_add'] = array_intersect( $nav_menu_option['auto_add'], wp_get_nav_menus( array( 'fields' => 'ids' ) ) ); 364 update_option( 'nav_menu_options', $nav_menu_option ); 365 366 wp_defer_term_counting(false); 367 368 do_action( 'wp_update_nav_menu', $nav_menu_selected_id ); 369 370 $messages[] = '<div id="message" class="updated"><p>' . sprintf( __('The <strong>%s</strong> menu has been updated.'), $nav_menu_selected_title ) . '</p></div>'; 371 unset( $menu_items, $unsorted_menu_items ); 339 $messages = array_merge( $messages, wp_nav_menu_update_menu_items( $nav_menu_selected_id, $nav_menu_selected_title ) ); 372 340 } 373 341 } … … 377 345 // Get all nav menus 378 346 $nav_menus = wp_get_nav_menus( array('orderby' => 'name') ); 347 $menu_count = count( $nav_menus ); 348 349 // Are we on the add new screen? 350 $add_new_screen = ( isset( $_GET['menu'] ) && 0 == $_GET['menu'] ) ? true : false; 351 352 // If we have one theme location, and zero menus, we take them right into editing their first menu 353 $page_count = wp_count_posts( 'page' ); 354 $one_theme_location_no_menus = ( 1 == count( get_registered_nav_menus() ) && ! $add_new_screen && empty( $nav_menus ) && ! empty( $page_count->publish ) ) ? true : false; 355 356 // Redirect to add screen if there are no menus and this users has either zero, or more than 1 theme locations 357 if ( 0 == $menu_count && ! $add_new_screen && ! $one_theme_location_no_menus ) 358 wp_redirect( admin_url( 'nav-menus.php?action=edit&menu=0' ) ); 379 359 380 360 // Get recently edited nav menu 381 $recently_edited = (int) get_user_option( 'nav_menu_recently_edited' ); 382 383 // If there was no recently edited menu, and $nav_menu_selected_id is a nav menu, update recently edited menu. 384 if ( !$recently_edited && is_nav_menu( $nav_menu_selected_id ) ) { 361 $recently_edited = absint( get_user_option( 'nav_menu_recently_edited' ) ); 362 if ( empty( $recently_edited ) && is_nav_menu( $nav_menu_selected_id ) ) 385 363 $recently_edited = $nav_menu_selected_id; 386 364 387 // 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.388 } elseif ( 0 == $nav_menu_selected_id && ! isset( $_REQUEST['menu'] ) && is_nav_menu( $recently_edited ) ) { 365 // Use $recently_edited if none are selected 366 if ( empty( $nav_menu_selected_id ) && ! isset( $_GET['menu'] ) && is_nav_menu( $recently_edited ) ) 389 367 $nav_menu_selected_id = $recently_edited; 390 368 391 // Else try to grab the first menu from the menus list392 } elseif ( 0 == $nav_menu_selected_id && ! isset( $_REQUEST['menu'] ) && ! empty($nav_menus) ) { 369 // On deletion of menu, if another menu exists, show it 370 if ( ! $add_new_screen && 0 < $menu_count && isset( $_GET['action'] ) && 'delete' == $_GET['action'] ) 393 371 $nav_menu_selected_id = $nav_menus[0]->term_id; 394 } 372 373 // Set $nav_menu_selected_id to 0 if no menus 374 if ( $one_theme_location_no_menus ) 375 $nav_menu_selected_id = 0; 395 376 396 377 // Update the user's setting … … 413 394 } 414 395 396 // Retrieve menu locations 397 if ( current_theme_supports( 'menus' ) ) { 398 $locations = get_registered_nav_menus(); 399 $menu_locations = get_nav_menu_locations(); 400 } 401 415 402 // Ensure the user will be able to scroll horizontally 416 403 // by adding a class for the max menu depth. … … 419 406 420 407 // Calling wp_get_nav_menu_to_edit generates $_wp_nav_menu_max_depth 421 if ( is_nav_menu( $nav_menu_selected_id ) ) 408 if ( is_nav_menu( $nav_menu_selected_id ) ) { 409 $menu_items = wp_get_nav_menu_items( $nav_menu_selected_id, array( 'post_status' => 'any' ) ); 422 410 $edit_markup = wp_get_nav_menu_to_edit( $nav_menu_selected_id ); 411 } 423 412 424 413 function wp_nav_menu_max_depth($classes) { … … 461 450 <div class="wrap"> 462 451 <?php screen_icon(); ?> 463 <h2><?php esc_html_e('Menus'); ?></h2>452 <h2><?php _e( 'Menus' ); ?> <a href="<?php echo esc_url( add_query_arg( array( 'action' => 'edit', 'menu' => 0, ), admin_url( 'nav-menus.php' ) ) ); ?>" class="add-new-h2"><?php _e( 'Add New' ); ?></a></h2> 464 453 <?php 465 454 foreach( $messages as $message ) : … … 467 456 endforeach; 468 457 ?> 458 <?php if ( 1 < $menu_count ) : ?> 459 <form method="post" action="<?php echo admin_url( 'nav-menus.php' ); ?>"> 460 <input type="hidden" name="action" value="edit" /> 461 <div class="manage-menus"> 462 <label for="menu" class="selected-menu"><?php _e('Select menu to edit'); ?></label> 463 <select name="menu" id="menu"> 464 <?php if ( $add_new_screen ) : ?> 465 <option value="0" selected="selected"><?php _e( '-- Select --' ); ?></option> 466 <?php endif; ?> 467 <?php foreach( (array) $nav_menus as $_nav_menu ) : ?> 468 <option value="<?php echo esc_attr( $_nav_menu->term_id ); ?>" <?php selected( $_nav_menu->term_id, $nav_menu_selected_id ); ?>> 469 <?php 470 echo esc_html( $_nav_menu->truncated_name ) ; 471 472 if ( ! empty( $menu_locations ) && in_array( $_nav_menu->term_id, $menu_locations ) ) { 473 $locations_assigned_to_this_menu = array(); 474 foreach ( array_keys( $menu_locations, $_nav_menu->term_id ) as $menu_location_key ) { 475 $locations_assigned_to_this_menu[] = $locations[ $menu_location_key ]; 476 } 477 $assigned_locations = array_slice( $locations_assigned_to_this_menu, 0, absint( apply_filters( 'wp_nav_locations_listed_per_menu', 3 ) ) ); 478 479 // Adds ellipses following the number of locations defined in $assigned_locations 480 printf( ' (%1$s%2$s)', 481 implode( ', ', $assigned_locations ), 482 count( $locations_assigned_to_this_menu ) > count( $assigned_locations ) ? ' …' : '' 483 ); 484 } 485 ?> 486 </option> 487 <?php endforeach; ?> 488 </select> 489 <span class="submit-btn"><input type="submit" class="button-secondary" value="<?php _e( 'Select' ); ?>"></span> 490 </div> 491 </form> 492 <?php endif; ?> 469 493 <div id="nav-menus-frame"> 470 <div id="menu-settings-column" class="metabox-holder<?php if ( !$nav_menu_selected_id ) { echo ' metabox-holder-disabled'; } ?>"> 494 <div id="menu-settings-column" class="metabox-holder<?php if ( isset( $_GET['menu'] ) && '0' == $_GET['menu'] ) { echo ' metabox-holder-disabled'; } ?>"> 495 496 <div class="clear"></div> 471 497 472 498 <form id="nav-menu-meta" action="<?php echo admin_url( 'nav-menus.php' ); ?>" class="nav-menu-meta" method="post" enctype="multipart/form-data"> … … 480 506 <div id="menu-management-liquid"> 481 507 <div id="menu-management"> 482 <div id="select-nav-menu-container" class="hide-if-js"> 483 <form id="select-nav-menu" action=""> 484 <strong><label for="select-nav-menu"><?php esc_html_e( 'Select Menu:' ); ?></label></strong> 485 <select class="select-nav-menu" name="menu"> 486 <?php foreach( (array) $nav_menus as $_nav_menu ) : ?> 487 <option value="<?php echo esc_attr($_nav_menu->term_id) ?>" <?php selected($nav_menu_selected_id, $_nav_menu->term_id); ?>> 488 <?php echo esc_html( $_nav_menu->truncated_name ); ?> 489 </option> 490 <?php endforeach; ?> 491 <option value="0"><?php esc_html_e('Add New Menu'); ?></option> 492 </select> 493 <input type="hidden" name="action" value="edit" /> 494 <?php submit_button( __( 'Select' ), 'secondary', 'select_menu', false ); ?> 495 </form> 496 </div> 497 <div class="nav-tabs-wrapper"> 498 <div class="nav-tabs"> 499 <?php 500 foreach( (array) $nav_menus as $_nav_menu ) : 501 if ( $nav_menu_selected_id == $_nav_menu->term_id ) : ?><span class="nav-tab nav-tab-active"> 502 <?php echo esc_html( $_nav_menu->truncated_name ); ?> 503 </span><?php else : ?><a href="<?php 504 echo esc_url(add_query_arg( 505 array( 506 'action' => 'edit', 507 'menu' => $_nav_menu->term_id, 508 ), 509 admin_url( 'nav-menus.php' ) 510 )); 511 ?>" class="nav-tab hide-if-no-js"> 512 <?php echo esc_html( $_nav_menu->truncated_name ); ?> 513 </a><?php endif; 514 endforeach; 515 if ( 0 == $nav_menu_selected_id ) : ?><span class="nav-tab menu-add-new nav-tab-active"> 516 <?php printf( '<abbr title="%s">+</abbr>', esc_html__( 'Add menu' ) ); ?> 517 </span><?php else : ?><a href="<?php 518 echo esc_url(add_query_arg( 519 array( 520 'action' => 'edit', 521 'menu' => 0, 522 ), 523 admin_url( 'nav-menus.php' ) 524 )); 525 ?>" class="nav-tab menu-add-new"> 526 <?php printf( '<abbr title="%s">+</abbr>', esc_html__( 'Add menu' ) ); ?> 527 </a><?php endif; ?> 528 </div> 529 </div> 530 <div class="menu-edit"> 531 <form id="update-nav-menu" action="<?php echo admin_url( 'nav-menus.php' ); ?>" method="post" enctype="multipart/form-data"> 508 <form id="update-nav-menu" action="<?php echo esc_url( admin_url( 'nav-menus.php' ) ); ?>" method="post" enctype="multipart/form-data"> 509 <div class="menu-edit <?php if ( $add_new_screen ) echo 'blank-slate'; ?>"> 510 <?php 511 wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); 512 wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false ); 513 wp_nonce_field( 'update-nav_menu', 'update-nav-menu-nonce' ); 514 515 if ( $one_theme_location_no_menus ) { ?> 516 <input type="hidden" name="zero-menu-state" value="true" /> 517 <?php } ?> 518 <input type="hidden" name="action" value="update" /> 519 <input type="hidden" name="menu" id="menu" value="<?php echo esc_attr( $nav_menu_selected_id ); ?>" /> 532 520 <div id="nav-menu-header"> 533 <div id="submitpost" class="submitbox"> 534 <div class="major-publishing-actions"> 535 <label class="menu-name-label howto open-label" for="menu-name"> 536 <span><?php _e('Menu Name'); ?></span> 537 <input name="menu-name" id="menu-name" type="text" class="menu-name regular-text menu-item-textbox input-with-default-title" title="<?php esc_attr_e('Enter menu name here'); ?>" value="<?php echo esc_attr( $nav_menu_selected_title ); ?>" /> 538 </label> 539 <?php if ( !empty( $nav_menu_selected_id ) ) : 540 if ( ! isset( $auto_add ) ) { 541 $auto_add = get_option( 'nav_menu_options' ); 542 if ( ! isset( $auto_add['auto_add'] ) ) 543 $auto_add = false; 544 elseif ( false !== array_search( $nav_menu_selected_id, $auto_add['auto_add'] ) ) 545 $auto_add = true; 546 else 547 $auto_add = false; 548 } 549 ?> 550 <div class="auto-add-pages"> 551 <label class="howto"><input type="checkbox"<?php checked( $auto_add ); ?> name="auto-add-pages" value="1" /> <?php printf( __('Automatically add new top-level pages' ), esc_url( admin_url( 'edit.php?post_type=page' ) ) ); ?></label> 552 </div> 553 <?php endif; ?> 554 <br class="clear" /> 555 <div class="publishing-action"> 556 <?php submit_button( empty( $nav_menu_selected_id ) ? __( 'Create Menu' ) : __( 'Save Menu' ), 'button-primary menu-save', 'save_menu', false, array( 'id' => 'save_menu_header' ) ); ?> 557 </div><!-- END .publishing-action --> 558 559 <?php if ( ! empty( $nav_menu_selected_id ) ) : ?> 560 <div class="delete-action"> 561 <a class="submitdelete deletion menu-delete" href="<?php echo esc_url( 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> 562 </div><!-- END .delete-action --> 563 <?php endif; ?> 564 </div><!-- END .major-publishing-actions --> 565 </div><!-- END #submitpost .submitbox --> 566 <?php 567 wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); 568 wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false ); 569 wp_nonce_field( 'update-nav_menu', 'update-nav-menu-nonce' ); 570 ?> 571 <input type="hidden" name="action" value="update" /> 572 <input type="hidden" name="menu" id="menu" value="<?php echo esc_attr( $nav_menu_selected_id ); ?>" /> 573 </div><!-- END #nav-menu-header --> 521 <div class="major-publishing-actions"> 522 <label class="menu-name-label howto open-label" for="menu-name"> 523 <span><?php _e( 'Menu Name' ); ?></span> 524 <input name="menu-name" id="menu-name" type="text" class="menu-name regular-text menu-item-textbox input-with-default-title" title="<?php esc_attr_e( 'Enter menu name here' ); ?>" value="<?php if ( $one_theme_location_no_menus ) _e( 'Menu 1' ); else echo esc_attr( $nav_menu_selected_title ); ?>" /> 525 </label> 526 <div class="publishing-action"> 527 <?php submit_button( empty( $nav_menu_selected_id ) ? __( 'Create Menu' ) : __( 'Save Menu' ), 'button-primary menu-save', 'save_menu', false, array( 'id' => 'save_menu_header' ) ); ?> 528 </div><!-- END .publishing-action --> 529 </div><!-- END .major-publishing-actions --> 530 </div><!-- END .nav-menu-header --> 574 531 <div id="post-body"> 575 532 <div id="post-body-content"> 533 <?php if ( ! $add_new_screen ) : ?> 534 <?php $starter_copy = ( $one_theme_location_no_menus ) ? __( 'Edit your default menu by adding or removing items. Drag each item into the order you prefer. Click Create Menu to save your changes.' ) : __( 'Drag each item into the order you prefer. Click an item to reveal additional configuration options.' ); ?> 535 <div class="drag-instructions post-body-plain" <?php if ( isset( $menu_items ) && 0 == count( $menu_items ) ) { ?>style="display: none;"<?php } ?>> 536 <p><?php echo $starter_copy; ?></p> 537 </div> 576 538 <?php 577 if ( isset( $edit_markup ) ) { 578 if ( ! is_wp_error( $edit_markup ) ) 579 echo $edit_markup; 580 } else if ( empty( $nav_menu_selected_id ) ) { 581 echo '<div class="post-body-plain">'; 582 echo '<p>' . __('To create a custom menu, give it a name above and click Create Menu. Then choose items like pages, categories or custom links from the left column to add to this menu.') . '</p>'; 583 echo '<p>' . __('After you have added your items, drag and drop to put them in the order you want. You can also click each item to reveal additional configuration options.') . '</p>'; 584 echo '<p>' . __('When you have finished building your custom menu, make sure you click the Save Menu button.') . '</p>'; 585 echo '</div>'; 586 } 539 if ( isset( $edit_markup ) && ! is_wp_error( $edit_markup ) ) { 540 echo $edit_markup; 541 } else { 587 542 ?> 543 <ul class="menu" id="menu-to-edit"></ul> 544 <?php } ?> 545 <?php endif; ?> 546 <?php if ( $add_new_screen ) : ?> 547 <p class="post-body-plain"><?php _e( 'Give your menu a name above, then click Create Menu.' ); ?></p> 548 <?php endif; ?> 549 <div class="menu-settings" <?php if ( $one_theme_location_no_menus ) { ?>style="display: none;"<?php } ?>> 550 <?php 551 if ( ! isset( $auto_add ) ) { 552 $auto_add = get_option( 'nav_menu_options' ); 553 if ( ! isset( $auto_add['auto_add'] ) ) 554 $auto_add = false; 555 elseif ( false !== array_search( $nav_menu_selected_id, $auto_add['auto_add'] ) ) 556 $auto_add = true; 557 else 558 $auto_add = false; 559 } ?> 560 561 <dl class="auto-add-pages"> 562 <dt class="howto"><?php _e( 'Auto add pages' ); ?></dt> 563 <dd class="checkbox-input"><input type="checkbox"<?php checked( $auto_add ); ?> name="auto-add-pages" id="auto-add-pages" value="1" /> <label for="auto-add-pages"><?php printf( __('Automatically add new top-level pages to this menu' ), esc_url( admin_url( 'edit.php?post_type=page' ) ) ); ?></label></dd> 564 </dl> 565 566 <?php if ( current_theme_supports( 'menus' ) ) : ?> 567 568 <dl class="menu-theme-locations"> 569 <dt class="howto"><?php _e( 'Theme locations' ); ?></dt> 570 <?php foreach ( $locations as $location => $description ) : ?> 571 <dd class="checkbox-input"> 572 <input type="checkbox"<?php checked( isset( $menu_locations[ $location ] ) && $menu_locations[ $location ] == $nav_menu_selected_id ); ?> name="menu-locations[<?php echo esc_attr( $location ); ?>]" id="locations-<?php echo esc_attr( $location ); ?>" value="<?php echo esc_attr( $nav_menu_selected_id ); ?>" /> <label for="locations-<?php echo esc_attr( $location ); ?>"><?php echo $description; ?></label> 573 <?php if ( ! empty( $menu_locations[ $location ] ) && $menu_locations[ $location ] != $nav_menu_selected_id ) : ?> 574 <span class="theme-location-set"> <?php printf( __( "(Currently set to: %s)" ), wp_get_nav_menu_object( $menu_locations[ $location ] )->name ); ?> </span> 575 <?php endif; ?> 576 </dd> 577 <?php endforeach; ?> 578 </dl> 579 580 <?php endif; ?> 581 582 </div> 588 583 </div><!-- /#post-body-content --> 589 584 </div><!-- /#post-body --> 590 585 <div id="nav-menu-footer"> 591 586 <div class="major-publishing-actions"> 592 <div class="publishing-action"> 593 <?php 594 if ( ! empty( $nav_menu_selected_id ) ) 595 submit_button( __( 'Save Menu' ), 'button-primary menu-save', 'save_menu', false, array( 'id' => 'save_menu_footer' ) ); 596 ?> 597 </div> 598 </div> 587 <?php if ( 0 != $menu_count && ! $add_new_screen ) : ?> 588 <span class="delete-action"> 589 <a class="submitdelete deletion menu-delete" href="<?php echo esc_url( wp_nonce_url( add_query_arg( array( 'action' => 'delete', 'menu' => $nav_menu_selected_id, admin_url() ) ), 'delete-nav_menu-' . $nav_menu_selected_id) ); ?>"><?php _e('Delete Menu'); ?></a> 590 </span><!-- END .delete-action --> 591 <?php endif; ?> 592 <div class="publishing-action"> 593 <?php submit_button( empty( $nav_menu_selected_id ) ? __( 'Create Menu' ) : __( 'Save Menu' ), 'button-primary menu-save', 'save_menu', false, array( 'id' => 'save_menu_header' ) ); ?> 594 </div><!-- END .publishing-action --> 595 </div><!-- END .major-publishing-actions --> 599 596 </div><!-- /#nav-menu-footer --> 600 </ form><!-- /#update-nav-menu-->601 </ div><!-- /.menu-edit-->597 </div><!-- /.menu-edit --> 598 </form><!-- /#update-nav-menu --> 602 599 </div><!-- /#menu-management --> 603 600 </div><!-- /#menu-management-liquid --> 604 601 </div><!-- /#nav-menus-frame --> 605 602 </div><!-- /.wrap--> 606 603 <script type="text/javascript">var oneThemeLocationNoMenus = <?php if ( $one_theme_location_no_menus ) echo 'true'; else echo 'false'; ?>;</script> 607 604 <?php include( './admin-footer.php' ); ?>
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)