Ticket #4169: widgets.2.diff
File widgets.2.diff, 2.9 KB (added by , 18 years ago) |
---|
-
2.2/wp-includes/widgets.php
43 43 $i = count($wp_registered_sidebars) + 1; 44 44 45 45 $defaults = array( 46 'name' => sprintf(__('Sidebar %d'), count($wp_registered_sidebars) + 1 ), 46 'name' => sprintf(__('Sidebar %d'), $i ), 47 'id' => "sidebar-$i", 47 48 'before_widget' => '<li id="%1$s" class="widget %2$s">', 48 49 'after_widget' => "</li>\n", 49 50 'before_title' => '<h2 class="widgettitle">', … … 52 53 53 54 $sidebar = array_merge($defaults, $args); 54 55 55 if ( ! isset($sidebar['id']) ) $sidebar['id'] = sanitize_title($sidebar['name']);56 56 $wp_registered_sidebars[$sidebar['id']] = $sidebar; 57 57 58 58 return $sidebar['id']; … … 220 220 /* Internal Functions */ 221 221 222 222 function wp_get_sidebars_widgets($update = true) { 223 global $wp_registered_widgets ;223 global $wp_registered_widgets, $wp_registered_sidebars; 224 224 225 225 $sidebars_widgets = get_option('sidebars_widgets'); 226 226 $_sidebars_widgets = array(); … … 246 246 unset($_sidebars_widgets[$index][$i]); 247 247 } 248 248 $_sidebars_widgets['array_version'] = 2; 249 $sidebars_widgets = $_sidebars_widgets; 250 unset($_sidebars_widgets); 251 252 case 2 : 253 $sidebars = array_keys( $wp_registered_sidebars ); 254 if ( !empty( $sidebars ) ) { 255 // Move the known-good ones first 256 foreach ( $sidebars as $id ) { 257 if ( array_key_exists( $id, $sidebars_widgets ) ) { 258 $_sidebars_widgets[$id] = $sidebars_widgets[$id]; 259 unset($sidebars_widgets[$id], $sidebars[$id]); 260 } 261 } 262 263 // Assign to each unmatched registered sidebar the first available orphan 264 unset( $sidebars_widgets[ 'array_version' ] ); 265 while ( ( $sidebar = array_shift( $sidebars ) ) && $widgets = array_shift( $sidebars_widgets ) ) 266 $_sidebars_widgets[ $sidebar ] = $widgets; 267 268 $_sidebars_widgets['array_version'] = 3; 269 $sidebars_widgets = $_sidebars_widgets; 270 unset($_sidebars_widgets); 271 } 272 249 273 if ( $update ) 250 update_option('sidebars_widgets', $_sidebars_widgets); 251 break; 252 case 2 : 253 $_sidebars_widgets = $sidebars_widgets; 254 break; 274 update_option('sidebars_widgets', $sidebars_widgets); 255 275 } 256 276 257 unset($ _sidebars_widgets['array_version']);277 unset($sidebars_widgets['array_version']); 258 278 259 return $ _sidebars_widgets;279 return $sidebars_widgets; 260 280 } 261 281 262 282 function wp_set_sidebars_widgets( $sidebars_widgets ) { … … 543 563 <script lang='javascript'><!-- 544 564 var dropdown = document.getElementById("cat"); 545 565 function onCatChange() { 546 location.href = " ?cat="+dropdown.options[dropdown.selectedIndex].value;566 location.href = "<?php echo get_option('siteurl'); ?>/?cat="+dropdown.options[dropdown.selectedIndex].value; 547 567 } 548 568 dropdown.onchange = onCatChange; 549 569 --></script>