WordPress.org

Make WordPress Core

Ticket #4169: widgets.2.diff

File widgets.2.diff, 2.9 KB (added by andy, 11 years ago)

undo last patch, no more using name as id

  • 2.2/wp-includes/widgets.php

     
    4343        $i = count($wp_registered_sidebars) + 1; 
    4444 
    4545        $defaults = array( 
    46                 'name' => sprintf(__('Sidebar %d'), count($wp_registered_sidebars) + 1 ), 
     46                'name' => sprintf(__('Sidebar %d'), $i ), 
     47                'id' => "sidebar-$i", 
    4748                'before_widget' => '<li id="%1$s" class="widget %2$s">', 
    4849                'after_widget' => "</li>\n", 
    4950                'before_title' => '<h2 class="widgettitle">', 
     
    5253 
    5354        $sidebar = array_merge($defaults, $args); 
    5455 
    55         if ( ! isset($sidebar['id']) ) $sidebar['id'] = sanitize_title($sidebar['name']); 
    5656        $wp_registered_sidebars[$sidebar['id']] = $sidebar; 
    5757 
    5858        return $sidebar['id']; 
     
    220220/* Internal Functions */ 
    221221 
    222222function wp_get_sidebars_widgets($update = true) { 
    223         global $wp_registered_widgets; 
     223        global $wp_registered_widgets, $wp_registered_sidebars; 
    224224 
    225225        $sidebars_widgets = get_option('sidebars_widgets'); 
    226226        $_sidebars_widgets = array(); 
     
    246246                                unset($_sidebars_widgets[$index][$i]); 
    247247                        } 
    248248                        $_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 
    249273                        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); 
    255275        } 
    256276 
    257         unset($_sidebars_widgets['array_version']); 
     277        unset($sidebars_widgets['array_version']); 
    258278 
    259         return $_sidebars_widgets; 
     279        return $sidebars_widgets; 
    260280} 
    261281 
    262282function wp_set_sidebars_widgets( $sidebars_widgets ) { 
     
    543563<script lang='javascript'><!-- 
    544564    var dropdown = document.getElementById("cat"); 
    545565    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; 
    547567    } 
    548568    dropdown.onchange = onCatChange; 
    549569--></script>