diff --git a/modules/block/block.module b/modules/block/block.module index 70b1d42..6dd0b0f 100644 --- a/modules/block/block.module +++ b/modules/block/block.module @@ -848,16 +848,20 @@ function _block_render_blocks($region_blocks) { if ($cacheable) { $cids = array(); + $keys = array(); foreach ($region_blocks as $key => $block) { if (!isset($block->content)) { if (($cid = _block_get_cache_id($block))) { $cids[] = $cid; + $keys[$cid] = $key; } } } if ($cids) { - $cached_blocks = cache_get_multiple($cids, 'cache_block'); + foreach (cache_get_multiple($cids, 'cache_block') as $cid => $cached_data) { + $cached_blocks[$keys[$cid]] = $cached_data; + } } } @@ -869,8 +873,8 @@ function _block_render_blocks($region_blocks) { unset($region_blocks[$key]); // Try fetching the block from the previously loaded cache entries. - if (($cid = _block_get_cache_id($block)) && isset($cached_blocks[$cid])) { - $array = $cached_blocks[$cid]->data; + if (isset($cached_blocks[$key])) { + $array = $cached_blocks[$key]->data; } else { $array = module_invoke($block->module, 'block_view', $block->delta);