wp/wp-admin/widgets.php
changeset 5 5e2f62d02dcd
parent 0 d970ebf37754
child 7 cf61fcea0001
--- a/wp/wp-admin/widgets.php	Mon Jun 08 16:11:51 2015 +0000
+++ b/wp/wp-admin/widgets.php	Tue Jun 09 03:35:32 2015 +0200
@@ -13,7 +13,7 @@
 require_once(ABSPATH . 'wp-admin/includes/widgets.php');
 
 if ( ! current_user_can('edit_theme_options') )
-	wp_die( __( 'Cheatin’ uh?' ));
+	wp_die( __( 'Cheatin’ uh?' ), 403 );
 
 $widgets_access = get_user_setting( 'widgets_access' );
 if ( isset($_GET['widgets-access']) ) {
@@ -35,7 +35,8 @@
 }
 
 /**
- * Fires early before the Widgets administration screen loads, after scripts are enqueued.
+ * Fires early before the Widgets administration screen loads,
+ * after scripts are enqueued.
  *
  * @since 2.2.0
  */
@@ -69,12 +70,12 @@
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="http://codex.wordpress.org/Appearance_Widgets_Screen" target="_blank">Documentation on Widgets</a>') . '</p>' .
-	'<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Appearance_Widgets_Screen" target="_blank">Documentation on Widgets</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
 );
 
 if ( ! current_theme_supports( 'widgets' ) ) {
-	wp_die( __( 'The theme you are currently using isn&#8217;t widget-aware, meaning that it has no sidebars that you are able to change. For information on making your theme widget-aware, please <a href="http://codex.wordpress.org/Widgetizing_Themes">follow these instructions</a>.' ) );
+	wp_die( __( 'The theme you are currently using isn&#8217;t widget-aware, meaning that it has no sidebars that you are able to change. For information on making your theme widget-aware, please <a href="https://codex.wordpress.org/Widgetizing_Themes">follow these instructions</a>.' ) );
 }
 
 // These are the widgets grouped by sidebar
@@ -140,7 +141,7 @@
 	$id_base = $_POST['id_base'];
 	$sidebar = isset($sidebars_widgets[$sidebar_id]) ? $sidebars_widgets[$sidebar_id] : array();
 
