Ticket #10300: 10300.8.diff
| File 10300.8.diff, 4.7 KB (added by , 17 years ago) |
|---|
-
wp-includes/default-widgets.php
605 605 $this->WP_Widget('recent-comments', __('Recent Comments'), $widget_ops); 606 606 $this->alt_option_name = 'widget_recent_comments'; 607 607 608 if ( is_active_widget(false, false, $this->id_base) ) 609 add_action( 'wp_head', array(&$this, 'recent_comments_style') ); 608 add_action( 'wp_head', array(&$this, 'recent_comments_style') ); 610 609 611 610 add_action( 'comment_post', array(&$this, 'flush_widget_cache') ); 612 611 add_action( 'wp_set_comment_status', array(&$this, 'flush_widget_cache') ); 613 612 } 614 613 615 function recent_comments_style() { ?> 614 function recent_comments_style() { 615 if ( !is_active_widget(false, false, $this->id_base) ) 616 return; 617 ?> 616 618 <style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style> 617 619 <?php 618 620 } -
wp-includes/widgets.php
962 962 // If loading from front page, consult $_wp_sidebars_widgets rather than options 963 963 // to see if wp_convert_widget_settings() has made manipulations in memory. 964 964 if ( is_admin() ) { 965 $sidebars_widgets = get_option('sidebars_widgets', array( ));965 $sidebars_widgets = get_option('sidebars_widgets', array('array_version' => 3)); 966 966 } else { 967 967 if ( empty($_wp_sidebars_widgets) ) 968 $ sidebars_widgets = get_option('sidebars_widgets', array());969 else 970 $sidebars_widgets = &$_wp_sidebars_widgets;968 $_wp_sidebars_widgets = get_option('sidebars_widgets', array('array_version' => 3)); 969 970 $sidebars_widgets = $_wp_sidebars_widgets; 971 971 } 972 972 $_sidebars_widgets = array(); 973 973 … … 1024 1024 } 1025 1025 } 1026 1026 1027 // Assign to each unmatched registered sidebar the first available orphan 1028 unset( $sidebars_widgets[ 'array_version' ] ); 1029 while ( ( $sidebar = array_shift( $sidebars ) ) && $widgets = array_shift( $sidebars_widgets ) ) 1030 $_sidebars_widgets[ $sidebar ] = $widgets; 1027 // move the rest to wp_inactive_widgets 1028 if ( !isset($_sidebars_widgets['wp_inactive_widgets']) ) 1029 $_sidebars_widgets['wp_inactive_widgets'] = array(); 1030 1031 if ( !empty($sidebars_widgets) ) { 1032 foreach ( $sidebars_widgets as $lost => $val ) { 1033 if ( is_array($val) ) 1034 $_sidebars_widgets['wp_inactive_widgets'] = array_merge( (array) $_sidebars_widgets['wp_inactive_widgets'], $val ); 1035 } 1036 } 1031 1037 1032 $_sidebars_widgets['array_version'] = 3;1033 1038 $sidebars_widgets = $_sidebars_widgets; 1034 1039 unset($_sidebars_widgets); 1035 1040 } 1036 1041 1042 $sidebars_widgets['array_version'] = 3; 1037 1043 if ( $update && is_admin() ) 1038 1044 update_option('sidebars_widgets', $sidebars_widgets); 1039 1045 } 1040 1046 1047 if ( !is_admin() ) 1048 $_wp_sidebars_widgets = $sidebars_widgets; 1049 1041 1050 if ( isset($sidebars_widgets['array_version']) ) 1042 1051 unset($sidebars_widgets['array_version']); 1043 1052 … … 1086 1095 * @return array 1087 1096 */ 1088 1097 function wp_convert_widget_settings($base_name, $option_name, $settings) { 1089 global $_wp_sidebars_widgets;1090 1098 // This test may need expanding. 1091 $single = false;1099 $single = $changed = false; 1092 1100 if ( empty($settings) ) { 1093 1101 $single = true; 1094 1102 } else { … … 1107 1115 1108 1116 // If loading from the front page, update sidebar in memory but don't save to options 1109 1117 if ( is_admin() ) { 1110 $sidebars_widgets = get_option('sidebars_widgets' );1118 $sidebars_widgets = get_option('sidebars_widgets', array('array_version' => 3)); 1111 1119 } else { 1112 1120 if ( empty($GLOBALS['_wp_sidebars_widgets']) ) 1113 $GLOBALS['_wp_sidebars_widgets'] = get_option('sidebars_widgets' );1121 $GLOBALS['_wp_sidebars_widgets'] = get_option('sidebars_widgets', array('array_version' => 3)); 1114 1122 $sidebars_widgets = &$GLOBALS['_wp_sidebars_widgets']; 1115 1123 } 1116 1117 foreach ( (array) $sidebars_widgets as $index => $sidebar ) { 1118 if ( is_array($sidebar) ) { 1119 foreach ( $sidebar as $i => $name ) { 1120 if ( $base_name == $name ) { 1121 $sidebars_widgets[$index][$i] = "$name-2"; 1122 break 2; 1124 1125 if ( isset($sidebars_widgets['array_version']) && $sidebars_widgets['array_version'] == 3 ) { 1126 foreach ( (array) $sidebars_widgets as $index => $sidebar ) { 1127 if ( is_array($sidebar) ) { 1128 foreach ( $sidebar as $i => $name ) { 1129 if ( $base_name == $name ) { 1130 $sidebars_widgets[$index][$i] = "$name-2"; 1131 $changed = true; 1132 break 2; 1133 } 1123 1134 } 1124 1135 } 1125 1136 } 1137 1138 if ( is_admin() && $changed ) 1139 update_option('sidebars_widgets', $sidebars_widgets); 1126 1140 } 1127 1128 if ( is_admin() )1129 update_option('sidebars_widgets', $sidebars_widgets);1130 1141 } 1131 1142 1132 1143 $settings['_multiwidget'] = 1;