? 366788.patch Index: multiblock.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/multiblock/multiblock.module,v retrieving revision 1.1.4.13 diff -u -r1.1.4.13 multiblock.module --- multiblock.module 27 Jan 2009 16:27:00 -0000 1.1.4.13 +++ multiblock.module 9 Feb 2009 04:57:28 -0000 @@ -35,7 +35,6 @@ $blocks = multiblock_get_block(NULL); $list = array(); foreach ($blocks as $block) { -// $list[$block->delta] = array('info' => check_plain($block->title)); $list[$block->delta] = array('info' => $block->title); } return $list; @@ -72,7 +71,8 @@ /** * Dispatch a hook_block call to it's respective module. Paramater $delta * is the new multiblock delta that we're using and $op is the op we are - * dispatching. + * dispatching. We also invoke hook_multiblock_alter which allows modules + * to modify the returned block after the original block module was invoked. */ function multiblock_call_block($delta, $op, $edit) { $result = db_query("SELECT module, orig_delta, delta, multi_settings FROM {multiblock} WHERE delta='%s'", $delta); @@ -85,16 +85,36 @@ ); } $block = module_invoke($block_info->module, 'block', $op, $block_info->orig_delta, $edit); -// if ($op == 'view') { -// $block['orig_module'] = $block_info->module; -// $block['orig_delta'] = $block_info->orig_delta; -// } + + $multiblock_info = array( + 'orig_module' => $block_info->module, + 'orig_delta' => $block_info->orig_delta, + 'module' => 'multiblock', + 'delta' => $block_info->delta, + 'multi_settings' => $block_info->multi_settings, + ); + + if ($op == 'configure') { + $block['multiblock_info'] = array( + '#type' => 'value', + '#value' => $multiblock_info, + ); + } + else { + $block['multiblock_info'] = $multiblock_info; + } + drupal_alter('multiblock', $block, $op, $edit); return $block; } // No such multiblock, shouldn't ever happen. return; } +function multiblock_multiblock_alter(&$block, $op, $edit) { + if ($op == 'view') + $block['content'] .= 'HELLO!'; +} + /** * Page callback for the "Manage Block Instances page". */