summaryrefslogtreecommitdiff
path: root/modules/block/block.module
diff options
context:
space:
mode:
Diffstat (limited to 'modules/block/block.module')
-rw-r--r--modules/block/block.module14
1 files changed, 8 insertions, 6 deletions
diff --git a/modules/block/block.module b/modules/block/block.module
index 405a9537a..d2dde25e9 100644
--- a/modules/block/block.module
+++ b/modules/block/block.module
@@ -386,18 +386,20 @@ function _block_rehash($theme = NULL) {
// Gather the blocks defined by modules.
foreach (module_implements('block_info') as $module) {
$module_blocks = module_invoke($module, 'block_info');
+ $delta_list = array();
foreach ($module_blocks as $delta => $block) {
// Compile a condition to retrieve this block from the database.
- $condition = db_and()
- ->condition('module', $module)
- ->condition('delta', $delta);
- $or->condition($condition);
// Add identifiers.
+ $delta_list[] = $delta;
$block['module'] = $module;
- $block['delta'] = $delta;
- $block['theme'] = $theme;
+ $block['delta'] = $delta;
+ $block['theme'] = $theme;
$current_blocks[$module][$delta] = $block;
}
+ if (!empty($delta_list)) {
+ $condition = db_and()->condition('module', $module)->condition('delta', $delta_list);
+ $or->condition($condition);
+ }
}
// Save the blocks defined in code for alter context.
$code_blocks = $current_blocks;