Changeset 11427 for trunk/wp-includes/widgets.php
- Timestamp:
- 05/22/2009 12:08:51 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/widgets.php
r11380 r11427 192 192 193 193 // We need to update the data 194 if ( !$this->updated && !empty($_POST['sidebar']) ) { 195 196 // Tells us what sidebar to put the data in 197 $sidebar = (string) $_POST['sidebar']; 198 199 $sidebars_widgets = wp_get_sidebars_widgets(); 200 if ( isset($sidebars_widgets[$sidebar]) ) 201 $this_sidebar =& $sidebars_widgets[$sidebar]; 194 if ( $this->updated ) 195 return; 196 197 $sidebars_widgets = wp_get_sidebars_widgets(); 198 199 if ( isset($_POST['delete_widget']) && $_POST['delete_widget'] ) { 200 // Delete the settings for this instance of the widget 201 if ( isset($_POST['the-widget-id']) ) 202 $del_id = $_POST['the-widget-id']; 202 203 else 203 $this_sidebar = array(); 204 205 if ( isset($_POST['delete_widget']) && $_POST['delete_widget'] ) { 206 // Delete the settings for this instance of the widget 207 if ( isset($_POST['widget-id']) ) 208 $del_id = $_POST['widget-id']; 204 return; 205 206 if ( isset($wp_registered_widgets[$del_id]['params'][0]['number']) ) { 207 $number = $wp_registered_widgets[$del_id]['params'][0]['number']; 208 209 if ( $this->id_base . '-' . $number == $del_id ) 210 unset($all_instances[$number]); 211 } 212 } else { 213 if ( isset($_POST['widget-' . $this->id_base]) && is_array($_POST['widget-' . $this->id_base]) ) { 214 $settings = $_POST['widget-' . $this->id_base]; 215 } elseif ( isset($_POST['id_base']) && $_POST['id_base'] == $this->id_base ) { 216 $num = $_POST['multi_number'] ? (int) $_POST['multi_number'] : (int) $_POST['widget_number']; 217 $settings = array( $num => array() ); 218 } else { 219 return; 220 } 221 222 foreach ( $settings as $number => $new_instance ) { 223 $new_instance = stripslashes_deep($new_instance); 224 $this->_set($number); 225 226 if ( isset($all_instances[$number]) ) 227 $instance = $this->update($new_instance, $all_instances[$number]); 209 228 else 210 return; 211 212 if ( $this->_get_display_callback() == $wp_registered_widgets[$del_id]['callback'] && isset($wp_registered_widgets[$del_id]['params'][0]['number']) ) { 213 $number = $wp_registered_widgets[$del_id]['params'][0]['number']; 214 215 if ( $this->id_base . '-' . $number == $del_id ) { 216 unset($all_instances[$number]); 217 } 218 } 219 } else { 220 if ( isset($_POST['widget-' . $this->id_base]) && is_array($_POST['widget-' . $this->id_base]) ) { 221 $settings = $_POST['widget-' . $this->id_base]; 222 } else { 223 $num = $_POST['multi_number'] ? (int) $_POST['multi_number'] : (int) $_POST['widget_number']; 224 $settings = array( $num => array() ); 225 } 226 227 foreach ( $settings as $number => $new_instance ) { 228 $new_instance = stripslashes_deep($new_instance); 229 $this->_set($number); 230 231 if ( isset($all_instances[$number]) ) 232 $instance = $this->update($new_instance, $all_instances[$number]); 233 else 234 $instance = $this->update($new_instance, array()); 235 236 // filters the widget's settings before saving, return false to cancel saving (keep the old settings if updating) 237 $instance = apply_filters('widget_update_callback', $instance, $new_instance, $this); 238 if ( false !== $instance ) 239 $all_instances[$number] = $instance; 240 } 229 $instance = $this->update($new_instance, array()); 230 231 // filters the widget's settings before saving, return false to cancel saving (keep the old settings if updating) 232 $instance = apply_filters('widget_update_callback', $instance, $new_instance, $this); 233 if ( false !== $instance ) 234 $all_instances[$number] = $instance; 235 236 break; // run only once 241 237 } 242 243 $this->save_settings($all_instances); 244 $this->updated = true;245 }238 } 239 240 $this->save_settings($all_instances); 241 $this->updated = true; 246 242 } 247 243
Note: See TracChangeset
for help on using the changeset viewer.