Index: content_taxonomy.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/content_taxonomy/content_taxonomy.module,v
retrieving revision 1.2.2.15
diff -u -r1.2.2.15 content_taxonomy.module
--- content_taxonomy.module	29 Jan 2008 17:55:29 -0000	1.2.2.15
+++ content_taxonomy.module	16 May 2008 14:33:31 -0000
@@ -165,6 +165,15 @@
       'label' => 'As Link',
       'field types' => array('content_taxonomy'),
     ),
+    'list' => array(
+      'label' => 'As List',
+      'field types' => array('content_taxonomy'),
+    ),
+    'list-link' => array(
+      'label' => 'As List with Links',
+      'field types' => array('content_taxonomy'),
+    ),
+    
   );
 }
 
@@ -179,26 +188,59 @@
       }
     }  
   }
+  
+  // Limit displayed terms to field vocabulary id
+  if ($field['vid'] && is_array($item)) {
+    $filtered_items = array();
+    foreach ($item as $key => $term)
+      if ($term->vid == $field['vid'])
+        $filtered_items[$key] = $term;
+    $item = $filtered_items;
+  }
 
   if (!is_array($item)) {
     return '';
   }
   
-  if ($formatter == 'link') {
-    foreach ($item as $key => $term) {
-      if (!is_object($term) && $key == 'value' && is_numeric($term) && $term != 0) {
-        $term = taxonomy_get_term($term);
+  switch($formatter) {
+    case 'link':
+      foreach ($item as $key => $term) {
+        if (!is_object($term) && $key == 'value' && is_numeric($term) && $term != 0) {
+          $term = taxonomy_get_term($term);
+        }
+        $output .= l($term->name, taxonomy_term_path($term), array('rel' => 'tag', 'title' => $term->description)) ." <br />";
       }
-      $output .= l($term->name, taxonomy_term_path($term), array('rel' => 'tag', 'title' => $term->description)) ." <br />";
-    }
-  }
-  else {
-    foreach ($item as $key => $term) {
-      if (!is_object($term) && $key == 'value' && is_numeric($term) && $term != 0) {
-        $term = taxonomy_get_term($term);
+      break;
+      
+    case 'list':
+      $list = array();
+      foreach ($item as $key => $term) {
+        if (!is_object($term) && $key == 'value' && is_numeric($term) && $term != 0) {
+          $term = taxonomy_get_term($term);
+        }
+        $list[] = check_plain($term->name);
+      }
+      $output = theme('item_list', $list);      
+      break;
+      
+    case 'list-link':
+      $list = array();
+      foreach ($item as $key => $term) {        
+        if (!is_object($term) && $key == 'value' && is_numeric($term) && $term != 0) {
+          $term = taxonomy_get_term($term);
+        }        
+        $list[] = l($term->name, taxonomy_term_path($term), array('rel' => 'tag', 'title' => $term->description));
+      }
+      $output = theme('item_list', $list);
+      break;
+      
+    default:
+      foreach ($item as $key => $term) {
+        if (!is_object($term) && $key == 'value' && is_numeric($term) && $term != 0) {
+          $term = taxonomy_get_term($term);
+        }
+        $output .= check_plain($term->name) ." <br />";
       }
-      $output .= check_plain($term->name) ." <br />";
-    }
   }
   return $output;
 }

