diff --git a/modules/block/block.admin.inc b/modules/block/block.admin.inc index 3fd8280..7e6e513 100644 --- a/modules/block/block.admin.inc +++ b/modules/block/block.admin.inc @@ -96,10 +96,13 @@ function block_admin_display_form(&$form_state, $blocks, $theme = NULL) { /** * Process main blocks administration form submission. */ -function block_admin_display_form_submit($form, &$form_state) { - foreach ($form_state['values'] as $block) { +function block_admin_display_form_submit($form, &$form_state) { + $blocks = _block_rehash(); + foreach ($blocks as $block_data) { + $key = $block_data['module'] .'_'. $block_data['delta']; + $block = $form_state['values'][$key]; $block['status'] = $block['region'] != BLOCK_REGION_NONE; - $block['region'] = $block['status'] ? $block['region'] : ''; + $block['region'] = $block['status'] ? $block['region'] : ''; db_query("UPDATE {blocks} SET status = %d, weight = %d, region = '%s', throttle = %d WHERE module = '%s' AND delta = '%s' AND theme = '%s'", $block['status'], $block['weight'], $block['region'], isset($block['throttle']) ? $block['throttle'] : 0, $block['module'], $block['delta'], $block['theme']); } drupal_set_message(t('The block settings have been updated.'));