? 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".
  */
