~canonical-sysadmins/wordpress/5.1

« back to all changes in this revision

Viewing changes to wp-admin/widgets.php

  • Committer: Barry Price
  • Date: 2019-02-22 03:51:26 UTC
  • mfrom: (1.2.12 upstream)
  • Revision ID: barry.price@canonical.com-20190222035126-o28k38qs8jfyjsxt
Merge WP5.1 from upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
10
10
require_once( dirname( __FILE__ ) . '/admin.php' );
11
11
 
12
12
/** WordPress Administration Widgets API */
13
 
require_once(ABSPATH . 'wp-admin/includes/widgets.php');
 
13
require_once( ABSPATH . 'wp-admin/includes/widgets.php' );
14
14
 
15
15
if ( ! current_user_can( 'edit_theme_options' ) ) {
16
16
        wp_die(
21
21
}
22
22
 
23
23
$widgets_access = get_user_setting( 'widgets_access' );
24
 
if ( isset($_GET['widgets-access']) ) {
 
24
if ( isset( $_GET['widgets-access'] ) ) {
25
25
        check_admin_referer( 'widgets-access' );
26
26
 
27
27
        $widgets_access = 'on' == $_GET['widgets-access'] ? 'on' : 'off';
31
31
if ( 'on' == $widgets_access ) {
32
32
        add_filter( 'admin_body_class', 'wp_widgets_access_body_class' );
33
33
} else {
34
 
        wp_enqueue_script('admin-widgets');
 
34
        wp_enqueue_script( 'admin-widgets' );
35
35
 
36
 
        if ( wp_is_mobile() )
 
36
        if ( wp_is_mobile() ) {
37
37
                wp_enqueue_script( 'jquery-touch-punch' );
 
38
        }
38
39
}
39
40
 
40
41
/**
45
46
 */
46
47
do_action( 'sidebar_admin_setup' );
47
48
 
48
 
$title = __( 'Widgets' );
 
49
$title       = __( 'Widgets' );
49
50
$parent_file = 'themes.php';
50
51
 
51
 
get_current_screen()->add_help_tab( array(
52
 
'id'            => 'overview',
53
 
'title'         => __('Overview'),
54
 
'content'       =>
55
 
        '<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>
56
 
        <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>'
57
 
) );
58
 
get_current_screen()->add_help_tab( array(
59
 
'id'            => 'removing-reusing',
60
 
'title'         => __('Removing and Reusing'),
61
 
'content'       =>
62
 
        '<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>
63
 
        <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>
64
 
        <p>' . __('Enabling Accessibility Mode, via Screen Options, allows you to use Add and Edit buttons instead of using drag and drop.') . '</p>'
65
 
) );
66
 
get_current_screen()->add_help_tab( array(
67
 
'id'            => 'missing-widgets',
68
 
'title'         => __('Missing Widgets'),
69
 
'content'       =>
70
 
        '<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>' .
71
 
                '<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>'
72
 
) );
 
52
get_current_screen()->add_help_tab(
 
53
        array(
 
54
                'id'      => 'overview',
 
55
                'title'   => __( 'Overview' ),
 
56
                'content' =>
 
57
                                 '<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>
 
58
        <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>',
 
59
        )
 
60
);
 
61
get_current_screen()->add_help_tab(
 
62
        array(
 
63
                'id'      => 'removing-reusing',
 
64
                'title'   => __( 'Removing and Reusing' ),
 
65
                'content' =>
 
66
                                 '<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>
 
67
        <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>
 
68
        <p>' . __( 'Enabling Accessibility Mode, via Screen Options, allows you to use Add and Edit buttons instead of using drag and drop.' ) . '</p>',
 
69
        )
 
70
);
 
71
get_current_screen()->add_help_tab(
 
72
        array(
 
73
                'id'      => 'missing-widgets',
 
74
                'title'   => __( 'Missing Widgets' ),
 
75
                'content' =>
 
76
                                 '<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>' .
 
77
                                         '<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>',
 
78
        )
 
79
);
73
80
 
74
81
get_current_screen()->set_help_sidebar(
75
 
        '<p><strong>' . __('For more information:') . '</strong></p>' .
76
 
        '<p>' . __('<a href="https://codex.wordpress.org/Appearance_Widgets_Screen">Documentation on Widgets</a>') . '</p>' .
77
 
        '<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 
82
        '<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
 
83
        '<p>' . __( '<a href="https://codex.wordpress.org/Appearance_Widgets_Screen">Documentation on Widgets</a>' ) . '</p>' .
 
84
        '<p>' . __( '<a href="https://wordpress.org/support/">Support Forums</a>' ) . '</p>'
78
85
);
79
86
 
80
87
if ( ! current_theme_supports( 'widgets' ) ) {
84
91
// These are the widgets grouped by sidebar
85
92
$sidebars_widgets = wp_get_sidebars_widgets();
86
93
 
87
 
if ( empty( $sidebars_widgets ) )
 
94
if ( empty( $sidebars_widgets ) ) {
88
95
        $sidebars_widgets = wp_get_widget_defaults();
 
96
}
89
97
 
90
98
foreach ( $sidebars_widgets as $sidebar_id => $widgets ) {
91
 
        if ( 'wp_inactive_widgets' == $sidebar_id )
 
99
        if ( 'wp_inactive_widgets' == $sidebar_id ) {
92
100
                continue;
 
101
        }
93
102
 
94
103
        if ( ! is_registered_sidebar( $sidebar_id ) ) {
95
104
                if ( ! empty( $widgets ) ) { // register the inactive_widgets area as sidebar
96
 
                        register_sidebar(array(
97
 
                                'name' => __( 'Inactive Sidebar (not used)' ),
98
 
                                'id' => $sidebar_id,
99
 
                                'class' => 'inactive-sidebar orphan-sidebar',
100
 
                                '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.' ),
101
 
                                'before_widget' => '',
102
 
                                'after_widget' => '',
103
 
                                'before_title' => '',
104
 
                                'after_title' => '',
105
 
                        ));
 
105
                        register_sidebar(
 
106
                                array(
 
107
                                        'name'          => __( 'Inactive Sidebar (not used)' ),
 
108
                                        'id'            => $sidebar_id,
 
109
                                        'class'         => 'inactive-sidebar orphan-sidebar',
 
110
                                        '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.' ),
 
111
                                        'before_widget' => '',
 
112
                                        'after_widget'  => '',
 
113
                                        'before_title'  => '',
 
114
                                        'after_title'   => '',
 
115
                                )
 
116
                        );
106
117
                } else {
107
118
                        unset( $sidebars_widgets[ $sidebar_id ] );
108
119
                }
110
121
}
111
122
 
112
123
// register the inactive_widgets area as sidebar
113
 
register_sidebar(array(
114
 
        'name' => __('Inactive Widgets'),
115
 
        'id' => 'wp_inactive_widgets',
116
 
        'class' => 'inactive-sidebar',
117
 
        'description' => __( 'Drag widgets here to remove them from the sidebar but keep their settings.' ),
118
 
        'before_widget' => '',
119
 
        'after_widget' => '',
120
 
        'before_title' => '',
121
 
        'after_title' => '',
122
 
));
 
124
register_sidebar(
 
125
        array(
 
126
                'name'          => __( 'Inactive Widgets' ),
 
127
                'id'            => 'wp_inactive_widgets',
 
128
                'class'         => 'inactive-sidebar',
 
129
                'description'   => __( 'Drag widgets here to remove them from the sidebar but keep their settings.' ),
 
130
                'before_widget' => '',
 
131
                'after_widget'  => '',
 
132
                'before_title'  => '',
 
133
                'after_title'   => '',
 
134
        )
 
135
);
123
136
 
124
137
retrieve_widgets();
125
138
 
126
139
// We're saving a widget without js
127
 
if ( isset($_POST['savewidget']) || isset($_POST['removewidget']) ) {
 
140
if ( isset( $_POST['savewidget'] ) || isset( $_POST['removewidget'] ) ) {
128
141
        $widget_id = $_POST['widget-id'];
129
 
        check_admin_referer("save-delete-widget-$widget_id");
 
142
        check_admin_referer( "save-delete-widget-$widget_id" );
130
143
 
131
 
        $number = isset($_POST['multi_number']) ? (int) $_POST['multi_number'] : '';
 
144
        $number = isset( $_POST['multi_number'] ) ? (int) $_POST['multi_number'] : '';
132
145
        if ( $number ) {
133
146
                foreach ( $_POST as $key => $val ) {
134
 
                        if ( is_array($val) && preg_match('/__i__|%i%/', key($val)) ) {
135
 
                                $_POST[$key] = array( $number => array_shift($val) );
 
147
                        if ( is_array( $val ) && preg_match( '/__i__|%i%/', key( $val ) ) ) {
 
148
                                $_POST[ $key ] = array( $number => array_shift( $val ) );
136
149
                                break;
137
150
                        }
138
151
                }
139
152
        }
140
153
 
141
154
        $sidebar_id = $_POST['sidebar'];
142
 
        $position = isset($_POST[$sidebar_id . '_position']) ? (int) $_POST[$sidebar_id . '_position'] - 1 : 0;
 
155
        $position   = isset( $_POST[ $sidebar_id . '_position' ] ) ? (int) $_POST[ $sidebar_id . '_position' ] - 1 : 0;
143
156
 
144
157
        $id_base = $_POST['id_base'];
145
 
        $sidebar = isset($sidebars_widgets[$sidebar_id]) ? $sidebars_widgets[$sidebar_id] : array();
 
158
        $sidebar = isset( $sidebars_widgets[ $sidebar_id ] ) ? $sidebars_widgets[ $sidebar_id ] : array();
146
159
 
147
160
        // Delete.
148
 
        if ( isset($_POST['removewidget']) && $_POST['removewidget'] ) {
 
161
        if ( isset( $_POST['removewidget'] ) && $_POST['removewidget'] ) {
149
162
 
150
 
                if ( !in_array($widget_id, $sidebar, true) ) {
151
 
                        wp_redirect( admin_url('widgets.php?error=0') );
 
163
                if ( ! in_array( $widget_id, $sidebar, true ) ) {
 
164
                        wp_redirect( admin_url( 'widgets.php?error=0' ) );
152
165
                        exit;
153
166
                }
154
167
 
155
 
                $sidebar = array_diff( $sidebar, array($widget_id) );
156
 
                $_POST = array('sidebar' => $sidebar_id, 'widget-' . $id_base => array(), 'the-widget-id' => $widget_id, 'delete_widget' => '1');
 
168
                $sidebar = array_diff( $sidebar, array( $widget_id ) );
 
169
                $_POST   = array(
 
170
                        'sidebar'            => $sidebar_id,
 
171
                        'widget-' . $id_base => array(),
 
172
                        'the-widget-id'      => $widget_id,
 
173
                        'delete_widget'      => '1',
 
174
                );
157
175
 
158
176
                /**
159
177
                 * Fires immediately after a widget has been marked for deletion.
170
188
        $_POST['widget-id'] = $sidebar;
171
189
 
172
190
        foreach ( (array) $wp_registered_widget_updates as $name => $control ) {
173
 
                if ( $name != $id_base || !is_callable($control['callback']) )
 
191
                if ( $name != $id_base || ! is_callable( $control['callback'] ) ) {
174
192
                        continue;
 
193
                }
175
194
 
176
195
                ob_start();
177
196
                        call_user_func_array( $control['callback'], $control['params'] );
180
199
                break;
181
200
        }
182
201
 
183
 
        $sidebars_widgets[$sidebar_id] = $sidebar;
 
202
        $sidebars_widgets[ $sidebar_id ] = $sidebar;
184
203
 
185
204
        // Remove old position.
186
 
        if ( !isset($_POST['delete_widget']) ) {
 
205
        if ( ! isset( $_POST['delete_widget'] ) ) {
187
206
                foreach ( $sidebars_widgets as $key => $sb ) {
188
 
                        if ( is_array($sb) )
189
 
                                $sidebars_widgets[$key] = array_diff( $sb, array($widget_id) );
 
207
                        if ( is_array( $sb ) ) {
 
208
                                $sidebars_widgets[ $key ] = array_diff( $sb, array( $widget_id ) );
 
209
                        }
190
210
                }
191
 
                array_splice( $sidebars_widgets[$sidebar_id], $position, 0, $widget_id );
 
211
                array_splice( $sidebars_widgets[ $sidebar_id ], $position, 0, $widget_id );
192
212
        }
193
213
 
194
 
        wp_set_sidebars_widgets($sidebars_widgets);
195
 
        wp_redirect( admin_url('widgets.php?message=0') );
 
214
        wp_set_sidebars_widgets( $sidebars_widgets );
 
215
        wp_redirect( admin_url( 'widgets.php?message=0' ) );
196
216
        exit;
197
217
}
198
218
 
202
222
 
203
223
        if ( $_POST['removeinactivewidgets'] ) {
204
224
                foreach ( $sidebars_widgets['wp_inactive_widgets'] as $key => $widget_id ) {
205
 
                        $pieces = explode( '-', $widget_id );
 
225
                        $pieces       = explode( '-', $widget_id );
206
226
                        $multi_number = array_pop( $pieces );
207
 
                        $id_base = implode( '-', $pieces );
208
 
                        $widget = get_option( 'widget_' . $id_base );
209
 
                        unset( $widget[$multi_number] );
 
227
                        $id_base      = implode( '-', $pieces );
 
228
                        $widget       = get_option( 'widget_' . $id_base );
 
229
                        unset( $widget[ $multi_number ] );
210
230
                        update_option( 'widget_' . $id_base, $widget );
211
 
                        unset( $sidebars_widgets['wp_inactive_widgets'][$key] );
 
231
                        unset( $sidebars_widgets['wp_inactive_widgets'][ $key ] );
212
232
                }
213
233
 
214
234
                wp_set_sidebars_widgets( $sidebars_widgets );
219
239
}
220
240
 
221
241
// Output the widget form without js
222
 
if ( isset($_GET['editwidget']) && $_GET['editwidget'] ) {
 
242
if ( isset( $_GET['editwidget'] ) && $_GET['editwidget'] ) {
223
243
        $widget_id = $_GET['editwidget'];
224
244
 
225
 
        if ( isset($_GET['addnew']) ) {
 
245
        if ( isset( $_GET['addnew'] ) ) {
226
246
                // Default to the first sidebar
227
 
                $keys = array_keys( $wp_registered_sidebars );
 
247
                $keys    = array_keys( $wp_registered_sidebars );
228
248
                $sidebar = reset( $keys );
229
249
 
230
 
                if ( isset($_GET['base']) && isset($_GET['num']) ) { // multi-widget
 
250
                if ( isset( $_GET['base'] ) && isset( $_GET['num'] ) ) { // multi-widget
231
251
                        // Copy minimal info from an existing instance of this widget to a new instance
232
252
                        foreach ( $wp_registered_widget_controls as $control ) {
233
253
                                if ( $_GET['base'] === $control['id_base'] ) {
234
 
                                        $control_callback = $control['callback'];
235
 
                                        $multi_number = (int) $_GET['num'];
236
 
                                        $control['params'][0]['number'] = -1;
237
 
                                        $widget_id = $control['id'] = $control['id_base'] . '-' . $multi_number;
238
 
                                        $wp_registered_widget_controls[$control['id']] = $control;
 
254
                                        $control_callback                                = $control['callback'];
 
255
                                        $multi_number                                    = (int) $_GET['num'];
 
256
                                        $control['params'][0]['number']                  = -1;
 
257
                                        $widget_id                                       = $control['id'] = $control['id_base'] . '-' . $multi_number;
 
258
                                        $wp_registered_widget_controls[ $control['id'] ] = $control;
239
259
                                        break;
240
260
                                }
241
261
                        }
242
262
                }
243
263
        }
244
264
 
245
 
        if ( isset($wp_registered_widget_controls[$widget_id]) && !isset($control) ) {
246
 
                $control = $wp_registered_widget_controls[$widget_id];
 
265
        if ( isset( $wp_registered_widget_controls[ $widget_id ] ) && ! isset( $control ) ) {
 
266
                $control          = $wp_registered_widget_controls[ $widget_id ];
247
267
                $control_callback = $control['callback'];
248
 
        } elseif ( !isset($wp_registered_widget_controls[$widget_id]) && isset($wp_registered_widgets[$widget_id]) ) {
249
 
                $name = esc_html( strip_tags($wp_registered_widgets[$widget_id]['name']) );
250
 
        }
251
 
 
252
 
        if ( !isset($name) )
253
 
                $name = esc_html( strip_tags($control['name']) );
254
 
 
255
 
        if ( !isset($sidebar) )
256
 
                $sidebar = isset($_GET['sidebar']) ? $_GET['sidebar'] : 'wp_inactive_widgets';
257
 
 
258
 
        if ( !isset($multi_number) )
259
 
                $multi_number = isset($control['params'][0]['number']) ? $control['params'][0]['number'] : '';
260
 
 
261
 
        $id_base = isset($control['id_base']) ? $control['id_base'] : $control['id'];
 
268
        } elseif ( ! isset( $wp_registered_widget_controls[ $widget_id ] ) && isset( $wp_registered_widgets[ $widget_id ] ) ) {
 
269
                $name = esc_html( strip_tags( $wp_registered_widgets[ $widget_id ]['name'] ) );
 
270
        }
 
271
 
 
272
        if ( ! isset( $name ) ) {
 
273
                $name = esc_html( strip_tags( $control['name'] ) );
 
274
        }
 
275
 
 
276
        if ( ! isset( $sidebar ) ) {
 
277
                $sidebar = isset( $_GET['sidebar'] ) ? $_GET['sidebar'] : 'wp_inactive_widgets';
 
278
        }
 
279
 
 
280
        if ( ! isset( $multi_number ) ) {
 
281
                $multi_number = isset( $control['params'][0]['number'] ) ? $control['params'][0]['number'] : '';
 
282
        }
 
283
 
 
284
        $id_base = isset( $control['id_base'] ) ? $control['id_base'] : $control['id'];
262
285
 
263
286
        // Show the widget form.
264
 
        $width = ' style="width:' . max($control['width'], 350) . 'px"';
265
 
        $key = isset($_GET['key']) ? (int) $_GET['key'] : 0;
 
287
        $width = ' style="width:' . max( $control['width'], 350 ) . 'px"';
 
288
        $key   = isset( $_GET['key'] ) ? (int) $_GET['key'] : 0;
266
289
 
267
290
        require_once( ABSPATH . 'wp-admin/admin-header.php' ); ?>
268
291
        <div class="wrap">
272
295
 
273
296
        <form action="widgets.php" method="post">
274
297
        <div class="widget-inside">
275
 
<?php
276
 
        if ( is_callable( $control_callback ) )
 
298
        <?php
 
299
        if ( is_callable( $control_callback ) ) {
277
300
                call_user_func_array( $control_callback, $control['params'] );
278
 
        else
279
 
                echo '<p>' . __('There are no options for this widget.') . "</p>\n"; ?>
 
301
        } else {
 
302
                echo '<p>' . __( 'There are no options for this widget.' ) . "</p>\n";
 
303
        }
 
304
        ?>
280
305
        </div>
281
306
 
282
 
        <p class="describe"><?php _e('Select both the sidebar for this widget and the position of the widget in that sidebar.'); ?></p>
 
307
        <p class="describe"><?php _e( 'Select both the sidebar for this widget and the position of the widget in that sidebar.' ); ?></p>
283
308
        <div class="widget-position">
284
 
        <table class="widefat"><thead><tr><th><?php _e('Sidebar'); ?></th><th><?php _e('Position'); ?></th></tr></thead><tbody>
285
 
<?php
 
309
        <table class="widefat"><thead><tr><th><?php _e( 'Sidebar' ); ?></th><th><?php _e( 'Position' ); ?></th></tr></thead><tbody>
 
310
        <?php
286
311
        foreach ( $wp_registered_sidebars as $sbname => $sbvalue ) {
287
 
                echo "\t\t<tr><td><label><input type='radio' name='sidebar' value='" . esc_attr($sbname) . "'" . checked( $sbname, $sidebar, false ) . " /> $sbvalue[name]</label></td><td>";
 
312
                echo "\t\t<tr><td><label><input type='radio' name='sidebar' value='" . esc_attr( $sbname ) . "'" . checked( $sbname, $sidebar, false ) . " /> $sbvalue[name]</label></td><td>";
288
313
                if ( 'wp_inactive_widgets' == $sbname || 'orphaned_widgets' == substr( $sbname, 0, 16 ) ) {
289
314
                        echo '&nbsp;';
290
315
                } else {
291
 
                        if ( !isset($sidebars_widgets[$sbname]) || !is_array($sidebars_widgets[$sbname]) ) {
292
 
                                $j = 1;
293
 
                                $sidebars_widgets[$sbname] = array();
 
316
                        if ( ! isset( $sidebars_widgets[ $sbname ] ) || ! is_array( $sidebars_widgets[ $sbname ] ) ) {
 
317
                                $j                           = 1;
 
318
                                $sidebars_widgets[ $sbname ] = array();
294
319
                        } else {
295
 
                                $j = count($sidebars_widgets[$sbname]);
296
 
                                if ( isset($_GET['addnew']) || !in_array($widget_id, $sidebars_widgets[$sbname], true) )
 
320
                                $j = count( $sidebars_widgets[ $sbname ] );
 
321
                                if ( isset( $_GET['addnew'] ) || ! in_array( $widget_id, $sidebars_widgets[ $sbname ], true ) ) {
297
322
                                        $j++;
 
323
                                }
298
324
                        }
299
325
                        $selected = '';
300
326
                        echo "\t\t<select name='{$sbname}_position'>\n";
301
 
                        echo "\t\t<option value=''>" . __('&mdash; Select &mdash;') . "</option>\n";
 
327
                        echo "\t\t<option value=''>" . __( '&mdash; Select &mdash;' ) . "</option>\n";
302
328
                        for ( $i = 1; $i <= $j; $i++ ) {
303
 
                                if ( in_array($widget_id, $sidebars_widgets[$sbname], true) )
 
329
                                if ( in_array( $widget_id, $sidebars_widgets[ $sbname ], true ) ) {
304
330
                                        $selected = selected( $i, $key + 1, false );
 
331
                                }
305
332
                                echo "\t\t<option value='$i'$selected> $i </option>\n";
306
333
                        }
307
334
                        echo "\t\t</select>\n";
308
335
                }
309
336
                echo "</td></tr>\n";
310
 
        } ?>
 
337
        }
 
338
        ?>
311
339
        </tbody></table>
312
340
        </div>
313
341
 
314
342
        <div class="widget-control-actions">
315
 
<?php
316
 
        if ( isset($_GET['addnew']) ) { ?>
317
 
        <a href="widgets.php" class="button alignleft"><?php _e('Cancel'); ?></a>
318
 
<?php
 
343
        <?php
 
344
        if ( isset( $_GET['addnew'] ) ) {
 
345
                ?>
 
346
        <a href="widgets.php" class="button alignleft"><?php _e( 'Cancel' ); ?></a>
 
347
                <?php
319
348
        } else {
320
349
                submit_button( __( 'Delete' ), 'alignleft', 'removewidget', false );
321
350
        }
322
 
        submit_button( __( 'Save Widget' ), 'primary alignright', 'savewidget', false ); ?>
323
 
        <input type="hidden" name="widget-id" class="widget-id" value="<?php echo esc_attr($widget_id); ?>" />
324
 
        <input type="hidden" name="id_base" class="id_base" value="<?php echo esc_attr($id_base); ?>" />
325
 
        <input type="hidden" name="multi_number" class="multi_number" value="<?php echo esc_attr($multi_number); ?>" />
326
 
<?php   wp_nonce_field("save-delete-widget-$widget_id"); ?>
 
351
        submit_button( __( 'Save Widget' ), 'primary alignright', 'savewidget', false );
 
352
        ?>
 
353
        <input type="hidden" name="widget-id" class="widget-id" value="<?php echo esc_attr( $widget_id ); ?>" />
 
354
        <input type="hidden" name="id_base" class="id_base" value="<?php echo esc_attr( $id_base ); ?>" />
 
355
        <input type="hidden" name="multi_number" class="multi_number" value="<?php echo esc_attr( $multi_number ); ?>" />
 
356
        <?php   wp_nonce_field( "save-delete-widget-$widget_id" ); ?>
327
357
        <br class="clear" />
328
358
        </div>
329
359
        </form>
330
360
        </div>
331
361
        </div>
332
 
<?php
 
362
        <?php
333
363
        require_once( ABSPATH . 'wp-admin/admin-footer.php' );
334
364
        exit;
335
365
}
336
366
 
337
367
$messages = array(
338
 
        __('Changes saved.')
 
368
        __( 'Changes saved.' ),
339
369
);
340
370
 
341
371
$errors = array(
342
 
        __('Error while saving.'),
343
 
        __('Error in displaying the widget settings form.')
 
372
        __( 'Error while saving.' ),
 
373
        __( 'Error in displaying the widget settings form.' ),
344
374
);
345
375
 
346
 
require_once( ABSPATH . 'wp-admin/admin-header.php' ); ?>
 
376
require_once( ABSPATH . 'wp-admin/admin-header.php' );
 
377
?>
347
378
 
348
379
<div class="wrap">
349
 
<h1 class="wp-heading-inline"><?php
 
380
<h1 class="wp-heading-inline">
 
381
<?php
350
382
echo esc_html( $title );
351
 
?></h1>
 
383
?>
 
384
</h1>
352
385
 
353
386
<?php
354
387
if ( current_user_can( 'customize' ) ) {
355
388
        printf(
356
389
                ' <a class="page-title-action hide-if-no-customize" href="%1$s">%2$s</a>',
357
 
                esc_url( add_query_arg(
358
 
                        array(
359
 
                                array( 'autofocus' => array( 'panel' => 'widgets' ) ),
360
 
                                'return' => urlencode( remove_query_arg( wp_removable_query_args(), wp_unslash( $_SERVER['REQUEST_URI'] ) ) )
361
 
                        ),
362
 
                        admin_url( 'customize.php' )
363
 
                ) ),
 
390
                esc_url(
 
391
                        add_query_arg(
 
392
                                array(
 
393
                                        array( 'autofocus' => array( 'panel' => 'widgets' ) ),
 
394
                                        'return' => urlencode( remove_query_arg( wp_removable_query_args(), wp_unslash( $_SERVER['REQUEST_URI'] ) ) ),
 
395
                                ),
 
396
                                admin_url( 'customize.php' )
 
397
                        )
 
398
                ),
364
399
                __( 'Manage with Live Preview' )
365
400
        );
366
401
}
 
402
 
 
403
$nonce = wp_create_nonce( 'widgets-access' );
367
404
?>
 
405
<div class="widget-access-link">
 
406
        <a id="access-on" href="widgets.php?widgets-access=on&_wpnonce=<?php echo urlencode( $nonce ); ?>"><?php _e( 'Enable accessibility mode' ); ?></a><a id="access-off" href="widgets.php?widgets-access=off&_wpnonce=<?php echo urlencode( $nonce ); ?>"><?php _e( 'Disable accessibility mode' ); ?></a>
 
407
</div>
368
408
 
369
409
<hr class="wp-header-end">
370
410
 
371
 
<?php if ( isset($_GET['message']) && isset($messages[$_GET['message']]) ) { ?>
372
 
<div id="message" class="updated notice is-dismissible"><p><?php echo $messages[$_GET['message']]; ?></p></div>
 
411
<?php if ( isset( $_GET['message'] ) && isset( $messages[ $_GET['message'] ] ) ) { ?>
 
412
<div id="message" class="updated notice is-dismissible"><p><?php echo $messages[ $_GET['message'] ]; ?></p></div>
373
413
<?php } ?>
374
 
<?php if ( isset($_GET['error']) && isset($errors[$_GET['error']]) ) { ?>
375
 
<div id="message" class="error"><p><?php echo $errors[$_GET['error']]; ?></p></div>
 
414
<?php if ( isset( $_GET['error'] ) && isset( $errors[ $_GET['error'] ] ) ) { ?>
 
415
<div id="message" class="error"><p><?php echo $errors[ $_GET['error'] ]; ?></p></div>
376
416
<?php } ?>
377
417
 
378
418
<?php
381
421
 *
382
422
 * @since 3.0.0
383
423
 */
384
 
do_action( 'widgets_admin_page' ); ?>
 
424
do_action( 'widgets_admin_page' );
 
425
?>
385
426
 
386
427
<div class="widget-liquid-left">
387
428
<div id="widgets-left">
395
436
                </div>
396
437
                <div class="widget-holder">
397
438
                        <div class="sidebar-description">
398
 
                                <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>
 
439
                                <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>
399
440
                        </div>
400
441
                        <div id="widget-list">
401
442
                                <?php wp_list_widgets(); ?>
411
452
foreach ( $wp_registered_sidebars as $sidebar => $registered_sidebar ) {
412
453
        if ( false !== strpos( $registered_sidebar['class'], 'inactive-sidebar' ) || 'orphaned_widgets' == substr( $sidebar, 0, 16 ) ) {
413
454
                $wrap_class = 'widgets-holder-wrap';
414
 
                if ( !empty( $registered_sidebar['class'] ) )
 
455
                if ( ! empty( $registered_sidebar['class'] ) ) {
415
456
                        $wrap_class .= ' ' . $registered_sidebar['class'];
 
457
                }
416
458
 
417
459
                $is_inactive_widgets = 'wp_inactive_widgets' == $registered_sidebar['id'];
418
460
                ?>
427
469
                                                        <?php
428
470
                                                        $attributes = array( 'id' => 'inactive-widgets-control-remove' );
429
471
 
430
 
                                                        if ( empty($sidebars_widgets['wp_inactive_widgets']) ) {
 
472
                                                        if ( empty( $sidebars_widgets['wp_inactive_widgets'] ) ) {
431
473
                                                                $attributes['disabled'] = '';
432
474
                                                        }
433
475
 
447
489
                <?php
448
490
 
449
491
        } else {
450
 
                $theme_sidebars[$sidebar] = $registered_sidebar;
 
492
                $theme_sidebars[ $sidebar ] = $registered_sidebar;
451
493
        }
452
494
}
453
495
 
456
498
</div>
457
499
<?php
458
500
 
459
 
$i = $split = 0;
 
501
$i                    = $split = 0;
460
502
$single_sidebar_class = '';
461
 
$sidebars_count = count( $theme_sidebars );
 
503
$sidebars_count       = count( $theme_sidebars );
462
504
 
463
505
if ( $sidebars_count > 1 ) {
464
506
        $split = ceil( $sidebars_count / 2 );
474
516
 
475
517
foreach ( $theme_sidebars as $sidebar => $registered_sidebar ) {
476
518
        $wrap_class = 'widgets-holder-wrap';
477
 
        if ( !empty( $registered_sidebar['class'] ) )
 
519
        if ( ! empty( $registered_sidebar['class'] ) ) {
478
520
                $wrap_class .= ' sidebar-' . $registered_sidebar['class'];
 
521
        }
479
522
 
480
 
        if ( $i > 0 )
 
523
        if ( $i > 0 ) {
481
524
                $wrap_class .= ' closed';
 
525
        }
482
526
 
483
527
        if ( $split && $i == $split ) {
484
528
                ?>