Index: modules/taxonomy/taxonomy.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/taxonomy/taxonomy.admin.inc,v
retrieving revision 1.7
diff -u -r1.7 taxonomy.admin.inc
--- modules/taxonomy/taxonomy.admin.inc	12 Nov 2007 19:06:33 -0000	1.7
+++ modules/taxonomy/taxonomy.admin.inc	19 Nov 2007 11:30:33 -0000
@@ -52,62 +52,68 @@
     'required' => 0,
     'weight' => 0,
   );
-  $form['name'] = array('#type' => 'textfield',
+  $form['vocab_identification'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Identification'),
+    '#collapsible' => TRUE,
+  ); 
+  $form['vocab_identification']['name'] = array('#type' => 'textfield',
     '#title' => t('Vocabulary name'),
     '#default_value' => $edit['name'],
     '#maxlength' => 255,
-    '#description' => t('The name for this vocabulary. Example: "Topic".'),
+    '#description' => t('The name for this vocabulary. <em>"Tags"</em>.'),
     '#required' => TRUE,
   );
-  $form['description'] = array('#type' => 'textarea',
+  $form['vocab_identification']['description'] = array('#type' => 'textarea',
     '#title' => t('Description'),
     '#default_value' => $edit['description'],
-    '#description' => t('Description of the vocabulary; can be used by modules.'),
+    '#description' => t('Description of the vocabulary to be displayed on taxonomy/term pages and RSS feeds.'),
   );
-  $form['help'] = array('#type' => 'textfield',
+  $form['vocab_identification']['help'] = array('#type' => 'textfield',
     '#title' => t('Help text'),
     '#maxlength' => 255,
     '#default_value' => $edit['help'],
-    '#description' => t('Instructions to present to the user when choosing a term.'),
+    '#description' => t('Instructions to present to the user when selecting terms. <em>"Enter a comma separated list of words".</em>'),
   );
-  $form['nodes'] = array('#type' => 'checkboxes',
+   $form['vocab_content_types'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Content types'),
+    '#collapsible' => TRUE,
+  );
+  $form['vocab_content_types']['nodes'] = array('#type' => 'checkboxes',
     '#title' => t('Content types'),
     '#default_value' => $edit['nodes'],
     '#options' => node_get_types('names'),
-    '#description' => t('A list of content types you would like to categorize using this vocabulary.'),
+    '#description' => t('Select content types to categorize using this vocabulary.'),
   );
-  $form['hierarchy'] = array('#type' => 'radios',
-    '#title' => t('Hierarchy'),
-    '#default_value' => $edit['hierarchy'],
-    '#options' => array(t('Disabled'), t('Single'), t('Multiple')),
-    '#description' => t('Allows <a href="@help-url">a tree-like hierarchy</a> between terms of this vocabulary.', array('@help-url' => url('admin/help/taxonomy', array('absolute' => TRUE)))),
-  );
-  $form['relations'] = array('#type' => 'checkbox',
-    '#title' => t('Related terms'),
-    '#default_value' => $edit['relations'],
-    '#description' => t('Allows <a href="@help-url">related terms</a> in this vocabulary.', array('@help-url' => url('admin/help/taxonomy', array('absolute' => TRUE)))),
+  $form['vocab_settings'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Settings'),
+    '#collapsible' => TRUE,
   );
-  $form['tags'] = array('#type' => 'checkbox',
+  $form['vocab_settings']['tags'] = array('#type' => 'checkbox',
     '#title' => t('Free tagging'),
     '#default_value' => $edit['tags'],
     '#description' => t('Content is categorized by typing terms instead of choosing from a list.'),
   );
-  $form['multiple'] = array('#type' => 'checkbox',
+  $form['vocab_settings']['multiple'] = array('#type' => 'checkbox',
     '#title' => t('Multiple select'),
     '#default_value' => $edit['multiple'],
     '#description' => t('Allows posts to have more than one term from this vocabulary (always true for free tagging).'),
   );
-  $form['required'] = array('#type' => 'checkbox',
+  $form['vocab_settings']['required'] = array('#type' => 'checkbox',
     '#title' => t('Required'),
     '#default_value' => $edit['required'],
-    '#description' => t('If enabled, every post <strong>must</strong> have at least one term in this vocabulary.'),
+    '#description' => t('At least one term in this vocabulary must be selected when submitting a post.'),
   );
-  $form['weight'] = array('#type' => 'weight',
+  $form['vocab_settings']['weight'] = array('#type' => 'weight',
     '#title' => t('Weight'),
     '#default_value' => $edit['weight'],
-    '#description' => t('In listings, the heavier vocabularies will sink and the lighter vocabularies will be positioned nearer the top.'),
+    '#description' => t('Vocabularies are displayed in ascending order by weight.'),
+  );
+  $form['vocab_structure']['relations'] = array('#type' => 'value',
+    '#value' => '0',
   );
-
   $form['submit'] = array('#type' => 'submit', '#value' => t('Save'));
   if (isset($edit['vid'])) {
     $form['delete'] = array('#type' => 'submit', '#value' => t('Delete'));
@@ -237,7 +243,12 @@
     'tid' => NULL,
     'weight' => 0,
   );
-  $form['name'] = array(
+   $form['identification'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Identification'),
+    '#collapsible' => TRUE,
+  );
+  $form['identification']['name'] = array(
     '#type' => 'textfield',
     '#title' => t('Term name'),
     '#default_value' => $edit['name'],
@@ -245,40 +256,38 @@
     '#description' => t('The name of this term.'),
     '#required' => TRUE);
 
-  $form['description'] = array(
+  $form['identification']['description'] = array(
     '#type' => 'textarea',
     '#title' => t('Description'),
     '#default_value' => $edit['description'],
     '#description' => t('A description of the term.'));
 
-  if ($vocabulary->hierarchy) {
-    $parent = array_keys(taxonomy_get_parents($edit['tid']));
-    $children = taxonomy_get_tree($vocabulary->vid, $edit['tid']);
-
-    // A term can't be the child of itself, nor of its children.
-    foreach ($children as $child) {
-      $exclude[] = $child->tid;
-    }
-    $exclude[] = $edit['tid'];
+  $form['advanced'] = array(
+    '#type' => 'fieldset',
+    '#title' => 'Advanced options',
+    '#collapsible' => TRUE,
+    '#collapsed' => TRUE,
+  );
+  
+  $parent = array_keys(taxonomy_get_parents($edit['tid']));
+  $children = taxonomy_get_tree($vocabulary->vid, $edit['tid']);
+
+  // A term can't be the child of itself, nor of its children.
+  foreach ($children as $child) {
+    $exclude[] = $child->tid;
+  }
+  $exclude[] = $edit['tid'];
+  
+  $form['advanced']['parent'] = _taxonomy_term_select(t('Parents'), 'parent', $parent, $vocabulary->vid, t('Parent terms') .'.', 1, '<'. t('root') .'>', $exclude);
 
-    if ($vocabulary->hierarchy == 1) {
-      $form['parent'] = _taxonomy_term_select(t('Parent'), 'parent', $parent, $vocabulary->vid, t('Parent term') .'.', 0, '<'. t('root') .'>', $exclude);
-    }
-    elseif ($vocabulary->hierarchy == 2) {
-      $form['parent'] = _taxonomy_term_select(t('Parents'), 'parent', $parent, $vocabulary->vid, t('Parent terms') .'.', 1, '<'. t('root') .'>', $exclude);
-    }
-  }
-
-  if ($vocabulary->relations) {
-    $form['relations'] = _taxonomy_term_select(t('Related terms'), 'relations', array_keys(taxonomy_get_related($edit['tid'])), $vocabulary->vid, NULL, 1, '<'. t('none') .'>', array($edit['tid']));
-  }
+  $form['advanced']['relations'] = _taxonomy_term_select(t('Related terms'), 'relations', array_keys(taxonomy_get_related($edit['tid'])), $vocabulary->vid, NULL, 1, '<'. t('none') .'>', array($edit['tid']));
 
-  $form['synonyms'] = array(
+  $form['advanced']['synonyms'] = array(
     '#type' => 'textarea',
     '#title' => t('Synonyms'),
     '#default_value' => implode("\n", taxonomy_get_synonyms($edit['tid'])),
     '#description' => t('Synonyms of this term, one synonym per line.'));
-  $form['weight'] = array(
+  $form['advanced']['weight'] = array(
     '#type' => 'weight',
     '#title' => t('Weight'),
     '#default_value' => $edit['weight'],
Index: modules/taxonomy/taxonomy.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/taxonomy/taxonomy.module,v
retrieving revision 1.392
diff -u -r1.392 taxonomy.module
--- modules/taxonomy/taxonomy.module	17 Nov 2007 14:25:23 -0000	1.392
+++ modules/taxonomy/taxonomy.module	19 Nov 2007 10:47:11 -0000
@@ -1,5 +1,5 @@
 <?php
-// $Id: taxonomy.module,v 1.392 2007/11/17 14:25:23 dries Exp $
+// $Id: taxonomy.module,v 1.391 2007/11/14 13:39:58 goba Exp $
 
 /**
  * @file
@@ -49,7 +49,7 @@
     if (!empty($node->taxonomy)) {
       foreach ($node->taxonomy as $term) {
         // During preview the free tagging terms are in an array unlike the
-        // other terms which are objects. So we have to check if a $term
+        // other terms which are objects. So we have to check if a $term 
         // is an object or not.
         if (is_object($term)) {
           $links['taxonomy_term_'. $term->tid] = array(
@@ -66,7 +66,7 @@
             foreach($typed_terms as $typed_term) {
               $links['taxonomy_preview_term_'. $typed_term] = array(
                 'title' => $typed_term,
-              );
+              );           
             }
           }
         }
@@ -449,7 +449,7 @@
     while ($vocabulary = db_fetch_object($c)) {
       if ($vocabulary->tags) {
         if (isset($form_state['node_preview'])) {
-          // Typed string can be changed by the user before preview,
+          // Typed string can be changed by the user before preview, 
           // so we just insert the tags directly as provided in the form.
           $typed_string = $node->taxonomy['tags'][$vocabulary->vid];
         }
@@ -475,7 +475,7 @@
       else {
         // Extract terms belonging to the vocabulary in question.
         $default_terms = array();
-        foreach ($terms as $term) {
+        foreach ($terms as $term) {     
           // Free tagging has no default terms and also no vid after preview.
           if (isset($term->vid) && $term->vid == $vocabulary->vid) {
             $default_terms[$term->tid] = $term;
@@ -487,7 +487,7 @@
       }
     }
     if (!empty($form['taxonomy']) && is_array($form['taxonomy'])) {
-      if (count($form['taxonomy']) > 1) {
+      if (count($form['taxonomy']) > 1) { 
         // Add fieldset only if form has more than 1 element.
         $form['taxonomy'] += array(
           '#type' => 'fieldset',
@@ -498,7 +498,7 @@
       }
       $form['taxonomy']['#weight'] = -3;
       $form['taxonomy']['#tree'] = TRUE;
-    }
+    }  
   }
 }
 
@@ -507,8 +507,8 @@
  *
  * After preview the tags are an array instead of proper objects. This function
  * converts them back to objects with the exception of 'free tagging' terms,
- * because new tags can be added by the user before preview and those do not
- * yet exist in the database. We therefore save those tags as a string so
+ * because new tags can be added by the user before preview and those do not 
+ * yet exist in the database. We therefore save those tags as a string so 
  * we can fill the form again after the preview.
  */
 function taxonomy_preview_terms($node) {
@@ -519,8 +519,8 @@
     if (is_array($term)) {
       foreach ($term as $tid) {
         if ($key == 'tags') {
-          // Free tagging; the values will be saved for later as strings
-    // instead of objects to fill the form again.
+          // Free tagging; the values will be saved for later as strings 
+	  // instead of objects to fill the form again.
           $taxonomy['tags'] = $term;
         }
         else {
@@ -1174,7 +1174,7 @@
     case 'admin/content/taxonomy':
       return '<p>'. t('The taxonomy module allows content to be classified into categories and subcategories, or vocabularies and terms. Terms may be organized in controlled vocabularies (vocabularies with multiple lists of categories), in thesauri (controlled vocabularies that indicate the relationship of terms), in taxonomies (controlled vocabularies where relationships are indicated hierarchically), or in free vocabularies (vocabularies where tags are defined during content creation). To view and manage the terms of each vocabulary, click on the associated <em>list terms</em> link. To delete a vocabulary and all its terms, choose "edit vocabulary".') .'</p>';
     case 'admin/content/taxonomy/add/vocabulary':
-      return '<p>'. t("When you create a controlled vocabulary you are creating a set of terms to use for describing content (known as descriptors in indexing lingo). Drupal allows you to describe each piece of content (blog, story, etc.) using one or many of these terms. For simple implementations, you might create a set of categories without subcategories. For more complex implementations, you might create a hierarchical list of categories.") .'</p>';
+      return '<p>'. t('Free-tagging vocabularies allow tags to be created by users on the fly when submitting posts. Otherwise terms can only be created by users with the "administer taxonomy" permission; useful where you need more control over terms - short lists or complex hierarchies for example. For more information about the various options available, see the taxonomy help page.') .'</p>';
   }
 }
 
