wp/wp-admin/widgets.php
author ymh <ymh.work@gmail.com>
Thu, 07 Nov 2013 00:08:07 +0000
changeset 1 f6eb5a861d2f
parent 0 d970ebf37754
child 5 5e2f62d02dcd
permissions -rw-r--r--
remove unnessary files. Make timthumb work
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 * Widgets administration panel.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 * @package WordPress
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 * @subpackage Administration
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
/** WordPress Administration Bootstrap */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
require_once( dirname( __FILE__ ) . '/admin.php' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
/** WordPress Administration Widgets API */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
require_once(ABSPATH . 'wp-admin/includes/widgets.php');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
if ( ! current_user_can('edit_theme_options') )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
	wp_die( __( 'Cheatin&#8217; uh?' ));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
$widgets_access = get_user_setting( 'widgets_access' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
if ( isset($_GET['widgets-access']) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
	$widgets_access = 'on' == $_GET['widgets-access'] ? 'on' : 'off';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
	set_user_setting( 'widgets_access', $widgets_access );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
function wp_widgets_access_body_class($classes) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
	return "$classes widgets_access ";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
if ( 'on' == $widgets_access ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
	add_filter( 'admin_body_class', 'wp_widgets_access_body_class' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
	wp_enqueue_script('admin-widgets');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
	if ( wp_is_mobile() )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
		wp_enqueue_script( 'jquery-touch-punch' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
 * Fires early before the Widgets administration screen loads, after scripts are enqueued.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
 * @since 2.2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
do_action( 'sidebar_admin_setup' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
$title = __( 'Widgets' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
$parent_file = 'themes.php';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
get_current_screen()->add_help_tab( array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
'id'		=> 'overview',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
'title'		=> __('Overview'),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
'content'	=>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
	'<p>' . __('Widgets are independent sections of content that can be placed into any widgetized area provided by your theme (commonly called sidebars). To populate your sidebars/widget areas with individual widgets, drag and drop the title bars into the desired area. By default, only the first widget area is expanded. To populate additional widget areas, click on their title bars to expand them.') . '</p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
	<p>' . __('The Available Widgets section contains all the widgets you can choose from. Once you drag a widget into a sidebar, it will open to allow you to configure its settings. When you are happy with the widget settings, click the Save button and the widget will go live on your site. If you click Delete, it will remove the widget.') . '</p>'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
get_current_screen()->add_help_tab( array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
'id'		=> 'removing-reusing',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
'title'		=> __('Removing and Reusing'),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
'content'	=>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
	'<p>' . __('If you want to remove the widget but save its setting for possible future use, just drag it into the Inactive Widgets area. You can add them back anytime from there. This is especially helpful when you switch to a theme with fewer or different widget areas.') . '</p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
	<p>' . __('Widgets may be used multiple times. You can give each widget a title, to display on your site, but it&#8217;s not required.') . '</p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
	<p>' . __('Enabling Accessibility Mode, via Screen Options, allows you to use Add and Edit buttons instead of using drag and drop.') . '</p>'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
get_current_screen()->add_help_tab( array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
'id'		=> 'missing-widgets',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
'title'		=> __('Missing Widgets'),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
'content'	=>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
	'<p>' . __('Many themes show some sidebar widgets by default until you edit your sidebars, but they are not automatically displayed in your sidebar management tool. After you make your first widget change, you can re-add the default widgets by adding them from the Available Widgets area.') . '</p>' .
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
		'<p>' . __('When changing themes, there is often some variation in the number and setup of widget areas/sidebars and sometimes these conflicts make the transition a bit less smooth. If you changed themes and seem to be missing widgets, scroll down on this screen to the Inactive Widgets area, where all of your widgets and their settings will have been saved.') . '</p>'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
get_current_screen()->set_help_sidebar(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
	'<p><strong>' . __('For more information:') . '</strong></p>' .
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
	'<p>' . __('<a href="http://codex.wordpress.org/Appearance_Widgets_Screen" target="_blank">Documentation on Widgets</a>') . '</p>' .
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
	'<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
if ( ! current_theme_supports( 'widgets' ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
	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>.' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
// These are the widgets grouped by sidebar
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
$sidebars_widgets = wp_get_sidebars_widgets();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
if ( empty( $sidebars_widgets ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
	$sidebars_widgets = wp_get_widget_defaults();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
foreach ( $sidebars_widgets as $sidebar_id => $widgets ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
	if ( 'wp_inactive_widgets' == $sidebar_id )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
		continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
	if ( !isset( $wp_registered_sidebars[ $sidebar_id ] ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
		if ( ! empty( $widgets ) ) { // register the inactive_widgets area as sidebar
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
			register_sidebar(array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
				'name' => __( 'Inactive Sidebar (not used)' ),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
				'id' => $sidebar_id,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
				'class' => 'inactive-sidebar orphan-sidebar',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
				'description' => __( 'This sidebar is no longer available and does not show anywhere on your site. Remove each of the widgets below to fully remove this inactive sidebar.' ),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
				'before_widget' => '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
				'after_widget' => '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
				'before_title' => '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
				'after_title' => '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
			));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
		} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
			unset( $sidebars_widgets[ $sidebar_id ] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
// register the inactive_widgets area as sidebar
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
register_sidebar(array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
	'name' => __('Inactive Widgets'),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
	'id' => 'wp_inactive_widgets',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
	'class' => 'inactive-sidebar',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
	'description' => __( 'Drag widgets here to remove them from the sidebar but keep their settings.' ),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
	'before_widget' => '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
	'after_widget' => '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
	'before_title' => '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
	'after_title' => '',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
retrieve_widgets();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
// We're saving a widget without js
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
if ( isset($_POST['savewidget']) || isset($_POST['removewidget']) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
	$widget_id = $_POST['widget-id'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
	check_admin_referer("save-delete-widget-$widget_id");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
	$number = isset($_POST['multi_number']) ? (int) $_POST['multi_number'] : '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
	if ( $number ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
		foreach ( $_POST as $key => $val ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
			if ( is_array($val) && preg_match('/__i__|%i%/', key($val)) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
				$_POST[$key] = array( $number => array_shift($val) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
				break;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
	$sidebar_id = $_POST['sidebar'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
	$position = isset($_POST[$sidebar_id . '_position']) ? (int) $_POST[$sidebar_id . '_position'] - 1 : 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
	$id_base = $_POST['id_base'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
	$sidebar = isset($sidebars_widgets[$sidebar_id]) ? $sidebars_widgets[$sidebar_id] : array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
	// delete
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
	if ( isset($_POST['removewidget']) && $_POST['removewidget'] ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
		if ( !in_array($widget_id, $sidebar, true) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
			wp_redirect( admin_url('widgets.php?error=0') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
			exit;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
		$sidebar = array_diff( $sidebar, array($widget_id) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
		$_POST = array('sidebar' => $sidebar_id, 'widget-' . $id_base => array(), 'the-widget-id' => $widget_id, 'delete_widget' => '1');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
	$_POST['widget-id'] = $sidebar;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
	foreach ( (array) $wp_registered_widget_updates as $name => $control ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
		if ( $name != $id_base || !is_callable($control['callback']) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
			continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
		ob_start();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
			call_user_func_array( $control['callback'], $control['params'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
		ob_end_clean();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
		break;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
	$sidebars_widgets[$sidebar_id] = $sidebar;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
	// remove old position
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
	if ( !isset($_POST['delete_widget']) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
		foreach ( $sidebars_widgets as $key => $sb ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
			if ( is_array($sb) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
				$sidebars_widgets[$key] = array_diff( $sb, array($widget_id) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
		array_splice( $sidebars_widgets[$sidebar_id], $position, 0, $widget_id );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
	wp_set_sidebars_widgets($sidebars_widgets);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
	wp_redirect( admin_url('widgets.php?message=0') );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
	exit;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
// Output the widget form without js
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
if ( isset($_GET['editwidget']) && $_GET['editwidget'] ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
	$widget_id = $_GET['editwidget'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
	if ( isset($_GET['addnew']) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
		// Default to the first sidebar
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
		$keys = array_keys( $wp_registered_sidebars );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
		$sidebar = array_shift( $keys );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
		if ( isset($_GET['base']) && isset($_GET['num']) ) { // multi-widget
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
			// Copy minimal info from an existing instance of this widget to a new instance
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
			foreach ( $wp_registered_widget_controls as $control ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
				if ( $_GET['base'] === $control['id_base'] ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
					$control_callback = $control['callback'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
					$multi_number = (int) $_GET['num'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
					$control['params'][0]['number'] = -1;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
					$widget_id = $control['id'] = $control['id_base'] . '-' . $multi_number;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
					$wp_registered_widget_controls[$control['id']] = $control;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
					break;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
	if ( isset($wp_registered_widget_controls[$widget_id]) && !isset($control) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
		$control = $wp_registered_widget_controls[$widget_id];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
		$control_callback = $control['callback'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
	} elseif ( !isset($wp_registered_widget_controls[$widget_id]) && isset($wp_registered_widgets[$widget_id]) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
		$name = esc_html( strip_tags($wp_registered_widgets[$widget_id]['name']) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
	if ( !isset($name) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
		$name = esc_html( strip_tags($control['name']) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
	if ( !isset($sidebar) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
		$sidebar = isset($_GET['sidebar']) ? $_GET['sidebar'] : 'wp_inactive_widgets';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
	if ( !isset($multi_number) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
		$multi_number = isset($control['params'][0]['number']) ? $control['params'][0]['number'] : '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
	$id_base = isset($control['id_base']) ? $control['id_base'] : $control['id'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
	// show the widget form
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
	$width = ' style="width:' . max($control['width'], 350) . 'px"';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
	$key = isset($_GET['key']) ? (int) $_GET['key'] : 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
	require_once( ABSPATH . 'wp-admin/admin-header.php' ); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
	<div class="wrap">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
	<?php screen_icon(); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   233
	<h2><?php echo esc_html( $title ); ?></h2>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
	<div class="editwidget"<?php echo $width; ?>>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
	<h3><?php printf( __( 'Widget %s' ), $name ); ?></h3>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
	<form action="widgets.php" method="post">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
	<div class="widget-inside">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
	if ( is_callable( $control_callback ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
		call_user_func_array( $control_callback, $control['params'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
	else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   243
		echo '<p>' . __('There are no options for this widget.') . "</p>\n"; ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
	</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   245
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   246
	<p class="describe"><?php _e('Select both the sidebar for this widget and the position of the widget in that sidebar.'); ?></p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   247
	<div class="widget-position">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   248
	<table class="widefat"><thead><tr><th><?php _e('Sidebar'); ?></th><th><?php _e('Position'); ?></th></tr></thead><tbody>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   249
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   250
	foreach ( $wp_registered_sidebars as $sbname => $sbvalue ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   251
		echo "\t\t<tr><td><label><input type='radio' name='sidebar' value='" . esc_attr($sbname) . "'" . checked( $sbname, $sidebar, false ) . " /> $sbvalue[name]</label></td><td>";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   252
		if ( 'wp_inactive_widgets' == $sbname || 'orphaned_widgets' == substr( $sbname, 0, 16 ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
			echo '&nbsp;';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
		} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   255
			if ( !isset($sidebars_widgets[$sbname]) || !is_array($sidebars_widgets[$sbname]) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   256
				$j = 1;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   257
				$sidebars_widgets[$sbname] = array();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   258
			} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   259
				$j = count($sidebars_widgets[$sbname]);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   260
				if ( isset($_GET['addnew']) || !in_array($widget_id, $sidebars_widgets[$sbname], true) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   261
					$j++;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   262
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   263
			$selected = '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   264
			echo "\t\t<select name='{$sbname}_position'>\n";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   265
			echo "\t\t<option value=''>" . __('&mdash; Select &mdash;') . "</option>\n";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   266
			for ( $i = 1; $i <= $j; $i++ ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   267
				if ( in_array($widget_id, $sidebars_widgets[$sbname], true) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   268
					$selected = selected( $i, $key + 1, false );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   269
				echo "\t\t<option value='$i'$selected> $i </option>\n";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   270
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   271
			echo "\t\t</select>\n";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   272
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   273
		echo "</td></tr>\n";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   274
	} ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   275
	</tbody></table>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   276
	</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   277
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   278
	<div class="widget-control-actions">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   279
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   280
	if ( isset($_GET['addnew']) ) { ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   281
	<a href="widgets.php" class="button alignleft"><?php _e('Cancel'); ?></a>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   282
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   283
	} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   284
		submit_button( __( 'Delete' ), 'button alignleft', 'removewidget', false );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   285
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   286
	submit_button( __( 'Save Widget' ), 'button-primary alignright', 'savewidget', false ); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   287
	<input type="hidden" name="widget-id" class="widget-id" value="<?php echo esc_attr($widget_id); ?>" />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   288
	<input type="hidden" name="id_base" class="id_base" value="<?php echo esc_attr($id_base); ?>" />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   289
	<input type="hidden" name="multi_number" class="multi_number" value="<?php echo esc_attr($multi_number); ?>" />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   290
<?php	wp_nonce_field("save-delete-widget-$widget_id"); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   291
	<br class="clear" />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   292
	</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   293
	</form>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   294
	</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   295
	</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   296
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   297
	require_once( ABSPATH . 'wp-admin/admin-footer.php' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   298
	exit;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   299
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   300
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   301
$messages = array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   302
	__('Changes saved.')
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   303
);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   304
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   305
$errors = array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   306
	__('Error while saving.'),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   307
	__('Error in displaying the widget settings form.')
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   308
);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   309
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   310
require_once( ABSPATH . 'wp-admin/admin-header.php' ); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   311
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   312
<div class="wrap">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   313
<?php screen_icon(); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   314
<h2><?php echo esc_html( $title ); ?></h2>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   315
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   316
<?php if ( isset($_GET['message']) && isset($messages[$_GET['message']]) ) { ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   317
<div id="message" class="updated"><p><?php echo $messages[$_GET['message']]; ?></p></div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   318
<?php } ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   319
<?php if ( isset($_GET['error']) && isset($errors[$_GET['error']]) ) { ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   320
<div id="message" class="error"><p><?php echo $errors[$_GET['error']]; ?></p></div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   321
<?php } ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   322
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   323
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   324
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   325
 * Fires before the Widgets administration page content loads.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   326
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   327
 * @since 3.0.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   328
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   329
do_action( 'widgets_admin_page' ); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   330
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   331
<div class="widget-liquid-left">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   332
<div id="widgets-left">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   333
	<div id="available-widgets" class="widgets-holder-wrap">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   334
		<div class="sidebar-name">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   335
		<div class="sidebar-name-arrow"><br /></div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   336
		<h3><?php _e('Available Widgets'); ?> <span id="removing-widget"><?php _ex('Deactivate', 'removing-widget'); ?> <span></span></span></h3></div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   337
		<div class="widget-holder">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   338
		<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>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   339
		<div id="widget-list">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   340
		<?php wp_list_widgets(); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   341
		</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   342
		<br class='clear' />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   343
		</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   344
		<br class="clear" />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   345
	</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   346
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   347
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   348
foreach ( $wp_registered_sidebars as $sidebar => $registered_sidebar ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   349
	if ( false !== strpos( $registered_sidebar['class'], 'inactive-sidebar' ) || 'orphaned_widgets' == substr( $sidebar, 0, 16 ) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   350
		$wrap_class = 'widgets-holder-wrap';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   351
		if ( !empty( $registered_sidebar['class'] ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   352
			$wrap_class .= ' ' . $registered_sidebar['class'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   353
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   354
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   355
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   356
		<div class="<?php echo esc_attr( $wrap_class ); ?>">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   357
			<div class="sidebar-name">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   358
				<div class="sidebar-name-arrow"><br /></div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   359
				<h3><?php echo esc_html( $registered_sidebar['name'] ); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   360
					<span class="spinner"></span>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   361
				</h3>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   362
			</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   363
			<div class="widget-holder inactive">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   364
				<?php wp_list_widget_controls( $registered_sidebar['id'] ); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   365
				<div class="clear"></div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   366
			</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   367
		</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   368
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   369
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   370
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   371
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   372
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   373
</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   374
</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   375
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   376
<div class="widget-liquid-right">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   377
<div id="widgets-right">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   378
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   379
$i = 0;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   380
foreach ( $wp_registered_sidebars as $sidebar => $registered_sidebar ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   381
	if ( false !== strpos( $registered_sidebar['class'], 'inactive-sidebar' ) || 'orphaned_widgets' == substr( $sidebar, 0, 16 ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   382
		continue;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   383
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   384
	$wrap_class = 'widgets-holder-wrap';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   385
	if ( !empty( $registered_sidebar['class'] ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   386
		$wrap_class .= ' sidebar-' . $registered_sidebar['class'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   387
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   388
	if ( $i )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   389
		$wrap_class .= ' closed'; ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   390
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   391
	<div class="<?php echo esc_attr( $wrap_class ); ?>">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   392
	<div class="sidebar-name">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   393
	<div class="sidebar-name-arrow"><br /></div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   394
	<h3><?php echo esc_html( $registered_sidebar['name'] ); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   395
	<span class="spinner"></span></h3></div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   396
	<?php wp_list_widget_controls( $sidebar ); // Show the control forms for each of the widgets in this sidebar ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   397
	</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   398
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   399
	$i++;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   400
} ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   401
</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   402
</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   403
<form action="" method="post">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   404
<?php wp_nonce_field( 'save-sidebar-widgets', '_wpnonce_widgets', false ); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   405
</form>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   406
<br class="clear" />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   407
</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   408
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   409
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   410
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   411
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   412
 * Fires after the available widgets and sidebars have loaded, before the admin footer.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   413
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   414
 * @since 2.2.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   415
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   416
do_action( 'sidebar_admin_page' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   417
require_once( ABSPATH . 'wp-admin/admin-footer.php' );