Make WordPress Core


Ignore:
Timestamp:
02/04/2008 08:38:48 PM (18 years ago)
Author:
ryan
Message:

Dashboard fixes from mdawaffe. No longer stomps sidebar. see #5750

File:
1 edited

Legend:

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

    r6556 r6717  
    5353    /* Hack #1
    5454     * The widget_control is overloaded.  It updates the widget's options AND echoes out the widget's HTML form.
    55      * Since we want to update before sending out any headers, we have to catchi it with an output buffer
     55     * Since we want to update before sending out any headers, we have to catch it with an output buffer,
    5656     */
    5757    ob_start();
    5858        /* There can be multiple widgets of the same type, but the widget_control for that
    59          * widget type needs only be called once.
     59         * widget type needs only be called once if it's a multi-widget.
    6060         */
    6161        $already_done = array();
     
    6565                continue;
    6666
    67             if ( is_callable( $control['callback'] ) )
     67            if ( is_callable( $control['callback'] ) ) {
    6868                call_user_func_array( $control['callback'], $control['params'] );
     69                $control_output = ob_get_contents();
     70                if ( false !== strpos( $control_output, '%i%' ) ) // if it's a multi-widget, only call control function once.
     71                    $already_done[] = $control['callback'];
     72            }
     73
     74            ob_clean();
    6975        }
    7076    ob_end_clean();
     
    7682
    7783    // Reset the key numbering and stare
    78     $new_sidebar = array_values( $_POST['widget-id'] );
     84    $new_sidebar = isset( $_POST['widget-id'] ) && is_array( $_POST['widget-id'] ) ? array_values( $_POST['widget-id'] ) : array();
    7985    $sidebars_widgets[$_POST['sidebar']] = $new_sidebar;
    8086    wp_set_sidebars_widgets( $sidebars_widgets );
Note: See TracChangeset for help on using the changeset viewer.