-	// delete
+	// Delete.
 	if ( isset($_POST['removewidget']) && $_POST['removewidget'] ) {
 
 		if ( !in_array($widget_id, $sidebar, true) ) {
@@ -167,7 +168,7 @@
 
 	$sidebars_widgets[$sidebar_id] = $sidebar;
 
-	// remove old position
+	// Remove old position.
 	if ( !isset($_POST['delete_widget']) ) {
 		foreach ( $sidebars_widgets as $key => $sb ) {
 			if ( is_array($sb) )
@@ -188,7 +189,7 @@
 	if ( isset($_GET['addnew']) ) {
 		// Default to the first sidebar
 		$keys = array_keys( $wp_registered_sidebars );
-		$sidebar = array_shift( $keys );
+		$sidebar = reset( $keys );
 
 		if ( isset($_GET['base']) && isset($_GET['num']) ) { // multi-widget
 			// Copy minimal info from an existing instance of this widget to a new instance
@@ -223,13 +224,12 @@
 
 	$id_base = isset($control['id_base']) ? $control['id_base'] : $control['id'];
 
-	// show the widget form
+	// Show the widget form.
 	$width = ' style="width:' . max($control['width'], 350) . 'px"';
 	$key = isset($_GET['key']) ? (int) $_GET['key'] : 0;
 
 	require_once( ABSPATH . 'wp-admin/admin-header.php' ); ?>
 	<div class="wrap">
-	<?php screen_icon(); ?>
 	<h2><?php echo esc_html( $title ); ?></h2>
 	<div class="editwidget"<?php echo $width; ?>>
 	<h3><?php printf( __( 'Widget %s' ), $name ); ?></h3>
@@ -310,11 +310,27 @@
 require_once( ABSPATH . 'wp-admin/admin-header.php' ); ?>
 
 <div class="wrap">
-<?php screen_icon(); ?>
-<h2><?php echo esc_html( $title ); ?></h2>
+<h2>
+<?php
+	echo esc_html( $title );
+	if ( current_user_can( 'customize' ) ) {
+		printf(
+			' <a class="add-new-h2 hide-if-no-customize" href="%1$s">%2$s</a>',
+			esc_url( add_query_arg(
+				array(
+					array( 'autofocus' => array( 'panel' => 'widgets' ) ),
+					'return' => urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) )
+				),
+				admin_url( 'customize.php' )
+			) ),
+			__( 'Manage in Customizer' )
+		);
+	}
+?>
+</h2>
 
 <?php if ( isset($_GET['message']) && isset($messages[$_GET['message']]) ) { ?>
-<div id="message" class="updated"><p><?php echo $messages[$_GET['message']]; ?></p></div>
+<div id="message" class="updated notice is-dismissible"><p><?php echo $messages[$_GET['message']]; ?></p></div>
 <?php } ?>
 <?php if ( isset($_GET['error']) && isset($errors[$_GET['error']]) ) { ?>
 <div id="message" class="error"><p><?php echo $errors[$_GET['error']]; ?></p></div>
@@ -332,80 +348,106 @@
 <div id="widgets-left">
 	<div id="available-widgets" class="widgets-holder-wrap">
 		<div class="sidebar-name">
-		<div class="sidebar-name-arrow"><br /></div>
-		<h3><?php _e('Available Widgets'); ?> <span id="removing-widget"><?php _ex('Deactivate', 'removing-widget'); ?> <span></span></span></h3></div>
+			<div class="sidebar-name-arrow"><br /></div>
+			<h3><?php _e('Available Widgets'); ?> <span id="removing-widget"><?php _ex('Deactivate', 'removing-widget'); ?> <span></span></span></h3>
+		</div>
 		<div class="widget-holder">
-		<p class="description"><?php _e('Drag widgets from here to a sidebar on the right to activate them. Drag widgets back here to deactivate them and delete their settings.'); ?></p>
-		<div id="widget-list">
-		<?php wp_list_widgets(); ?>
-		</div>
-		<br class='clear' />
+			<div class="sidebar-description">
+				<p class="description"><?php _e('To activate a widget drag it to a sidebar or click on it. To deactivate a widget and delete its settings, drag it back.'); ?></p>
+			</div>
+			<div id="widget-list">
+				<?php wp_list_widgets(); ?>
+			</div>
+			<br class='clear' />
 		</div>
 		<br class="clear" />
 	</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>
-			</div>
 			<div class="widget-holder inactive">
-				<?php wp_list_widget_controls( $registered_sidebar['id'] ); ?>
+				<?php wp_list_widget_controls( $registered_sidebar['id'], $registered_sidebar['name'] ); ?>
 				<div class="clear"></div>
 			</div>
 		</div>
-<?php
+		<?php
+
+	} else {
+		$theme_sidebars[$sidebar] = $registered_sidebar;
 	}
 }
+
 ?>
-
 </div>
 </div>
-
-<div class="widget-liquid-right">
-<div id="widgets-right">
 <?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;
+$single_sidebar_class = '';
+$sidebars_count = count( $theme_sidebars );
 
+if ( $sidebars_count > 1 ) {
+	$split = ceil( $sidebars_count / 2 );
+} else {
+	$single_sidebar_class = ' class="single-sidebar"';
+}
+
+?>
+<div class="widget-liquid-right">
+<div id="widgets-right"<?php echo $single_sidebar_class; ?>>
+<div class="sidebars-column-1">
+<?php
+
+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 ?>
+		<?php wp_list_widget_controls( $sidebar, $registered_sidebar['name'] ); // Show the control forms for each of the widgets in this sidebar ?>
 	</div>
-<?php
+	<?php
+
 	$i++;
-} ?>
+}
+
+?>
 </div>
 </div>
-<form action="" method="post">
+</div>
+<form method="post">
 <?php wp_nonce_field( 'save-sidebar-widgets', '_wpnonce_widgets', false ); ?>
 </form>
 <br class="clear" />
 </div>
 
+<div class="widgets-chooser">
+	<ul class="widgets-chooser-sidebars"></ul>
+	<div class="widgets-chooser-actions">
+		<button class="button-secondary"><?php _e( 'Cancel' ); ?></button>
+		<button class="button-primary"><?php _e( 'Add Widget' ); ?></button>
+	</div>
+</div>
+
 <?php
 
 /**