Index: multiblock.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/multiblock/multiblock.module,v
retrieving revision 1.1.2.1
diff -u -r1.1.2.1 multiblock.module
--- multiblock.module	18 May 2008 00:39:13 -0000	1.1.2.1
+++ multiblock.module	28 May 2008 22:12:12 -0000
@@ -79,22 +79,17 @@
   usort($blocks, 'multiblock_block_sort');
   
   // Fetch "Add Instance" form.
-  $form = drupal_get_form('multiblock_add_block', $blocks);
+  $form = drupal_get_form('multiblock_add_form', $blocks);
  
   // Get an array of existing blocks.
-  $result = db_query('SELECT * FROM {multiblock} ORDER BY title'); 
-  $multiblocks = array();
-  while ($multiblock = db_fetch_object($result)) {
-    $multiblocks[] = $multiblock;
-  }
-  
+  $multiblocks = multiblock_get_block();
   return theme('multiblock_general', $form, $multiblocks);
 }
 
 /**
  * "Add Instance" form.
  */
-function multiblock_add_block($blocks) {
+function multiblock_add_form($blocks) {
   $form = array();
   $form['title'] = array(
     '#type' => 'textfield',
@@ -128,6 +123,26 @@
 }
 
 /**
+ * Add a multiblock instance.
+ *
+ * @param $original_block
+ *   The original block for which an instance is being created.
+ * @param $block_instance
+ *   An object contain information about the particular block instance.
+ * @return
+ *   The delta of the newly added block.
+ */
+function multiblock_add($original_block, $block_instance) {
+  // Create new delta for block instance.
+  $delta = db_next_id('{multiblock}_delta');
+  $sql = "INSERT INTO {multiblock}
+          (delta, title, module, orig_delta, multi_settings)
+          VALUES (%d, '%s', '%s', '%s', %d)";
+  db_query($sql, $delta, $block_instance->title, $original_block->module, $original_block->delta, $block_instance->mb_enbabled);
+  return $delta;
+}
+
+/**
  * Callback that deletes the block instance with a delta of arg(2)
  * and redirects the user back to the "Manage Block Instances" form.
  */
@@ -149,7 +164,7 @@
 /**
  * Validate "Add Block Instance" form.
  */
-function multiblock_add_block_validate($form_id, $form_values) {
+function multiblock_add_form_validate($form_id, $form_values) {
   // Make sure we are getting a valid block to add.
   if (!preg_match('/^.+\*\*\*MB\*\*\*.+$/', $form_values['block'])) {
     form_set_error('block', t('Bad block module input, contact administrator'));
@@ -158,7 +173,7 @@
   // Make sure the block and delta exist.
   $orig_block = multiblock_blockinfo_from_form($form_values['block']);
   if (!module_hook($orig_block['module'], 'block') ||
-    !array_key_exists($orig_block['delta'], module_invoke($orig_block['module'], 'block', 'list'))) {
+    !array_key_exists($orig_block->delta, module_invoke($orig_block['module'], 'block', 'list'))) {
     form_set_error('block', t('Module or doesn\t exist, contact administrator'));
   }
 }
@@ -166,17 +181,16 @@
 /**
  * Add block instance to database from "Add Block Instance" form.
  */
-function multiblock_add_block_submit($form_id, $form_values) {
-  // Create new delta for block instance.
-  $delta = db_next_id('{multiblock}_delta');
+function multiblock_add_form_submit($form_id, $form_values) {
   // Get the original block info.
   $orig_block = multiblock_blockinfo_from_form($form_values['block']);
   // Check whether this module is multiblock enabled.
-  $mb_enabled = (int)(module_invoke($orig_block['module'], 'block', 'mb_enabled') == 'mb_enabled');
-  $sql = "INSERT INTO {multiblock}
-          (delta, title, module, orig_delta, multi_settings)
-          VALUES (%d, '%s', '%s', '%s', %d)";
-  db_query($sql, $delta, $form_values['title'], $orig_block['module'], $orig_block['delta'], $mb_enabled);
+  $mb_enabled = (int) module_invoke($orig_block['module'], 'block', 'mb_enabled') == 'mb_enabled';
+  // Create block instance information.
+  $orig_block = (object) $orig_block;
+  $instance = (object) array('title' => $form_values['title'], 'mb_enabled' => $mb_enabled);
+  // Add the block instance.
+  multiblock_add($orig_block, $instance);
   drupal_set_message(t('Block instance %instance created.', array('%instance' => $form_values['title'])));
 }
 
