Widgets: split the sidebars in two containers so there are no empty spaces when they are shown in two columns and some are open, other closed. See #25952.

git-svn-id: https://develop.svn.wordpress.org/trunk@26285 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Andrew Ozz
2013-11-20 04:44:21 +00:00
parent dfd0c43896
commit b31a5258cd
3 changed files with 54 additions and 37 deletions

View File

@@ -345,27 +345,28 @@ do_action( 'widgets_admin_page' ); ?>
</div>
<?php
$theme_sidebars = array();
foreach ( $wp_registered_sidebars as $sidebar => $registered_sidebar ) {
if ( false !== strpos( $registered_sidebar['class'], 'inactive-sidebar' ) || 'orphaned_widgets' == substr( $sidebar, 0, 16 ) ) {
$wrap_class = 'widgets-holder-wrap';
if ( !empty( $registered_sidebar['class'] ) )
$wrap_class .= ' ' . $registered_sidebar['class'];
?>
?>
<div class="<?php echo esc_attr( $wrap_class ); ?>">
<div class="sidebar-name">
<div class="sidebar-name-arrow"><br /></div>
<h3><?php echo esc_html( $registered_sidebar['name'] ); ?>
<span class="spinner"></span>
</h3>
<h3><?php echo esc_html( $registered_sidebar['name'] ); ?> <span class="spinner"></span></h3>
</div>
<div class="widget-holder inactive">
<?php wp_list_widget_controls( $registered_sidebar['id'] ); ?>
<div class="clear"></div>
</div>
</div>
<?php
<?php
} else {
$theme_sidebars[$sidebar] = $registered_sidebar;
}
}
?>
@@ -375,29 +376,44 @@ foreach ( $wp_registered_sidebars as $sidebar => $registered_sidebar ) {
<div class="widget-liquid-right">
<div id="widgets-right">
<div class="sidebars-column-1">
<?php
$i = 0;
foreach ( $wp_registered_sidebars as $sidebar => $registered_sidebar ) {
if ( false !== strpos( $registered_sidebar['class'], 'inactive-sidebar' ) || 'orphaned_widgets' == substr( $sidebar, 0, 16 ) )
continue;
$i = $split = 0;
$sidebars_count = count( $theme_sidebars );
if ( $sidebars_count > 2 )
$split = ceil( $sidebars_count / 2 );
foreach ( $theme_sidebars as $sidebar => $registered_sidebar ) {
$wrap_class = 'widgets-holder-wrap';
if ( !empty( $registered_sidebar['class'] ) )
$wrap_class .= ' sidebar-' . $registered_sidebar['class'];
if ( $i )
$wrap_class .= ' closed'; ?>
if ( $i > 0 )
$wrap_class .= ' closed';
if ( $split && $i == $split ) {
?>
</div><div class="sidebars-column-2">
<?php
}
?>
<div class="<?php echo esc_attr( $wrap_class ); ?>">
<div class="sidebar-name">
<div class="sidebar-name-arrow"><br /></div>
<h3><?php echo esc_html( $registered_sidebar['name'] ); ?>
<span class="spinner"></span></h3></div>
<?php wp_list_widget_controls( $sidebar ); // Show the control forms for each of the widgets in this sidebar ?>
<div class="sidebar-name">
<div class="sidebar-name-arrow"><br /></div>
<h3><?php echo esc_html( $registered_sidebar['name'] ); ?> <span class="spinner"></span></h3>
</div>
<?php wp_list_widget_controls( $sidebar ); // Show the control forms for each of the widgets in this sidebar ?>
</div>
<?php
<?php
$i++;
} ?>
}
?>
</div>
</div>
</div>
<form action="" method="post">