WordPress.org

Make WordPress Core

Changeset 5358


Ignore:
Timestamp:
04/30/07 20:02:02 (7 years ago)
Author:
ryan
Message:

Widget registration fixes from Andy. For 2.3. see #4169

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/widgets.php

    r5356 r5358  
    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", 
     
    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 
     
    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'); 
     
    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; 
    255     } 
    256  
    257     unset($_sidebars_widgets['array_version']); 
    258  
    259     return $_sidebars_widgets; 
     274                update_option('sidebars_widgets', $sidebars_widgets); 
     275    } 
     276 
     277    unset($sidebars_widgets['array_version']); 
     278 
     279    return $sidebars_widgets; 
    260280} 
    261281 
     
    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; 
Note: See TracChangeset for help on using the changeset viewer.