Index: multistep.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/multistep/multistep.module,v
retrieving revision 1.1.2.2.2.22
diff -U3 -r1.1.2.2.2.22 multistep.module
--- multistep.module	1 Sep 2009 14:03:39 -0000	1.1.2.2.2.22
+++ multistep.module	1 Sep 2009 19:56:35 -0000
@@ -259,13 +259,25 @@
             '#description' => t('Setting the Title field in a step other than the first one might create complications due to the possibility of having nodes without title. Enable ' . l('Automatic Nodetitles', 'http://drupal.org/project/auto_nodetitle') . ' for this content type to use this feature.'),
           );
         }
+        elseif ($field_name == 'taxonomy' && module_exists('taxonomy')) {
+          $vocabularies = taxonomy_get_vocabularies($type);
+          foreach ($vocabularies as $vid => $vocabulary) {
+            $form['multistep']['multistep_settings']['multistep_extra_fields']['multistep_extra_' . $field_name . '_' . $vid] = array(
+              '#type' => 'select',
+              '#title' => t('Taxonomy - ' . $vocabulary->name),
+              '#default_value' => variable_get('multistep_extra_' . $field_name . '_' . $vid . '_' . $type, 1),
+              '#options' => _multistep_get_steps($type),
+              '#description' => t('Select the step the ' . $vocabulary->name . ' field belongs to.'),
+            );
+          }
+        }
         else {
           $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.' . $title_warning),
+            '#description' => t('Select the step the ' . $field_value['label'] . ' field belongs to.'),
           );
         }
       }
@@ -334,7 +346,16 @@
   $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)
+      if ($field_name == 'taxonomy' && module_exists('taxonomy')) {
+        $vocabularies = taxonomy_get_vocabularies($type);
+        foreach ($vocabularies as $vid => $vocabulary) {
+          if ($step != 0 && $step != variable_get('multistep_extra_' . $field_name . '_' . $vid . '_' . $type, 1)
+          && variable_get('multistep_extra_' . $field_name . '_' . $vid . '_' . $type, 1) != 0) {
+            $form[$field_name]['tags'][$vid]['#access'] = FALSE;
+          }
+        }
+      }
+      elseif ($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;
       }
