WordPress.org

Make WordPress Core

Ticket #7552: edit-settings.diff

File edit-settings.diff, 5.5 KB (added by ryan, 7 years ago)

Edit Settings panel, sans CSS

  • wp-admin/admin-ajax.php

     
    628628        check_ajax_referer( 'closedpostboxes', 'closedpostboxesnonce' ); 
    629629        $closed = isset( $_POST['closed'] )? $_POST['closed'] : ''; 
    630630        $closed = explode( ',', $_POST['closed'] ); 
     631        $hidden = isset( $_POST['hidden'] )? $_POST['hidden'] : ''; 
     632        $hidden = explode( ',', $_POST['hidden'] ); 
    631633        $page = isset( $_POST['page'] )? $_POST['page'] : ''; 
    632634        if ( !preg_match( '/^[a-z-]+$/', $page ) ) { 
    633635                die(-1); 
    634636        } 
    635         if (!is_array($closed)) break; 
    636637        $current_user = wp_get_current_user(); 
    637         update_usermeta($current_user->ID, 'closedpostboxes_'.$page, $closed); 
     638        if ( is_array($closed) ) 
     639                update_usermeta($current_user->ID, 'closedpostboxes_'.$page, $closed); 
     640        if ( is_array($hidden) ) 
     641                update_usermeta($current_user->ID, 'meta-box-hidden_'.$page, $hidden); 
    638642break; 
    639643case 'get-permalink': 
    640644        check_ajax_referer( 'getpermalink', 'getpermalinknonce' ); 
  • wp-admin/includes/template.php

     
    12541254 
    12551255        do_action('do_meta_boxes', $page, $context, $object); 
    12561256 
     1257        $hidden = get_user_option( "meta-box-hidden_$page" ); 
     1258 
    12571259        echo "<div id='$context-sortables' class='meta-box-sortables'>\n"; 
    12581260 
    12591261        $i = 0; 
     
    12701272                if ( !isset($wp_meta_boxes) || !isset($wp_meta_boxes[$page]) || !isset($wp_meta_boxes[$page][$context]) ) 
    12711273                        break; 
    12721274 
    1273  
    12741275                foreach ( array('high', 'sorted', 'core', 'default', 'low') as $priority ) { 
    12751276                        foreach ( (array) $wp_meta_boxes[$page][$context][$priority] as $box ) { 
    12761277                                if ( false == $box || ! $box['title'] ) 
    12771278                                        continue; 
    12781279                                $i++; 
    1279                                 echo '<div id="' . $box['id'] . '" class="postbox ' . postbox_classes($box['id'], $page) . '">' . "\n"; 
     1280                                $style = ''; 
     1281                                if ( in_array($box['id'], $hidden) ) 
     1282                                        $style = 'style="display:none;"'; 
     1283                                echo '<div id="' . $box['id'] . '" class="postbox ' . postbox_classes($box['id'], $page) . '" ' . $style . '>' . "\n"; 
    12801284                                echo "<h3><span class='hndle'>{$box['title']}</span></h3>\n"; 
    12811285                                echo '<div class="inside">' . "\n"; 
    12821286                                call_user_func($box['callback'], $object, $box); 
     
    13151319                $wp_meta_boxes[$page][$context][$priority][$id] = false; 
    13161320} 
    13171321 
     1322function meta_box_prefs($page) { 
     1323        global $wp_meta_boxes; 
     1324 
     1325        if ( empty($wp_meta_boxes[$page]) ) 
     1326                return; 
     1327 
     1328        $hidden = get_user_option( "meta-box-hidden_$page" ); 
     1329 
     1330        echo '<ul class="metabox-prefs">'; 
     1331        foreach ( array_keys($wp_meta_boxes[$page]) as $context ) { 
     1332                foreach ( array_keys($wp_meta_boxes[$page][$context]) as $priority ) { 
     1333                        foreach ( $wp_meta_boxes[$page][$context][$priority] as $box ) { 
     1334                                if ( false == $box || ! $box['title'] ) 
     1335                                        continue; 
     1336                                $box_id = $box['id']; 
     1337                                echo '<label for="' . $box_id . '-hide">'; 
     1338                                echo '<input class="hide-postbox-tog" name="' . $box_id . '-hide" type="checkbox" id="' . $box_id . '-hide" value="' . $box_id . '"' . (! in_array($box_id, $hidden) ? ' checked="checked"' : '') . ' />'; 
     1339                                echo "{$box['title']}</label>"; 
     1340                        } 
     1341                } 
     1342        } 
     1343        echo '</ul>'; 
     1344} 
    13181345?> 
  • wp-admin/js/post.js

     
    185185                return false; 
    186186        }); 
    187187 
     188        // Edit Settings 
     189        jQuery('.edit-settings-link').click(function () { 
     190                if (jQuery('#edit-settings').is(":hidden")) { 
     191                        jQuery('#edit-settings').slideDown("normal"); 
     192                } else { 
     193                        jQuery('#edit-settings').slideUp("normal"); 
     194                } 
     195                return false; 
     196        }); 
     197 
    188198        // Custom Fields 
    189199        jQuery('#the-list').wpList( { addAfter: function( xml, s ) { 
    190200                if ( jQuery.isFunction( autosave_update_post_ID ) ) { 
  • wp-admin/js/postbox.js

     
    55                        $('.postbox h3').before('<a class="togbox">+</a> '); 
    66                        $('.postbox a.togbox').click( function() { $($(this).parent().get(0)).toggleClass('closed'); save_postboxes_state(page); } ); 
    77 
     8                        $('.hide-postbox-tog').click( function() { 
     9                                var box = jQuery(this).val(); 
     10                                var show = jQuery(this).attr('checked'); 
     11                                if ( show ) { 
     12                                        jQuery('#' + box).show(); 
     13                                } else { 
     14                                        jQuery('#' + box).hide(); 
     15                                } 
     16                                save_postboxes_state(page); 
     17                        } ); 
     18 
    819                        if ( $.browser.msie ) { 
    920                                $('#side-sortables').append( '<div id="make-it-tall"></div>' ); 
    1021                        } else { 
     
    6475 
    6576function save_postboxes_state(page) { 
    6677        var closed = jQuery('.postbox').filter('.closed').map(function() { return this.id; }).get().join(','); 
     78        var hidden = jQuery('.postbox').filter(':hidden').map(function() { return this.id; }).get().join(','); 
    6779        jQuery.post(postboxL10n.requestFile, { 
    6880                action: 'closed-postboxes', 
    6981                closed: closed, 
     82                hidden: hidden, 
    7083                closedpostboxesnonce: jQuery('#closedpostboxesnonce').val(), 
    7184                page: page 
    7285        }); 
  • wp-admin/edit-form-advanced.php

     
    404404<?php } ?> 
    405405</div> 
    406406 
     407<a href="#edit_settings" class="edit-settings-link hide-if-no-js"><?php _e('Edit Settings') ?></a> 
     408 
     409<div id="edit-settings" class="hide-if-js hide-if-no-js"> 
     410<h5><?php _e('Show on screen') ?></h5> 
     411<?php meta_box_prefs('post') ?> 
     412</div> 
     413 
    407414<?php 
    408415 
    409416if ( 0 == $post_ID)