WordPress.org

Make WordPress Core

Changeset 8712


Ignore:
Timestamp:
08/22/2008 06:58:42 PM (10 years ago)
Author:
ryan
Message:

First cut of 'Show on screen' metabox show/hide. Needs styling. see #7552

Location:
trunk/wp-admin
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/admin-ajax.php

    r8691 r8712  
    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':
  • trunk/wp-admin/edit-form-advanced.php

    r8700 r8712  
    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
  • trunk/wp-admin/includes/template.php

    r8699 r8712  
    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
     
    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 ) {
     
    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";
     
    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?>
  • trunk/wp-admin/js/post.js

    r8691 r8712  
    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 ) {
  • trunk/wp-admin/js/postbox.js

    r8691 r8712  
    55            $('.postbox h3').before('<a class="togbox">+</a> ');
    66            $('.postbox a.togbox').click( function() { $($(this).parent().get(0)).toggleClass('closed'); save_postboxes_state(page); } );
     7
     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            } );
    718
    819            if ( $.browser.msie ) {
     
    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
Note: See TracChangeset for help on using the changeset viewer.