Make WordPress Core

Ticket #13019: multiple_category_jumpmenus.patch

File multiple_category_jumpmenus.patch, 1.7 KB (added by t31os_, 16 years ago)

Adds counter to allow simultaneous use of category widget dropdown jump menus

  • default-widgets.php

     
    424424        }
    425425
    426426        function widget( $args, $instance ) {
     427                static $widget_number = 0;
     428                $widget_number++;
    427429                extract( $args );
    428430
    429431                $title = apply_filters('widget_title', empty( $instance['title'] ) ? __( 'Categories' ) : $instance['title'], $instance, $this->id_base);
     
    439441
    440442                if ( $d ) {
    441443                        $cat_args['show_option_none'] = __('Select Category');
    442                         wp_dropdown_categories(apply_filters('widget_categories_dropdown_args', $cat_args));
     444                        $dropdown_name = $cat_args['name'] = 'category_jumpmenu' . $widget_number;
     445                        wp_dropdown_categories( apply_filters( 'widget_categories_dropdown_args' , $cat_args ) );
    443446?>
    444447
    445448<script type='text/javascript'>
    446449/* <![CDATA[ */
    447         var dropdown = document.getElementById("cat");
    448         function onCatChange() {
    449                 if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
    450                         location.href = "<?php echo home_url(); ?>/?cat="+dropdown.options[dropdown.selectedIndex].value;
     450        var dropdown<?php echo $widget_number; ?> = document.getElementById("<?php echo $dropdown_name; ?>");
     451        function on<?php echo $dropdown_name; ?>Change() {
     452                if ( dropdown<?php echo $widget_number; ?>.options[dropdown<?php echo $widget_number; ?>.selectedIndex].value > 0 ) {
     453                        location.href = "<?php echo home_url(); ?>/?cat="+dropdown<?php echo $widget_number; ?>.options[dropdown<?php echo $widget_number; ?>.selectedIndex].value;
    451454                }
    452455        }
    453         dropdown.onchange = onCatChange;
     456        dropdown<?php echo $widget_number; ?>.onchange = on<?php echo $dropdown_name; ?>Change;
    454457/* ]]> */
    455458</script>
    456459