Changeset 42343 for trunk/src/wp-admin/includes/widgets.php
- Timestamp:
- 11/30/2017 11:09:33 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-admin/includes/widgets.php
r42217 r42343 23 23 24 24 foreach ( $sort as $widget ) { 25 if ( in_array( $widget['callback'], $done, true ) ) // We already showed this multi-widget25 if ( in_array( $widget['callback'], $done, true ) ) { // We already showed this multi-widget 26 26 continue; 27 } 27 28 28 29 $sidebar = is_active_widget( $widget['callback'], $widget['id'], false, false ); 29 $done[] = $widget['callback'];30 31 if ( ! isset( $widget['params'][0] ) ) 30 $done[] = $widget['callback']; 31 32 if ( ! isset( $widget['params'][0] ) ) { 32 33 $widget['params'][0] = array(); 33 34 $args = array( 'widget_id' => $widget['id'], 'widget_name' => $widget['name'], '_display' => 'template' ); 35 36 if ( isset($wp_registered_widget_controls[$widget['id']]['id_base']) && isset($widget['params'][0]['number']) ) { 37 $id_base = $wp_registered_widget_controls[$widget['id']]['id_base']; 38 $args['_temp_id'] = "$id_base-__i__"; 39 $args['_multi_num'] = next_widget_id_number($id_base); 40 $args['_add'] = 'multi'; 34 } 35 36 $args = array( 37 'widget_id' => $widget['id'], 38 'widget_name' => $widget['name'], 39 '_display' => 'template', 40 ); 41 42 if ( isset( $wp_registered_widget_controls[ $widget['id'] ]['id_base'] ) && isset( $widget['params'][0]['number'] ) ) { 43 $id_base = $wp_registered_widget_controls[ $widget['id'] ]['id_base']; 44 $args['_temp_id'] = "$id_base-__i__"; 45 $args['_multi_num'] = next_widget_id_number( $id_base ); 46 $args['_add'] = 'multi'; 41 47 } else { 42 48 $args['_add'] = 'single'; 43 if ( $sidebar ) 49 if ( $sidebar ) { 44 50 $args['_hide'] = '1'; 45 } 46 47 $args = wp_list_widget_controls_dynamic_sidebar( array( 0 => $args, 1 => $widget['params'][0] ) ); 51 } 52 } 53 54 $args = wp_list_widget_controls_dynamic_sidebar( 55 array( 56 0 => $args, 57 1 => $widget['params'][0], 58 ) 59 ); 48 60 call_user_func_array( 'wp_widget_control', $args ); 49 61 } … … 121 133 122 134 $widget_id = $params[0]['widget_id']; 123 $id = isset($params[0]['_temp_id']) ? $params[0]['_temp_id'] : $widget_id;124 $hidden = isset($params[0]['_hide']) ? ' style="display:none;"' : '';135 $id = isset( $params[0]['_temp_id'] ) ? $params[0]['_temp_id'] : $widget_id; 136 $hidden = isset( $params[0]['_hide'] ) ? ' style="display:none;"' : ''; 125 137 126 138 $params[0]['before_widget'] = "<div id='widget-{$i}_{$id}' class='widget'$hidden>"; 127 $params[0]['after_widget'] = "</div>";128 $params[0]['before_title'] = "%BEG_OF_TITLE%"; // deprecated129 $params[0]['after_title'] = "%END_OF_TITLE%"; // deprecated130 if ( is_callable( $wp_registered_widgets[ $widget_id]['callback'] ) ) {131 $wp_registered_widgets[ $widget_id]['_callback'] = $wp_registered_widgets[$widget_id]['callback'];132 $wp_registered_widgets[ $widget_id]['callback']= 'wp_widget_control';139 $params[0]['after_widget'] = '</div>'; 140 $params[0]['before_title'] = '%BEG_OF_TITLE%'; // deprecated 141 $params[0]['after_title'] = '%END_OF_TITLE%'; // deprecated 142 if ( is_callable( $wp_registered_widgets[ $widget_id ]['callback'] ) ) { 143 $wp_registered_widgets[ $widget_id ]['_callback'] = $wp_registered_widgets[ $widget_id ]['callback']; 144 $wp_registered_widgets[ $widget_id ]['callback'] = 'wp_widget_control'; 133 145 } 134 146 … … 137 149 138 150 /** 139 *140 151 * @global array $wp_registered_widgets 141 152 * … … 148 159 149 160 foreach ( $wp_registered_widgets as $widget_id => $widget ) { 150 if ( preg_match( '/' . $id_base . '-([0-9]+)$/', $widget_id, $matches ) ) 151 $number = max($number, $matches[1]); 161 if ( preg_match( '/' . $id_base . '-([0-9]+)$/', $widget_id, $matches ) ) { 162 $number = max( $number, $matches[1] ); 163 } 152 164 } 153 165 $number++; … … 173 185 global $wp_registered_widgets, $wp_registered_widget_controls, $sidebars_widgets; 174 186 175 $widget_id = $sidebar_args['widget_id'];176 $sidebar_id = isset( $sidebar_args['id']) ? $sidebar_args['id'] : false;177 $key = $sidebar_id ? array_search( $widget_id, $sidebars_widgets[$sidebar_id] ) : '-1'; // position of widget in sidebar178 $control = isset($wp_registered_widget_controls[$widget_id]) ? $wp_registered_widget_controls[$widget_id] : array();179 $widget = $wp_registered_widgets[$widget_id];180 181 $id_format = $widget['id'];182 $widget_number = isset( $control['params'][0]['number']) ? $control['params'][0]['number'] : '';183 $id_base = isset($control['id_base']) ? $control['id_base'] : $widget_id;184 $width = isset($control['width']) ? $control['width'] : '';185 $height = isset($control['height']) ? $control['height'] : '';186 $multi_number = isset($sidebar_args['_multi_num']) ? $sidebar_args['_multi_num'] : '';187 $add_new = isset($sidebar_args['_add']) ? $sidebar_args['_add'] : '';188 189 $before_form = isset( $sidebar_args['before_form'] ) ? $sidebar_args['before_form'] : '<form method="post">';190 $after_form = isset( $sidebar_args['after_form'] ) ? $sidebar_args['after_form'] : '</form>';187 $widget_id = $sidebar_args['widget_id']; 188 $sidebar_id = isset( $sidebar_args['id'] ) ? $sidebar_args['id'] : false; 189 $key = $sidebar_id ? array_search( $widget_id, $sidebars_widgets[ $sidebar_id ] ) : '-1'; // position of widget in sidebar 190 $control = isset( $wp_registered_widget_controls[ $widget_id ] ) ? $wp_registered_widget_controls[ $widget_id ] : array(); 191 $widget = $wp_registered_widgets[ $widget_id ]; 192 193 $id_format = $widget['id']; 194 $widget_number = isset( $control['params'][0]['number'] ) ? $control['params'][0]['number'] : ''; 195 $id_base = isset( $control['id_base'] ) ? $control['id_base'] : $widget_id; 196 $width = isset( $control['width'] ) ? $control['width'] : ''; 197 $height = isset( $control['height'] ) ? $control['height'] : ''; 198 $multi_number = isset( $sidebar_args['_multi_num'] ) ? $sidebar_args['_multi_num'] : ''; 199 $add_new = isset( $sidebar_args['_add'] ) ? $sidebar_args['_add'] : ''; 200 201 $before_form = isset( $sidebar_args['before_form'] ) ? $sidebar_args['before_form'] : '<form method="post">'; 202 $after_form = isset( $sidebar_args['after_form'] ) ? $sidebar_args['after_form'] : '</form>'; 191 203 $before_widget_content = isset( $sidebar_args['before_widget_content'] ) ? $sidebar_args['before_widget_content'] : '<div class="widget-content">'; 192 $after_widget_content = isset( $sidebar_args['after_widget_content'] ) ? $sidebar_args['after_widget_content'] : '</div>';204 $after_widget_content = isset( $sidebar_args['after_widget_content'] ) ? $sidebar_args['after_widget_content'] : '</div>'; 193 205 194 206 $query_arg = array( 'editwidget' => $widget['id'] ); … … 196 208 $query_arg['addnew'] = 1; 197 209 if ( $multi_number ) { 198 $query_arg['num'] = $multi_number;210 $query_arg['num'] = $multi_number; 199 211 $query_arg['base'] = $id_base; 200 212 } 201 213 } else { 202 214 $query_arg['sidebar'] = $sidebar_id; 203 $query_arg['key'] = $key;215 $query_arg['key'] = $key; 204 216 } 205 217 … … 208 220 * for a multi-widget control. 209 221 */ 210 if ( isset( $sidebar_args['_display']) && 'template' == $sidebar_args['_display'] && $widget_number ) {222 if ( isset( $sidebar_args['_display'] ) && 'template' == $sidebar_args['_display'] && $widget_number ) { 211 223 // number == -1 implies a template where id numbers are replaced by a generic '__i__' 212 224 $control['params'][0]['number'] = -1; 213 225 // With id_base widget id's are constructed like {$id_base}-{$id_number}. 214 if ( isset( $control['id_base']) )226 if ( isset( $control['id_base'] ) ) { 215 227 $id_format = $control['id_base'] . '-__i__'; 216 } 217 218 $wp_registered_widgets[$widget_id]['callback'] = $wp_registered_widgets[$widget_id]['_callback']; 219 unset($wp_registered_widgets[$widget_id]['_callback']); 228 } 229 } 230 231 $wp_registered_widgets[ $widget_id ]['callback'] = $wp_registered_widgets[ $widget_id ]['_callback']; 232 unset( $wp_registered_widgets[ $widget_id ]['_callback'] ); 220 233 221 234 $widget_title = esc_html( strip_tags( $sidebar_args['widget_name'] ) ); 222 $has_form = 'noform'; 223 224 echo $sidebar_args['before_widget']; ?> 235 $has_form = 'noform'; 236 237 echo $sidebar_args['before_widget']; 238 ?> 225 239 <div class="widget-top"> 226 240 <div class="widget-title-action"> … … 245 259 $has_form = call_user_func_array( $control['callback'], $control['params'] ); 246 260 } else { 247 echo "\t\t<p>" . __( 'There are no options for this widget.') . "</p>\n";261 echo "\t\t<p>" . __( 'There are no options for this widget.' ) . "</p>\n"; 248 262 } 249 263 … … 254 268 ?> 255 269 <?php echo $after_widget_content; ?> 256 <input type="hidden" name="widget-id" class="widget-id" value="<?php echo esc_attr( $id_format); ?>" />257 <input type="hidden" name="id_base" class="id_base" value="<?php echo esc_attr( $id_base); ?>" />258 <input type="hidden" name="widget-width" class="widget-width" value="<?php echo esc_attr( $width); ?>" />259 <input type="hidden" name="widget-height" class="widget-height" value="<?php echo esc_attr( $height); ?>" />260 <input type="hidden" name="widget_number" class="widget_number" value="<?php echo esc_attr( $widget_number); ?>" />261 <input type="hidden" name="multi_number" class="multi_number" value="<?php echo esc_attr( $multi_number); ?>" />262 <input type="hidden" name="add_new" class="add_new" value="<?php echo esc_attr( $add_new); ?>" />270 <input type="hidden" name="widget-id" class="widget-id" value="<?php echo esc_attr( $id_format ); ?>" /> 271 <input type="hidden" name="id_base" class="id_base" value="<?php echo esc_attr( $id_base ); ?>" /> 272 <input type="hidden" name="widget-width" class="widget-width" value="<?php echo esc_attr( $width ); ?>" /> 273 <input type="hidden" name="widget-height" class="widget-height" value="<?php echo esc_attr( $height ); ?>" /> 274 <input type="hidden" name="widget_number" class="widget_number" value="<?php echo esc_attr( $widget_number ); ?>" /> 275 <input type="hidden" name="multi_number" class="multi_number" value="<?php echo esc_attr( $multi_number ); ?>" /> 276 <input type="hidden" name="add_new" class="add_new" value="<?php echo esc_attr( $add_new ); ?>" /> 263 277 264 278 <div class="widget-control-actions"> … … 280 294 281 295 <div class="widget-description"> 282 <?php echo ( $widget_description = wp_widget_description( $widget_id) ) ? "$widget_description\n" : "$widget_title\n"; ?>296 <?php echo ( $widget_description = wp_widget_description( $widget_id ) ) ? "$widget_description\n" : "$widget_title\n"; ?> 283 297 </div> 284 298 <?php … … 289 303 290 304 /** 291 *292 305 * @param string $classes 293 306 * @return string 294 307 */ 295 function wp_widgets_access_body_class( $classes) {308 function wp_widgets_access_body_class( $classes ) { 296 309 return "$classes widgets_access "; 297 310 }
Note: See TracChangeset
for help on using the changeset viewer.