diff --git a/modules/block/block.admin.inc b/modules/block/block.admin.inc index 3fd8280..0424267 100644 --- a/modules/block/block.admin.inc +++ b/modules/block/block.admin.inc @@ -98,9 +98,13 @@ function block_admin_display_form(&$form_state, $blocks, $theme = NULL) { */ function block_admin_display_form_submit($form, &$form_state) { foreach ($form_state['values'] as $block) { - $block['status'] = $block['region'] != BLOCK_REGION_NONE; - $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']); + // Avoid illegal string offset when saving block admin: + // https://www.drupal.org/node/1680614#comment-7181392 + if (is_array($block)) { + $block['status'] = $block['region'] != BLOCK_REGION_NONE; + $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.')); cache_clear_all();