Make WordPress Core

Changeset 36507


Ignore:
Timestamp:
02/10/2016 02:10:17 PM (11 years ago)
Author:
ericlewis
Message:

Menus: Revert larger menu support in Edit Menus screen in [36506].

JSON encoding the form as it exists on the page will not scale.

See #14134.

Location:
trunk/src/wp-admin
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/js/nav-menu.js

    r36506 r36507  
    4444                        this.attachQuickSearchListeners();
    4545                        this.attachThemeLocationsListeners();
    46                         this.attachMenuSaveSubmitListeners();
    4746
    4847                        this.attachTabsPanelListeners();
    … …  
    836835                },
    837836
    838                 attachMenuSaveSubmitListeners : function() {
    839                         /*
    840                          * When a navigation menu is saved, store a JSON representation of all form data
    841                          * in a single input to avoid PHP `max_input_vars` limitations. See #14134.
    842                          */
    843                         $('#update-nav-menu').submit(function() {
    844                                 var navMenuData = {};
    845                                 $('#update-nav-menu input').each(function(index, element) {
    846                                         var name = $(element).attr('name');
    847                                         var regex = /(.*)(?:\[(\d+)\])/;
    848                                         if ( regex.test( name ) ) {
    849                                                 var matches = regex.exec(name);
    850                                                 if ( ! navMenuData[matches[1]] ) {
    851                                                         navMenuData[matches[1]] = [];
    852                                                 }
    853                                                 navMenuData[matches[1]][matches[2]] = $(element).val();
    854                                         } else {
    855                                                 navMenuData[name] = $(element).val();
    856                                         }
    857                                 });
    858                                 $('[name="nav-menu-data"]').val( JSON.stringify( navMenuData ) );
    859                         });
    860                 },
    861 
    862837                attachThemeLocationsListeners : function() {
    863838                        var loc = $('#nav-menu-theme-locations'), params = {};
  • trunk/src/wp-admin/nav-menus.php

    r36506 r36507  
    4949// Allowed actions: add, update, delete
    5050$action = isset( $_REQUEST['action'] ) ? $_REQUEST['action'] : 'edit';
    51 
    52 /*
    53  * If a JSON blob of navigation menu data is found, expand it and inject it
    54  * into `$_POST` to avoid PHP `max_input_vars` limitations. See #14134.
    55  */
    56 if ( isset( $_POST['nav-menu-data'] ) ) {
    57         $data = json_decode( stripslashes( $_POST['nav-menu-data'] ) );
    58         if ( ! is_null( $data ) && $data ) {
    59                 foreach ( $data as $post_var => $post_data ) {
    60                         $_POST[$post_var] = $post_data;
    61                 }
    62         }
    63 }
    6451
    6552switch ( $action ) {
    … …  
    745732                        <form id="update-nav-menu" method="post" enctype="multipart/form-data">
    746733                                <div class="menu-edit <?php if ( $add_new_screen ) echo 'blank-slate'; ?>">
    747                                         <input type="hidden" name="nav-menu-data">
    748734                                        <?php
    749735                                        wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false );
Note: See TracChangeset for help on using the changeset viewer.