Index: multistep.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/multistep/Attic/multistep.install,v
retrieving revision 1.1.2.1.2.8
diff -U3 -r1.1.2.1.2.8 multistep.install
--- multistep.install	23 Jul 2009 14:48:59 -0000	1.1.2.1.2.8
+++ multistep.install	26 Aug 2009 20:04:46 -0000
@@ -7,6 +7,8 @@
 function multistep_install() {
   // Create table.
   drupal_install_schema('multistep');
+  // Set multistep to a higher weight so that it allows extra fields to load first.
+  db_query("UPDATE {system} SET weight = 10 WHERE name = 'multistep'");
   // Clear cache to take into account the change in forms immediately.
   cache_clear_all('content_type_info', 'cache_content');
 }
@@ -58,6 +60,9 @@
       variable_del('multistep_steps_' . $content_type['type']);
       variable_del('multistep_buttons_' . $content_type['type']);
       variable_del('multistep_default_' . $content_type['type']);
+      foreach ($content_type['extra'] as $extra_field) {
+        variable_del('multistep_extra_' . $extra_field . '_' . $content_type['type']);
+      }
     }
     variable_del('multistep_button_prev');
     variable_del('multistep_button_next');
@@ -99,3 +104,8 @@
   }
   return array();
 }
+
+function multistep_update_6102() {
+  // Set multistep to a higher weight so that it allows extra CCK options to load first.
+  db_query("UPDATE {system} SET weight = 10 WHERE name = 'multistep'");
+}
Index: multistep.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/multistep/multistep.module,v
retrieving revision 1.1.2.2.2.19
diff -U3 -r1.1.2.2.2.19 multistep.module
--- multistep.module	23 Jul 2009 15:49:02 -0000	1.1.2.2.2.19
+++ multistep.module	26 Aug 2009 20:04:46 -0000
@@ -224,16 +224,27 @@
     '#options' => array('multistep' => t('Multistep form'), 'complete' => t('Complete form')),
     '#description' => t('Select which should be the default display of the form. <strong>Note: users without <em>toggle multistep</em> permissions will always see the form this way.</strong>'),
   );
-  if (module_exists('taxonomy')) {
-    $taxonomy = taxonomy_get_vocabularies($type);
-    if (!empty($taxonomy)) {
-      $form['multistep']['multistep_settings']['multistep_taxonomy'] = array(
-        '#type' => 'select',
-        '#title' => t('Taxonomy step'),
-        '#default_value' => variable_get('multistep_taxonomy_' . $type, 1),
-        '#options' => _multistep_get_steps($type),
-        '#description' => t('Select which step would you like the taxonomy fields to belong to.'),
-      );
+  $form['multistep']['multistep_settings']['multistep_extra_fields'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Extra Fields'),
+    '#description' => t('Select the steps you want the extra (non-CCK) fields to belong to.'),
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+    '#weight' => 2,
+    '#attributes' => array('id' => 'multistep-extra-fields'),
+  );
+  if (!empty($type)) {
+    $content_type = content_types($type);
+    foreach ($content_type['extra'] as $field_name => $field_value) {
+      if (!empty($field_value)) {
+        $form['multistep']['multistep_settings']['multistep_extra_fields']['multistep_extra_' . $field_name] = array(
+          '#type' => 'select',
+          '#title' => t($field_value['label']),
+          '#default_value' => variable_get('multistep_extra_' . $field_name . '_' . $type, 1),
+          '#options' => _multistep_get_steps($type),
+          '#description' => t('Select the step the ' . $field_value['label'] . ' field belongs to.'),
+        );
+      }
     }
   }
   // Hide settings if multistep is disabled.
@@ -281,10 +292,14 @@
     drupal_goto($_REQUEST['q'], array('redirect' => $dest));
   }
   $step = _multistep_get_current_step($type);
-  // This hides the taxonomy for steps in which it does not belong.
-  if (module_exists('taxonomy') && $form['taxonomy'] != NULL) {
-    if ($step != 0 && $step != variable_get('multistep_taxonomy_' . $type, 1) && variable_get('multistep_taxonomy_' . $type, 1) != 0) {
-      $form['taxonomy']['#access'] = FALSE;
+  // This hides extra fields for steps they don't belong in.
+  $content_type = content_types($type);
+  foreach ($content_type['extra'] as $field_name => $field_value) {
+    if (!empty($field_value)) {
+      if ($step != 0 && $step != variable_get('multistep_extra_' . $field_name . '_' . $type, 1)
+      && variable_get('multistep_extra_' . $field_name . '_' . $type, 1) != 0) {
+        $form[$field_name]['#access'] = FALSE;
+      }
     }
   }
   // This adds different submitting buttons (Previous, Save, Next, Done).
@@ -295,11 +310,6 @@
       '#submit' => array('multistep_previous'),
       '#weight' => 11,
     );
-    if ($step != 0) {
-      // This hides the node title and body for steps greater than 1.
-      $form['title']['#type'] = 'hidden';
-      $form['body_field']['#access'] = FALSE;
-    }
   }
   $form['buttons']['save'] = array(
     '#type' => 'submit',
